Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: libusb laitteen yhdistys ongelma

RopoMen [13.11.2006 21:06:43]

#

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 =)

RopoMen [13.11.2006 23:02:01]

#

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

RopoMen [15.11.2006 08:40:27]

#

Juuu kyllä se siitä avautu kun tarpeeks vaan vääntää :) Enää ei mitään kysymyksiä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta