Wir versuchen, Daten von 2 USB-Mäusen zu lesen, die an eine Linux-Box angeschlossen sind (diese Daten werden für die Odometrie/Lokalisierung auf einem Roboter verwendet). Wir müssen also kontinuierlich von jeder Maus auslesen, wie viel sie sich bewegt hat. Das Problem ist, dass eine Maus, wenn sie sich nicht bewegt, keine Daten sendet, so dass der Dateistrom, aus dem wir die Daten erhalten, die Ausführung blockiert und das Programm daher die Odometrieberechnungen nicht durchführen kann (die Zeitmessung für die Geschwindigkeit beinhalten).
Gibt es eine Möglichkeit, eine Zeitüberschreitung auf den Eingabestrom zu setzen (wir verwenden ifstream in C++ und lesen von /dev/input/mouse), so dass wir in der Lage sind, zu wissen, wenn die Maus nicht bewegt, anstatt auf ein Ereignis zu warten, um empfangen zu werden? Oder müssen wir uns mit Threads herumschlagen (argh...)? Alle anderen Vorschläge sind willkommen!
Vielen Dank im Voraus!