Gast
#2463853
Hallo zusammen,
da ein Kumpel von mir meinte, das es möglich wäre über ein USB Kabel
zwischen 2 PCS eine Datenverbindung herzustellen, wollte ich mich erst
einmal bei Euch erkundigen.
Ich hab mir auch schon mal den Bulk Transfer angeguckt, jedoch muß man
erst einmal ein USB Device bei einem Bus aussuchen und diesen
entsprechend konfigurieren "Die Endpunkte":
/* the device's vendor and product id */
#define MY_VID 0x04d8
#define MY_PID 0x0011
/* the device's endpoints */
#define EP_IN 0x81
#define EP_OUT 0x01
#define BUF_SIZE 2
BUF_SIZE gibt in Bytes an, wie groß der Sende u. Empfangspuffer ist.
Meine Frage:
Wie groß kann dieser eigendlich sein?
Ok, also hätte ich demzufolge bei einem Device ein Endpunkt für
eingehenden und einen Endpunkt für den ausgehenden Datentransfer.
Dann habe ich mir mal den Bulk-Transfer angeguckt:
Zum Schreiben:
if (usb_bulk_write(dev, EP_OUT, tmp, sizeof(tmp), 5000)
!= sizeof(tmp))
{
printf("error: bulk write failed\n");
}
dev = ist das USB Gerät
EP_Out = ist der ausgehende Endpunkt
tmp = sind die Daten die transferiert werden sollen
siezof(tmp) = ist die Länge der Daten die transferiert werden sollen
5000 = ist die Zeit in Millesekunden, die maximal benötigt werden dürfen
um die Daten zu transferieren.
tmp kann ja jetzt nur 2 Byte lang sein
Wurden die 2 Byte übertragen, dann ist diese Funktion erledigt.
if (usb_bulk_read(dev, EP_IN, tmp1, sizeof(tmp), 5000)
!= sizeof(tmp))
{
printf("error: bulk read failed\n");
}
dev = ist das USB Gerät
EP_IN = ist der eingehende Endpunkt
tmp1 = ist der Puffer für eingehende Daten
siezof(tmp) = ist die Länge vom Puffer der schon gefüllt ist
5000 = ist die Zeit in Millesekunden, die maximal benötigt werden dürfen
um die Daten zu transferieren.
sind die 2 Byte des Device Puffers gefüllt, ist diese Funktion erledigt.
Ok...das würde doch bedeuten, das ich echt 2 USB Geräte mit einem USB
Kabel verbinden u. Daten hin u. her schicken könnte.
Natürlich müsste ich dafür noch ein Protokoll zur Flußkontrolle
schreiben, aber das ist ja nicht das Problem.
Cu Andy