Free Pascal => Unix => Topic started by: nicolap on April 28, 2019, 07:55:42 pm

Title: Read Input Events
Post by: nicolap on April 28, 2019, 07:55:42 pm
Hi all,
I was in need to read a Rotary Encoder (like a Volume Knob) attached to an Raspberry PI and found nothing usefull.
So I translated some Kernel Header and wrote a pair of small program to read events and test it all.

This is the very first release, note that:
- tested on Raspberry PI with fpc 3.0.4 and Kernel 4.14.98;
- I used Delphi mode because I know it, not tested in fpc mode;
- there are some strange conditional define left because I write in the Delphi IDE, do a compile to check syntax then copy to the Raspberry PI and compile with fpc :-) ;
- a lot of strings has to be added to test program

Succesfully tested with:
- a rotary encoder, in config.txt:
- a push button:
- a touch screen (USB, from a WaveShare 5" model B)

- IOCtl.pas conversion from ioctl.h, added e function to build ioctl codes at runtime because Pascal have not the flexibility of C preprocessor.
- input.pas conversion from input.h.
- inputeventcodes.pas conversion from input-event-codes.h.
- InputUtils.pas some simple helper functions.
- event.dpr a conversion from evtest.c, a simple program to show present event handlers and to check it.
- rotary.pas a class to read rotary encoder, uses threads.
- rotarytest.lpr a small program to test the TRotary class.

On GitHub: fpc_linux_events (
TinyPortal © 2005-2018