Forum: PC-Programmierung Windows USB Client in C#, Java oder C++ ?


von Udo (Gast)


Lesenswert?

Hi Leute

ich möchte eine Windows Anwendung erstellen, die mir Daten vom uC 
zugänglich macht. Und zwar über die USB Schnittstelle. uC seitig ist es 
soweit klar.
Ich kenne mich mit C aus. Nun stehe ich vor dr Entscheidung in welcher 
Sprache ich die Win Anwendung mache. Was führt am schnellsten zum Ziel. 
Welche Sprache bietet gute USB Funktionalität und vielleicht schon 
fertige Module?
Hintergrund: Es sollen CAN Frames empfangen und an die Win Applikation 
gesendet werden. In umgekehrter Richtung ebenfalls.

von Ralf (Gast)


Lesenswert?

> Welche Sprache bietet gute USB Funktionalität und vielleicht schon
> fertige Module?
Meiner Meinung nach gilt für beides die Antwort: keine der Sprachen.
Begründung: USB ist nicht abhängig davon, welche Sprache du verwendest, 
sondern davon, wie gut du programmieren kannst, genauer gesagt, wie gut 
der Controller-Hersteller den Entwickler unterstützt.

Die meisten Hersteller stellen zumindest eine DLL und Firmware zur 
Verfügung, mit denen du mit dem Controller kommunizieren kannst. Die DLL 
und die Firmware arbeiten zusammen, hat den Vorteil, dass du dich nicht 
arg um die USB-Interna kümmern musst (abgesehen vielleicht von der 
Anpassung der USB-Deskriptoren usw.).
Wenn dir also die Funktionalität, die dir die DLL/FW zur Verfügung 
stellen, ausreicht (und das tut es meist), dann kannst du fast jede 
Sprache nehmen, die eben die DLL-Einbindung unterstützt. Je nachdem, wie 
fit du mit USB bist, kannst du später sogar ganz auf die DLL verzichten, 
und die FW so schreiben, dass es einer der im OS bereits vorhandenen 
Standard-Klassen entspricht (HID, CDC, usw.)

Nach meinen Erfahrungen würde ich sagen, entweder C++, C# oder VB, da du 
ja sagst, dass du mit C fit bist, entweder C++ oder C#, und deine 
CAN-Auswertung dürfte sich m.E. locker mit der DLL lösen lassen.

Ralf

von Arc N. (arc)


Lesenswert?

Noch ein Tipp:
Wird eine eigene Device-Klasse verwendet und kann auf 
Isochrone-Transfers verzichtet werden, bietet sich unter XP und Vista 
noch WinUSB an.
http://msdn.microsoft.com/en-us/library/aa476426.aspx
http://www.lvr.com/winusb.htm

von Christian R. (supachris)


Lesenswert?

Was für einen USB Controller verwendest du denn? Oder ist das eine 
eigene Implementierung auf einem µC? Es muss ja da zumindest einen 
Treiber dazu geben, eine DLL, die den Treiber anspricht wäre noch 
besser....

von tom (Gast)


Lesenswert?

...kiekste mal bei libusb nach (sourceforge), mingw-C compiler + z.B. 
eclipse als ide zum komfortablen debuggen usw.

falls du keine gui brauchst haste 1-fix-3 damit was zusammen in C unter 
windows.

gruss, tom.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.