2010-11-05 4 views
2

Я работаю над приложением python, которое читается с помощью gps-usb-ключа. На данный момент все работает в системах на основе ubuntu/debian, где я общался с gps довольно тупым способом сканирования всех/dev/ttyUSB0-9 с помощью pySerial для чего-то, говорящего по предложениям NMEA на 38400 бодах. Теперь меня попросили заставить это приложение работать на кросс-платформе, и я немного смущен, и это лучший способ найти gps-ключ.Поиск usb gps в кросс-платформе python

я рассмотрел что-то вдоль линий:

if os.name == "posix": 
  self.conn = serial.Serial("/dev/ttyUSB%i" % usb) 
elif os.name == "nt": 
    ... 

Но я предпочел бы одно решение, которое работает кросс-платформенный. Кто-нибудь знает о таком решении?

ответ

2

Вы можете использовать функцию comports из модуля scanwin32.py, указанного в документации pySerial, чтобы выяснить, какие COM порты доступны, а затем, используя возвращаемую информацию о открытых портах, найти который один ваш GPS донгл.

Edit: документация также предоставляет scan.py модуля, который содержит только очень простую функцию, которая будет исследовать каждые 256 портов, чтобы выяснить, какие из них являются открытыми, возможно, было бы достаточно для того, что вам нужно.

+0

Хорошая идея! На самом деле это не независимость платформы, на которую я надеялся, но, возможно, этого не найти ... – Norling

+0

Пробовал все три своих демонстрационных скрипта для поиска последовательных портов, но не получил ни одного из них, работающих в OS X ... Будет необходимо проверьте еще немного! Будет сообщение, если я найду что-то. – Norling

0

Я бы предположил, что в конечном итоге у вас может быть больше пользы от кросс-платформы, так что идите, почему бы не остаться с ним?