2008-10-04 4 views
4

Mac에서 Python으로 Suunto t3 watch와 통화 할 수있는 드라이버를 작성하고 싶습니다. 내 직업은 C#에서 기본적인 웹 작업을하고 있기 때문에 파이썬에 대한 친숙 함과 Mac에서의 개발은 제한적입니다.Python을 사용하여 Mac에서 USB 드라이버 개발

일반적으로 드라이버 개발을 시작한 다음 Mac에서보다 구체적인 방법을 제안 할 수 있습니까? 나는. 어떤 데이터가 장치로 전송되고 있는지 쉽게 보는 방법? Python 2.5 (MacPorts)를 설치하고 실행합니다.

답변

3

시계가 HID 또는 직렬 통신과 같은 standard USB device class specification을 지원하는 경우 OS에 내장 된 Macintosh 드라이버가 이미있을 수 있습니다. 그렇지 않으면 세 가지 소스 중 하나에서 통신하는 데 사용되는 공급 업체 명령에 대한 정보를 얻어야합니다. Windows 드라이버가 사용하는 프로토콜을 리버스 엔지니어링합니다. 또는 이미 Linux 나 BSD에서 장치를 지원하기 위해 프로토콜을 리버스 엔지니어링 한 다른 사람들로부터.

USB는 패킷 기반 버스이므로 다양한 트랜잭션 유형을 이해하는 것이 매우 중요합니다. USB specification을 읽는 것이 좋은 출발점입니다.

애호가에게 비싼 제안이지만 USB 개발을 수행하는 대부분의 비즈니스 범위 내에있는 USB 버스 분석기를 사용하여 어떤 데이터가 장치로 전송되는지 확인할 수 있습니다. 예를 들어, Catalyst Conquest은 $ 1199입니다. 다른 제조업체는 LeCroy (formerly CATC)입니다. 또한 OS의 USB 스택에 연결되는 소프트웨어 USB 분석기가 있지만 버스의 모든 트래픽을 표시하지는 않으며 신뢰할 수도 없습니다.

저는 맥 전문가가 아니므로 다음 단락을 염두에 두십시오 : Apple은 I/O Kit이라는 드라이버 개발 킷을 가지고 있습니다. 분명히 C++로 드라이버를 작성해야합니다. 사용자 모드 드라이버 프레임 워크. 파이썬으로 작성한다면 아마도 다른 사람 (애플의?) 일반 USB 드라이버와 인터페이스하는 파이썬 라이브러리와 같을 것이다.

4

Mac에는 USB를 지원하는 기본 인프라가 이미 있으므로,이를 활용할 수있는 Python 라이브러리가 필요합니다. USB, RS-232 또는 GPIB와 같은 직렬 지원이 필요한 Python 프로젝트의 경우 SourceForge에서 PyVisa 라이브러리를 사용하는 것이 좋습니다. http://pyvisa.sourceforge.net/을 참조하십시오.

장치에 VISA 드라이버가없는 경우 USB 시스템을 직접 처리해야합니다. SourceForge에서 다른 라이브러리를 사용할 수 있습니다 : http://pyusb.berlios.de/