Я хотел бы написать драйвер для общения с моими часами Suunto t3 на Python на Mac. Моя повседневная работа заключается в выполнении базовой работы в Интернете на C#, поэтому мое знакомство с Python и разработкой на Mac ограничено.
Можете ли вы подсказать, как начать разработку драйверов в целом, а затем более конкретно на Mac. Т.е. как легко увидеть, какие данные передаются на устройство? У меня есть Python 2.5 (MacPorts).






Если часы поддерживают стандартная спецификация класса USB-устройства, например HID или последовательную связь, возможно, для них уже есть драйвер Macintosh, встроенный в ОС. В противном случае вам придется получать информацию о командах поставщика, используемых для связи с ним, из одного из трех источников: производителя; обратное проектирование протокола, используемого драйвером Windows; или от других, кто уже реконструировал протокол для поддержки устройства в Linux или BSD.
USB - это шина на основе пакетов, и очень важно понимать различные типы транзакций. Чтение Спецификация USB - хорошее место для начала.
Вы можете увидеть, какие данные передаются на устройство, с помощью анализатора шины USB, что является дорогостоящим предложением для любителя, но вполне доступно для большинства предприятий, занимающихся разработкой USB. Например, Завоевание катализатора составляет 1199 долларов. Еще один установленный производитель - LeCroy (ранее CATC). Существуют также программные USB-анализаторы, которые подключаются к стеку USB ОС, но они не показывают весь трафик на шине и могут быть не такими надежными.
Я не эксперт по Mac, поэтому отнеситесь к этому абзацу с недоверием: у Apple есть комплект для разработки драйверов под названием Комплект ввода / вывода, который, по-видимому, требует, чтобы вы написали драйвер на C++, если у них также нет какого-либо драйвера пользовательского режима рамки. Если вы пишете его на Python, он, вероятно, будет больше похож на библиотеку Python, которая взаимодействует с чужим (Apple?) Универсальным драйвером USB.
У Mac уже есть базовая инфраструктура для поддержки USB, поэтому вам понадобится библиотека Python, которая сможет ее использовать. Для любого проекта Python, которому требуется последовательная поддержка, будь то USB, RS-232 или GPIB, я бы порекомендовал библиотеку PyVisa на SourceForge. См. http://pyvisa.sourceforge.net/.
Если на вашем устройстве нет драйвера VISA, вам придется иметь дело с системой USB напрямую. Для этого вы можете использовать другую библиотеку на SourceForge: http://pyusb.berlios.de/