Как читать с последовательного порта в Python без использования внешних API? - PullRequest
6 голосов
/ 24 июня 2010

Мне нужно прочитать поток, который отправляется с самодельного устройства через последовательный порт. Проблема заключается в том, что он должен быть развернут на компьютере, на котором у меня нет доступа для установки чего-либо нового, что означает, что для этого мне нужно использовать стандартные библиотеки python. Возможно ли это, и если да, как я могу справиться с этим.

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

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

Ответы [ 2 ]

7 голосов
/ 24 июня 2010

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

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

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

0 голосов
/ 15 февраля 2018

Вы говорите, что у вас нет доступа для установки чего-либо нового.Я предполагаю, что это проблема с разрешениями - то есть вы не можете получить повышенные права администратора, и установка pip / установка conda не удалась.

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

Просто Google для «виртуальной среды Python», и вы найдете все, что вам нужно.

Если вы используете Anaconda Python, это немного по-другому.Google для "среды conda".

Если вы даже не можете получить командную строку на главном ПК - например, вы заархивируете файлы и отдадите их кому-то другому для развертывания - вы можете все же использовать виртуальную среду.Вам просто нужно заархивировать виртуальную среду вместе со своим скриптом.С помощью Anaconda вы можете организовать создание среды в том же каталоге, что и ваш проект, с помощью ключа -p.Я полагаю, что у pipenv что-то похожее.

Или вы можете упаковать все с помощью pyinstaller, который создает автономную среду выполнения со всеми включенными модулями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...