Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Costi
User
Beiträge: 545 Registriert: Donnerstag 17. August 2006, 14:21
Mittwoch 14. Januar 2009, 11:06
ich will daten meines openmoko freerunner touchscreens auslesen
mit:
Code: Alles auswählen
import struct
fmt = 'iiIll'
size = struct.calcsize(fmt)
f = file('/dev/input/touchscreen0', 'rb')
while True:
read = f.read(size)
print struct.unpack(fmt, read)
bekomme ich falsche daten
was mache ich falsch?
Code: Alles auswählen
struct ts_sample {
int x;
int y;
unsigned int pressure;
struct timeval tv;
};
typedef struct timeval {
long tv_sec;
long tv_usec;
} timeval;
danke!
cp != mv
rayo
User
Beiträge: 773 Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:
Mittwoch 14. Januar 2009, 11:23
Hi
Ich rate nur mal ... probier mal folgende struct-formate:
Gibt eines die richtigen Daten?
Sind einfach verschienede Byteorder und Alignings.
Ich würde dir aber
pyconstruct nahelegen, da man damit einfach Daten parsen kann.
Gruss
Costi
User
Beiträge: 545 Registriert: Donnerstag 17. August 2006, 14:21
Mittwoch 14. Januar 2009, 15:32
hab ich auch schon ausprobiert...., ging nicht
pyconstruct scheint ganz interessant zu sein, ist aber fuer diesen einsatzweck voellig overkill
cp != mv
Costi
User
Beiträge: 545 Registriert: Donnerstag 17. August 2006, 14:21
Donnerstag 15. Januar 2009, 13:07
Code: Alles auswählen
root@om-gta02:~# python touchscreen.py
Traceback (most recent call last):
File "touchscreen.py", line 12, in <module>
print read.encode('hex')
LookupError: no codec search functions registered: can't find encoding
vieleicht kannst du mir "print repr(read)" was anfangen?
Code: Alles auswählen
root@om-gta02:~# python touchscreen.py
'\xc2\x88mI<o\x02\x00\x03\x00\x00\x00\xd8\x01\x00\x00\xc2\x88mI'
========
'eo\x02\x00\x03\x00\x01\x00\x1e\x02\x00\x00\xc2\x88mImo\x02\x00'
========
'\x01\x00J\x01\x01\x00\x00\x00\xc2\x88mIso\x02\x00\x03\x00\x18\x00'
========
'\x01\x00\x00\x00\xc2\x88mIyo\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00'
========
'\xc2\x88mI~o\x02\x00\x01\x00J\x01\x00\x00\x00\x00\xc2\x88mI'
========
'\x83o\x02\x00\x03\x00\x18\x00\x00\x00\x00\x00\xc2\x88mI\x88o\x02\x00'
========
'\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x88mI\x1c\xf8\x02\x00\x03\x00\x00\x00'
========
'\xe9\x01\x00\x00\xc2\x88mI1\xf8\x02\x00\x03\x00\x01\x00\x1b\x02\x00\x00'
========
'\xc2\x88mI8\xf8\x02\x00\x01\x00J\x01\x01\x00\x00\x00\xc2\x88mI'
========
'=\xf8\x02\x00\x03\x00\x18\x00\x01\x00\x00\x00\xc2\x88mIB\xf8\x02\x00'
========
'\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x88mI2F\x03\x00\x03\x00\x00\x00'
========
'\xd5\x01\x00\x00\xc2\x88mIIF\x03\x00\x03\x00\x01\x00\x0e\x02\x00\x00'
========
'\xc2\x88mIQF\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc2\x88mI'
========
'S\x94\x03\x00\x03\x00\x00\x00\xff\x01\x00\x00\xc2\x88mIi\x94\x03\x00'
<snipp>
cp != mv
rayo
User
Beiträge: 773 Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:
Donnerstag 15. Januar 2009, 14:03
Hi
Bist du sicher dass aus dem Device wirklich diese structs herauskommen?
Wie gross sind die Datentypen int und long auf openmoko? Auch 32Bits?
Die Folge \xc2\x88mI kommt immer wieder vor, ich nehme mal an das koennte nicht sein wenn du immer wieder woanders geklickt hast.
Irgendwie siehts aus als waere das ganze nur 16Byte gross und nicht 20 (\xc2\x88mI sieht aus wie ein Header, etwas konstantes sollte es ja nicht geben bei den klicks oder?)
Gruss