Thread unverständnis zu sprintf (22 answers)
Opened by also at 2010-08-13 21:19

Gast also
 2010-08-14 17:53
#140687 #140687
Ich lese keycodes aus einem wifi usb_stick.
Die device_id ist bekannt aus udev und lautet /dev/xxxxx
xxxx ist die unique_id des sticks.
Der stick liefert die Tastencodes einer externen Tastatur plus einer id je klick. Das ist also ein WORD. z.B. 0x0420 für space von der externen Tastatur Nr.4. Ich weiß dass das sicher so ist weil ich den stick so programmiert habe. Ich lese mit Term::ReadKey;, exakt so wie du. Meine Zeile sieht nur gering anders aus, weil ich nicht mit push sammle:
while(!($ch=ReadKey(-1))) {}
hier der cast mit unpack %8C* wie oben und return pro byte mit sprintf

auch du verwendest das unpack und sprintf. Das hat ja seinen Grund. Ansonsten bekomme ich die eigenartigen casts von perl nicht in den Griff. Wie schon geschrieben, ich brauche für Taste space nicht ' ', nicht " " nicht "32", nicht "20", sondern u_char 0x20. Auch das höherwertige byte kann ich mit if($ch == KEYBOARD_ID_4) finden. Caste ich nicht mit unpack, kommt perl mit irgendwelchen Datantypen daher, wahrscheinlich strings, die ich auf Grund unterschiedlichster Inhalte nicht in den Griff bekomme

Last edited: 2010-08-14 17:56:32 +0200 (CEST)

View full thread unverständnis zu sprintf