Как читать из последовательного порта в Python, не используя внешние API?

Я должен считать поток, который отправляется от самодельного устройства по последовательному порту. Проблема состоит в том, что это должно быть развернуто на машине, где у меня нет доступа для установки чего-либо нового, что означает, что я должен пользоваться библиотеками стандарта Python, чтобы сделать это. Действительно ли это возможно, и если так, как я могу управлять этим.

Если бы это оказывается почти невозможным, я должен буду заставить кого-то устанавливать pySerial, но я был бы очень признателен, если это могло бы быть сделано без этого.

Если бы существуют различия в Linux/Windows, это находится на машине Windows, но я был бы очень признателен за кросс-платформенное решение.

6
задан PeskyGnat 23 March 2012 в 15:34
поделиться

1 ответ

В Unix-подобных операционных системах последовательный порт работает как файл, вы просто открываете его и читаете или записываете байты. Есть несколько дополнительных вызовов, которые вы можете сделать, чтобы установить скорость передачи и многое другое, но это, по сути, все, что есть.

В Windows вы открываете последовательный порт как файл, но вы должны использовать определенные способы доступа к нему, которые немного отличаются от того, что Python использует для обычных файлов. К сожалению, трудно получить доступ к последовательному порту Windows, используя только собственные библиотеки Python.

Библиотека pyserial обеспечивает унифицированный кроссплатформенный способ доступа к последовательным портам. Он основан на ctypes , который входит в стандартную библиотеку начиная с Python 2.5, поэтому вы можете включить pyserial в свое приложение и просто использовать его.

7
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: