USB Abarbeitung & Sprache



  • Hallo,

    Ein Bekannter und ich wollen ein Idee umsetzen, bei der wir von 4 verschiedenen USB Geräten sehr einfache Inputs bekommen (A,B,C,D).
    Da wir eine relative Zeit benötigen, soll einfach unser Programm die jeweilige Zeit (Systemzeit) mitloggen, wann von welchem Gerät welcher Input kommt (mein Vorschlag).
    Mein Kollege aber meinte, dass wir schon die Zeit von den USB Geräten (vorherige Sync der Geräte) mitschicken müssen, da der Eventhandler vom OS so verzögert arbeitet. Damit meint er (was ich theoretisch auch nachvollziehen kann), dass die Inputsignale so "verfälscht" ankommen können, dass man sie zeitlich nicht mehr genau trennen kann. Es wird die Aussage benötigt: zwischen Signal A und B liegen z.B. 350ms.

    Was meint ihr dazu?

    Dazu gleich die nächste Frage:
    Das Programm holt Daten vom USB, speichert diese und stellt sie auch grafisch ein bisschen dar, also wirklich nichts besonderes.
    Ich arbeite eigentlich mit Java (kein GUI, sondern Webentwicklung), mein Freund C++.
    Deswegen sind wir nun auf C# gekommen (Reiz zu Neuen + schnelle GUI Programmierung)...
    Oder gibt es Gründe, bei Java oder C++ zu bleiben (Evtl fehlende Libs, USB...)?

    Gleich zwei Fragen...

    Vielen Dank schon mal!

    Grüße



  • Moin

    zu Punkt 1. Macht euch mal über USB schlau. USB ist ein Host gesteuertes system. Sprich, der PC fordert die daten vom Device an oder sendet sie. Das Device ist immer passiv.

    Erstes Problem das ich sehe. der zeitversatz beim Synchronisieren. Die nachricht vom PC zum device kann nicht gleichzeitig an alle verschickt werden. zwichen Device A und D wird immer ein zeitversatz existieren. Eigentlich nur eine frage der genauigkeit, wenn man das absetzen der nachrichten konntrollieren kann. USB hat ein übertragungsprotokoll, z.B. kann ein device naken und die nachricht dadurch spähter annemen, oder der Host verschickt die nachrichten in einer anderen reihenfolge

    Andere Frage. habt ihr überhaupt erfahrung mit USB und könnt auch das entsprechende Device entwickeln? so wie ich das rauslehese wollt ihr auch die Devices entwickeln.
    USB ist ja nur unwesentlich komplizierter als RS232.

    zu Punkt 2. erst eine lösung für euere Probleme suchen, Muss ggf ein eigener Treiber geschreiben werden, ( device, filter, .... ) wie kommt man an die daten heran, wer stellt sie überhaupt zur verfügung, welche API gibt es dafür... dann löst sich vileicht auch die Frage der Programiersprache.

    Treiber für z.B. windows in .Net oder Java? wohl eher nicht.

    gruss.


Anmelden zum Antworten