Ett Piano med banan som tangentbord som drivs av pcDuino (1 / 5 steg)
Steg 1: Steg 1: Hur att simulera på tangentbordet?
(1) för att injicera tangenttryckningar, behöver vi mappa touch händelserna
från banan till standard tangenttryckningar händelse, till exempel KEY_0, KEY_Z, etc, som motsvarar till tangenttryckningar från 0-9, X_Z. Mer specifikt måste vi använda en fil "/ dev/input/event/X", och skriva en datastruktur som heter input_event för att injicera en viss tangenttryckning. Vill du veta alla ingående enheter, kan vi använda följande kommando: $cat /proc/bus/input/devices. Vi fick reda på att i vårt fall, event1 är tangentbordet.
(2) nu när vi hittade ut indatafilen, måste vi skriva data struktur input_event till den. I /usr/include/linux/input.h definieras händelsen. Vi behöver fylla det med tangenttryckningen vi vill injicera. Struktur definieras enligt följande:
struct input_event {
struct timeval tid;
__u16 typ;
__u16 kod.
__s32 värde;
}
typ: typ av händelse.
EV_KEY: händelsen tangenttryckning, exempelvis vilken tangent trycks ner i tangentbordet, och om vänster knapp eller högerknappen på musen trycks.
EV_REL: De relativa koordinater, som främst avser förflyttning av musen
EV_ABS: absoluta koordinater, som främst avser pekskärmen.
koden: koden för händelsen. Om typen är EV_KEY, är koden den nyckel koden. Kod 0-127 avser nyckeln-av tangentbordet. Koden 0 × 110-0 × 116 avser tryck på koden för musen, där 0 × 110 (BTM_LEFT) innebär den vänstra knappen på musen, 0 × 111 (BTN_RIGHT) betyder högerknappen på musen, 0 × 112 (BTN_MIDDLE) betyder den mellersta knappen på musen. Annan kod, finns i filen "/ usr/omfatta/linux /input.h".
Värde: värdet av händelsen. När typen är EV_KEY, när knappen trycks ned, är värdet 1 och 0 när det släpps. Om typen är EV_REL, innebär positiva och negativa värdet den relativa rörelsen i två olika riktningar.
Makey Makey Använd USB-HID för att simulera tangentbordshändelse till värd PC. I pcDuinokör skrapa sig på pcDuino, så att vi direkt kan injicera tangenttryckning.