2008-10-04 18 views
4

Je voudrais écrire un pilote pour parler à ma montre Suunto t3 en Python sur un Mac. Mon travail quotidien consiste à faire du travail web de base en C#, donc ma connaissance de Python et de mon développement sur Mac est limitée.Développement de pilote USB sur un Mac en utilisant Python

Pouvez-vous suggérer comment on commencerait à faire du développement de pilotes en général, et plus spécifiquement sur un Mac. C'est à dire. comment voir facilement quelles données sont transmises à l'appareil? J'ai Python 2.5 (MacPorts) opérationnel.

Répondre

3

Si la montre prend en charge un standard USB device class specification tel qu'une communication HID ou série, il existe peut-être déjà un pilote Macintosh intégré au système d'exploitation. Sinon, vous devrez obtenir des informations sur les commandes du fournisseur utilisées pour communiquer avec l'une des trois sources suivantes: le fabricant; l'ingénierie inverse du protocole utilisé par le pilote Windows; ou d'autres qui ont déjà inversé le protocole afin de soutenir le périphérique sur Linux ou BSD.

USB est un bus à base de paquets et il est très important de comprendre les différents types de transactions. Lire le USB specification est un bon point de départ.

Vous pouvez voir quelles données sont transmises à l'appareil à l'aide d'un analyseur de bus USB, ce qui est une proposition coûteuse pour un amateur, mais qui est à la portée de la plupart des entreprises faisant du développement USB. Par exemple, le Catalyst Conquest est 1199 $. Un autre fabricant établi est LeCroy (formerly CATC). Il y a aussi des analyseurs USB logiciels qui se branchent dans la pile USB du système d'exploitation, mais ils ne montrent pas tout le trafic sur le bus et peuvent ne pas être aussi fiables. Je ne suis pas un expert Mac, alors prenez ce paragraphe avec un grain de sel: Apple a un kit de développement de pilote appelé I/O Kit, qui apparemment vous oblige à écrire votre pilote en C++, sauf s'ils ont aussi une sorte de cadre de pilote en mode utilisateur. Si vous l'écrivez en Python, ce sera probablement plus comme une bibliothèque Python qui s'interface avec le pilote USB générique de quelqu'un d'autre (Apple?).

4

Le Mac dispose déjà de l'infrastructure sous-jacente pour prendre en charge USB, vous aurez donc besoin d'une bibliothèque Python qui peut en tirer parti. Pour tout projet Python nécessitant un support série, que ce soit USB, RS-232 ou GPIB, je recommande la librairie PyVisa sur SourceForge. Voir .

Si votre appareil n'est pas équipé d'un pilote VISA, vous devez traiter directement avec le système USB. Vous pouvez utiliser une autre bibliothèque sur SourceForge pour cela: http://pyusb.berlios.de/