2010-07-08 6 views
3

Je suis en train de mettre à jour un vieux code ancien (qui fonctionne pour le moment, mais qui utilise OpenTransport, donc um ... non) qui s'interface avec un scanner USB. Je pense que je comprends comment IOUSBDeviceInterface et IOUSBInterfaceInterface sont censés fonctionner, mais je ne peux pas sembler obtenir des informations sur les tuyaux.Programmation d'un périphérique USB sur un Mac

J'ai une méthode qui prend: (IOUSBInterfaceInterface **)intf qui a deux tuyaux. Je crois qu'il est correctement configuré, mais je ne suis pas sûr de savoir comment le tester. , Je Intérieur:

for (i=1; i <= numPipes; i++) 
{ 
    err = (*intf)->GetPipeProperties(intf, i, &direction, &number, &transferType, &maxPacketSize, &interval); 
} 

Mais il retourne kIOReturnNotOpen. Je détecte le scanner correctement (lorsque le scanner est éteint, il ne parvient même pas à ce stade) et je ne pense pas que d'autres programmes tentent d'accéder au scanner.

Existe-t-il un moyen judicieux de déterminer ce qui ne va pas? (c.-à-d., quel autre programme pense qu'il a les tuyaux ouverts, ou quoi?)

Le code est techniquement en Objective-C, mais comme vous pouvez le voir, le code ci-dessus est assez vanille C, d'où les balises.

Répondre

1

Avez-vous déjà appelé USBInterfaceOpen sur l'interface?

Si vous ne l'avez pas déjà fait, jetez un coup d'œil à l'exemple de code USBNotification.

+0

D'oh. oui. c'était le problème. Merci! –

Questions connexes