USB
-
hi,
wenn ich unter windows ein USB-Geraet ansteuern will, wieso benoetige ich dazu einen eigenen Treiber? Ich bin doch unter Windows und einen Treiber gibt es doch bereits, wieso kann man dann die Geraete nicht direkt ansprechen?
es scheitert schon daran, dass ich nicht weiss, wie ich eine einfache statusabfrage (USB_REQUEST_GET_STATUS) an das Geraet sende, geschweige denn verstehe wie ich dann die Antwort entgegen nehme.
kennt jemand ne Seite wo das beschrieben wird? hat jemand vielleicht sogar nen beispielcode?
kann mir jemand helfen?
-
Hi
sach mal erst was das für ein USB device ist. gibt ja schlieslich verschiedene, bzw welche usb klassen/endpoints dein Geräht besitzt/implementiert. HID, DFU, Storage, ....
Da du ja das DDK schon hast (sonst köntest du ja gar nicht usb progs schreiben), such mal USBView vileicht hilft das schon mal etwas weiter.
und zum Thema Windows Treiber und HW direckt ansprechen, das wiederspricht sich. wen du einen Windows Treiber hast, das sprichst du die HW nicht direckt an, sondern über eine Schnittstelle von Windows, die dann den passenden Treiber verwendet.
Ich glaube nicht, das man im Usermode auf einen USB Device Endpoint einen Hadel öffnen kannst um darauf munter zu lesen und zu schreiben. Das gehört eigentlich eher in einen Treiber.
gruss Termite
-
ist ne digital kamera (nikon coolpix). usbview hab ich mir auch schon angeschaut. die diversen info eines geraetes kann ich ja auch auslesen, aber an der kommunikation mit diesem scheitert es (das handle auf das geraet habe ich). das auslesen einiger im standard definierten controlcodes klappt auch, aber irgendwie komme ich dann nicht mehr weiter, wenn es darum geht per ptp ein foto zu machen.
-
Hi
aufpassen mit den Handels. die sind je nach Api unterschiedlich. HID device hat andere Handels, als wie wenn du direckt über die SetupAPI den usb bus abklapperst. (usbView verwendet z.B. SetupAPI um den USB bus auszulesen)
Aber mal was anderes, ist das PTP "Picture Transfer Protokoll" eigentlich auch dafür gedacht den kamera auslöser fernzusteuern?
mir ist zumindestens im zusammenhanb mip PTP noch WIA "Windows Image Acquisition" über den weg gelaufen.
schau auch mal http://libptp.sourceforge.net/ vorbei, ist zwar ein unix projekt, ggf kann man da auch was abspicken
gruss Termite
-
theoretisch kannste damit die kamera auslösen und auch sämtliche (in dieser Spezifikation festgelegten) Funktionen der Kamera fernsteuern.
libptp hab ich mir schon runtergeladen, dort wird allerdings auf libusb zurückgegriffen und da es sich um unix handelt sind da die internen funktionsaufrufe (in/out) völlig anders.
das meiste andere zeugs was man findet (und das ist nicht gerade viel) verwendet einen zusaetzlichen device-driver um usb anzusteuern. was meiner meinung nach aber unter windows quatsch ist, da ja dort alle nötigen treiber ja bereits dabei sein sollten (zumindest generische).