Gast
#4433267
Hi, ich habe ein sehr dubioses Problem beim Lesen von Daten von einer seriellen Schnittstelle. Die Gegenstelle ist ein kleines Embedded-Gerät, welches per USB-CDC angebunden ist. Unter Windows taucht das Gerät als COMx auf und lesen/schreiben von Daten ist kein Problem. Unter Linux (verschiedene Distris probiert), taucht das Gerät als /dev/ttyACMx auf und sich sehe beim Lesen von diesem Gerät immer mal den Verlust von ein, zwei Bytes an Daten. Beim Senden scheint das nicht zu passieren. Man kann mit dem Gerät auch per TCP/IP kommunizieren. Hier kommt das geiche Protokoll zum Einsatz und auf clientseite der gleiche Code. Da hier (wie unter Windows) ebenfalls kein Problem auftritt, würde ich einen Fehler in meiner Implementierung ausschließen. Ich habe bisher noch keinerlei Regel erkennen können, wie/wann/wo der Verlust der Daten passiert, deswegen ist mir jeder Hinweis, jede Spekulation und jede Idee willkommen! Der Code zum Öffnen der seriellen Schnittstelle sieht übrigens so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |