Fehlendes Lesen der Daten
Beim Lesen von Daten von einem HID-Gerät über Hidraw verpassen ich manchmal einige Daten. Ich kann sehen, dass die Daten mit einem Hardware-Snooping-Gerät korrekt über USB übertragen werden, aber aus irgendeinem Grund bekomme ich die Daten beim Lesen von Hidraw nicht immer.
Das Problem wurde weniger spürbar, als ich einen Prozess auf dem System stoppte, der viel CPU verbrauchte. Daher denke ich, dass mein Problem irgendwie mit dem CPU-Hunger zusammenhängt.
Das Lesen der HID-Daten erfolgt über einen Thread, der auf eine Sperrauswahl wartet.
Zum Beispiel:
FD_ZERO ( &fdset_device ); FD_SET ( fd, &fdset_device ); // fd is file descriptor for /dev/hidraw0 fd_set read_set; read_set = fdset_device; for ( ;; ) { if ( ( select_result = select ( fd + 1, &read_set, NULL, NULL, NULL ) ) >= 0 ) { int report_len = read ( fd, report_buffer, sizeof ( report_buffer ) ); ... …
Unter korrekten Bedingungen werden also die Pakete A,B,C,D,E,F
gesendet und ich empfange Hidraw-Pakete A,B,C,D,E,F
, aber wenn der Fehler auftritt, erhalte ich vielleicht A,B,E,F
oderA,B,C,F
Ich bin mir nicht sicher, warum und unter welchen Umständen ich solche Daten vermisse. Hat jemand Probleme mit hidraw gesehen, die Daten verlieren?
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Warum führt das Entfernen des USB-Sticks zu einem blauen Bildschirm?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem