Поиск usb gps в кроссплатформенном питоне - PullRequest
2 голосов
/ 05 ноября 2010

Я работаю над приложением Python, которое читает из USB-ключа GPS. До сих пор все работало в системах на основе Ubuntu / Debian, где я довольно тупо общался с gps, сканируя все / dev / ttyUSB0-9 с помощью pySerial для чего-то, говорящего предложения NMEA на скорости 38400 бод. Теперь меня попросили, чтобы это приложение работало кроссплатформенно, и я немного запутался, что было бы лучшим способом найти ключ gps.

Я рассмотрел что-то вроде:

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

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

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

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

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

0 голосов
/ 05 ноября 2010

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

...