Hallo, ich versuche nun seit ein Paar Tagen aus einem Flohmarktfund schlau zu werden. es Handelt sich dabei um ein Compaq(RIP) keyboard das fuer Ipaqs gedacht war. Der Aufbau und die Anbindung ist sehr simpel. VCC 5v GND TX (~4800 Baud, 8N1) Jeder Tastendruck(0-1,a-z), kein Umschalten, Strg etc. liefert 2 Bytes. Das loslassen der Taste dann nochmal 2 bytes. Einzig aus der Codierung werde ich nicht schlau. ipaq Ein Paar Beispiele: HEX BIN DEC HEX BIN DEC 1: 0x3a 00111010 58 0x0b 00001011 11 0x1a 00011010 26 0x0b 00001011 11 2: 0x38 00111000 56 0x0f 00001111 15 0x18 00011000 24 0x0f 00001111 15 3: 0x36 00110110 54 0x13 00010011 19 0x16 00010110 22 0x13 00010011 19 4: 0x6d 01101101 109 0x09 00001001 9 0x2d 00101101 45 0x09 00001001 9 5: 0x34 00110100 52 0x17 00010111 23 0x14 00010100 20 0x17 00010111 23 a: 0x1c 00011100 28 0x0e 00001110 14 0x0c 00001100 12 0x0e 00001110 14 b: 0x33 00110011 51 0x19 00011001 25 0x13 00010011 19 0x19 00011001 25 c: 0x6f 01101111 111 0x08 00001000 8 0x2f 00101111 47 0x08 00001000 8 o: 0x17 00010111 23 0x22 00100010 34 0x07 00000111 7 0x22 00100010 34 p: 0x59 01011001 89 0x13 00010011 19 0x19 00011001 25 0x13 00010011 19 q: 0x75 01110101 117 0x05 00000101 5 0x35 00110101 53 0x05 00000101 5 Jemmand eine Idee was da dahintersteckt? Bin schon gespannt auf Eure Ideen. Mir faellt dazu im Moment nichts mehr ein. alles Borscht
Nachdem ich mir heute ein kleines Skript geschrieben habe um mal ein paar Bitoperationen automatisiert durchzufuehren und mit den gesendeten Werten der Tastatur zu vergleichen fiel mir ein Muster auf. Das 3. Byte ist immer $BYTE1 ^16,^32 oder ^64 (exklusives ODER) 58 11 26 11 :: 58 ^ 32 = 26 56 15 24 15 :: 56 ^ 32 = 24 54 19 22 19 :: 54 ^ 32 = 22 109 9 45 9 :: 109 ^ 64 = 45 52 23 20 23 :: 52 ^ 32 = 20 28 14 12 14 :: 28 ^ 16 = 12 51 25 19 25 :: 51 ^ 32 = 19 111 8 47 8 :: 111 ^ 64 = 47 23 34 7 34 :: 23 ^ 16 = 7 23 98 7 98 :: 23 ^ 16 = 7 Weshalb ^16,^32 oder ^64 angewandt wird ist mir noch nicht klar. Werde versuchen heute eine Tabelle aller Codes anzulegen und hier hochzuladen. Vielleicht geht dann ja jemandem ein Licht auf. trost Borscht
>> Weshalb ^16,^32 oder ^64 angewandt wird ist mir noch nicht klar.
Vieleicht doch?
Mir fiel eben auf das ^16 bei Byte1 Wert < 32, ^32 bei <64 und ^64 bei
kleiner 128 passen koennte.
Nur eine Theorie. mehr weiss ich wenn die Codetabelle komplett ist.
prost Borscht
Ist das das Ding hier? Vielleicht hilft es, mal hier zu gucken: https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=blob;f=drivers/input/keyboard/stowaway.c;h=cc612c5d542782fdf898757bdfdd1434b7d19d86;hb=HEAD Disclaimer: ich besitze kein solches Keyboard, weiß nichtmal, wie es aussieht, habe nur bei der Kernel-Konfiguration immer wieder den "Stowaway"-Treiber gesehen und der Thread erinnerte mich.
Noe, leider nicht. Das hier war da noch am naehesten drann: * HP foldable keyboard * * 4800 baud, 8N1 * * Key down sends two bytes: KEY ~KEY (complement of KEY) * Key up sends two bytes: (KEY | 0x80) ~KEY da klappt bei meinem keyboard aber nicht.
Hier hab ich mal beinahe alle Tasten durchprobiert und den ascii codes zugeordnet. Via Shift oder Alt zu erreichnde Sonderzeichen haben keine eigenen Codes. " waere zum beispiel: [Shift an] ( 3B 09 ) [Taste 2] (38 0F 18 0F) [shift aus] (1B 09) Das selbe gilt natuerlich auch fuer Grossbuchstaben. a = 1C 0E 0C 0E A = 3B 09 1C 0E 0C 0E 1B 09 Soweit so gut. BD: Button Down BU: Button Up ASCII CHAR BD1 BD2 BU1 BU2 32 : 14 2E 04 2E 45 - : 2D 25 0D 25 46 . : 5B 12 1B 12 48 0 : 5D 11 1D 11 49 1 : 3A 0B 1A 0B 50 2 : 38 0F 18 0F 51 3 : 16 13 36 13 52 4 : 6D 09 2D 09 53 5 : 14 17 34 17 54 6 : 1B 12 1B 32 55 7 : 61 0F 21 0F 56 8 : 30 1F 10 1F 57 9 : 2E 23 0E 23 60 < : 11 3A 01 3A 94 ^ : 1C 07 3C 07 97 a : 1C 0E 0C 0E 98 b : 33 19 13 19 99 c : 6F 08 2F 08 100 d : 6E 04 2E 04 101 e : 0B 12 1B 12 102 f : 2A 05 6A 05 103 g : 19 1A 09 1A 104 h : 66 06 26 06 105 i : 1E 08 5E 08 106 j : 62 07 22 07 107 k : 2F 21 0F 21 108 l : 5A 09 1A 09 109 m : 11 1D 31 1D 110 n : 67 0C 27 0C 111 o : 04 17 62 07 112 p : 59 13 19 13 113 q : 75 05 35 05 114 r : 69 0B 29 0B 115 s : 72 03 32 03 116 t : 1A 16 0A 16 117 u : 18 1E 08 1E 118 v : 35 15 15 15 119 w : 31 07 71 07 120 x : 17 11 37 11 121 y : 39 0D 19 0D 122 z : 65 0D 25 0D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.