Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
E.3. Hostsoftware<br />
151 b u s s e s = u s b g e t b u s s e s ( ) ;<br />
struct usb bus ∗ bus ;<br />
for ( bus = b u s s e s ; bus ; bus = bus−>next ) {<br />
156 struct u s b d e v i c e ∗ dev ;<br />
for ( dev = bus−>d e v i c e s ; dev ; dev = dev−>next ) {<br />
i f ( dev−>d e s c r i p t o r . idVendor == ID VENDOR GECKO3) {<br />
i f ( dev−>d e s c r i p t o r . idProduct == ID PRODUCT GECKO3) {<br />
161 geckoAdm = usb open ( dev ) ;<br />
char dr name [ 1 0 0 ] ;<br />
int np = u s b g e t d r i v e r n p ( geckoAdm , 0 , dr name , 100) ;<br />
i f ( np==0) {<br />
u s b d e t a c h k e r n e l d r i v e r n p ( geckoAdm , 0) ;<br />
166 }<br />
int t = u s b c l a i m i n t e r f a c e ( geckoAdm , GECKO ADM INTERFACE) ;<br />
i f ( t == 0) {<br />
return true ; //end o f s e a r c h i n g f o r d e v i c e s . t h e f i r s t found<br />
d e v i c e i s used<br />
}<br />
171 else {<br />
return f a l s e ;<br />
}<br />
}<br />
}<br />
176 }<br />
}<br />
return f a l s e ;<br />
}<br />
181 bool QGecko : : admClose ( )<br />
{<br />
//same t h i n g as QGecko : : c l o s e ( ) only f o r t h e a d m i n i s t r a t i o n i n t e r f a c e<br />
i f ( geckoAdm != 0) {<br />
u s b r e l e a s e i n t e r f a c e ( geckoAdm , GECKO ADM INTERFACE) ;<br />
186 u s b c l o s e ( geckoAdm ) ;<br />
geckoAdm = 0 ;<br />
return true ;<br />
}<br />
return f a l s e ;<br />
191 }<br />
bool QGecko : : admWrite ( QFile &data ) {<br />
//same t h i n g as QGecko : : w r i t e ( QFile &data ) only f o r t h e a d m i n i s t r a t i o n i n t e r f a c e<br />
i f ( geckoAdm != 0) {<br />
196 bool loop = true ;<br />
char t a r g e t A r r a y [ 3 2 7 6 8 ] ;<br />
int t a r g e t S i z e = 0 ;<br />
while ( loop == true ) {<br />
201 t a r g e t S i z e = data . read ( targetArray , 32768 ) ;<br />
i f ( t a r g e t S i z e > 0) {<br />
int w = u s b b u l k w r i t e ( geckoAdm , GECKO ADM EP WRITE, t a r g e t A r r a y ,<br />
t a r g e t S i z e , 5000) ;<br />
i f (w