Ongelmana on oikean laitteen löytäminen. Tässä karkeasti koodi , jolla yhdistämistä on yritetty. Tämä on ensimmäinen kerta kun joudun usb:llä leikkimään ja en kaikkea ymmärrä vieläkään, eikä ohjelmointi kokemusta paljoa ole, mutta eiköhän se siitä.
struct usb_bus *busses; struct usb_bus *bus; struct usb_device *dev; struct usb_dev_handle *kahva; usb_init(); usb_find_busses();//Onnistuu usb_find_devices();//Löytää laitteen ko. väylästä. busses = usb_get_busses(); for(bus = busses; bus; bus = bus->next){ for(dev = bus->devices; dev; dev->next){ //Yritettäessä tunnistaa laitetta device classin avulla //Laitetta ei löydy vaan löytää ainoastaan USB_CLASS_HUB:in //Eli dev->descriptor.bDeviceClass == 0x09 Tähän voidaan //yhdistää. //(root hub ellen ole aivan metsässä) //Ja debugatessa huomasin, että dev->children alla on laite //johon yhteys //pitäisi saada, mutta kuinka saan ko. tiedot käyttöön on //vähän pointterit //heikolla pohjalla :) if(dev->descriptor.bDeviceClass == USB_CLASS_VENDOR_SPEC){ Kahva = usb_open(dev); printf("Kahva kiinni\n"); break; } else break; } }
Toivottavasti tämä näkyy nyt oikein eka koodi paste..
no anyway onko koodissa mahdollisesti, jotain vikaa? vai pitääkö yhdistäminen tehdä käyttämällä child:in tietoja? vai täytyykö tuon hubin kautta, jotenkin muuten yhdistää laite? Olen lukenut ja etsinyt tietoa usb:sta jo aika paljon ja nyt luultavasti en ole jotain pikku asiaa vielä ymmärtänyt.
Googlettamalla kaikissa esim. koodeissa yhdistäminen on näin "helppo", joten en ymmärrä missä vika mahtaa olla. Kaikki neuvot helpottavat varmasti tekemistäni, joten kiitos kaikille vastaajille jos sellasia löytyy =)
Ongelma on kierretty nyt käyttämällä Vendor ja Product id:tä.
Kuinkas homma toimii mikäli DeviceClass on 0x00 täytyykö tällöin luokka tunnus määritellä Interface descriptorissa ja käyttää tämän jälkeen haluttua interfacea?
kuinkas tällä tavoin laitteeseen saadaan yhteys, kun ensin pitää liittää interface ja sitten vasta tarkistaa luokka...? Kuinkas tuon interfacen saa liitettyä edes oikeaan laitteeseen jos ei tiedä varmaks onko se oma laite...
Ompas sekavaa, njoo eikun lisää opiskelemaan :D
Juuu kyllä se siitä avautu kun tarpeeks vaan vääntää :) Enää ei mitään kysymyksiä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.