Лучше сейчас
Для питона существует два модуля для работы с последовательными портами, я бы однозначно рекомендовал pySerial по нескольким причинам:
1. PyVISA сложен в установке, нужно дополнительно устанавливать библиотеку nivisa.
2. PyVISA не видит эмулированный через USB последовательный порт (т.е. переходник USB->COM).
3. В PyVISA нельзя задавать порт напрямую через файл устройства, например, в случае переходника USB->COM это будет /dev/ttyUSB0.
PySerial всех этих недостатков лишен, при этом очень прост в использовании. При работе с последовательным портом не надо забывать выставить одинаковые настойки на компе и собственно устройстве, в особенности это касается скорости передачи и бита четности. Все настройки могут задаваться при создании экземпляра объекта Serial или после через атрибуты.
Python-сообщество
- Начало
- » Python для новичков
- » Подключение pyserial
#1 Фев. 12, 2021 13:41:30
daaar Зарегистрирован: 2021-02-12 Сообщения: 7 Репутация: 0 Профиль Отправить e-mail
Подключение pyserial
Как можно подключить библиотеку не используя pip и setup.py? Я скачал саму библиотеку отсюда. Может быть я могу установить её с помощью setup.py и указать python где ее искать? Суть в том чтобы можно было скинуть этот скрипт на флэшку и запустить на любом другом ПК без установки библиотеки на каждом новом ПК
#2 Фев. 12, 2021 13:51:43
xam1816 Зарегистрирован: 2020-05-11 Сообщения: 1260 Репутация: 108 Профиль Отправить e-mail
Подключение pyserial
Я отдельно скачивал библиотеку в формате whl. Потом через pip install путь к библиотеке, только pip нужно последней версии
#3 Фев. 12, 2021 14:13:56
daaar Зарегистрирован: 2021-02-12 Сообщения: 7 Репутация: 0 Профиль Отправить e-mail
Подключение pyserial
А можно подробнее? Мне не придется это на каждой машине писать?
#4 Фев. 12, 2021 15:05:45
PEHDOM Зарегистрирован: 2016-11-28 Сообщения: 2196 Репутация: 294 Профиль Отправить e-mail
Подключение pyserial
вобще в самых простых случаях достаточно извлечь из архива папку с либой и поместить ее в Lib\site-packages\
Это в самых простых слукчаях, если либа ничего не компилит, или не тянет за собой бинарники которые нужно в ОС регистрировать.
daaar
Суть в том чтобы можно было скинуть этот скрипт на флэшку и запустить на любом другом ПК без установки библиотеки на каждом новом ПК
тогда ложите либу прям в папку с скриптом, когда скрипт запускаеться он ищет либы сначала в своей папке , а потом уже по все остальным путям.
[code python][/code]
Бериегите свое и чужое время.
Отредактировано PEHDOM (Фев. 12, 2021 15:08:56)
pyserial 3.5
История выпусков Уведомления о выпусках | Лента RSS
Эта версия
3.5b0 предварительный выпуск
Загрузка файлов
Загрузите файл для вашей платформы. Если вы не уверены, какой выбрать, узнайте больше об установке пакетов.
Source Distribution
Uploaded 23 нояб. 2020 г. source
Built Distribution
Uploaded 23 нояб. 2020 г. py2 py3
Хеши для pyserial-3.5.tar.gz
| Алгоритм | Хеш-дайджест | |
|---|---|---|
| SHA256 | 3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb | Копировать |
| MD5 | 1cf25a76da59b530dbfc2cf99392dc83 | Копировать |
| BLAKE2b-256 | 1e7dae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082 | Копировать |
Хеши для pyserial-3.5-py2.py3-none-any.whl
| Алгоритм | Хеш-дайджест | |
|---|---|---|
| SHA256 | c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0 | Копировать |
| MD5 | b6b182ebaf20199e9788214cae349df4 | Копировать |
| BLAKE2b-256 | 07bc587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558 | Копировать |
Помощь
О PyPI
Внесение вклада в PyPI
Использование PyPI
Разработано и поддерживается сообществом Python’а для сообщества Python’а.
Пожертвуйте сегодня!
PyPI», «Python Package Index» и логотипы блоков являются зарегистрированными товарными знаками Python Software Foundation.
Работа с библиотекой pyserial
Задача такая: Девайс по интерфейсу RS485 соединен с ПК. На ПК запускаю Pycharm. Библиотека pyserial есть. Вот скрипт:
import serial ser = serial.Serial('COM5', 9600, bytesize=8, parity='N', stopbits=1, timeout=1) def main(): while True: s = ser.readline() if s == b'GETSTATUS\r': print(s) ser.write(b'\\53\54\41\54\55\53\20\31\2c\30\2c \30\2c\31\2c\31\37\5c\72\4f\4b\5c\72') else: print('TIMEOUT') if __name__ == "__main__": main()
Каждые 10 секунд девайс выдает соощение «GETSTATUS\r» . Я его принимаю. И в ответ мне нужно отослать ему сообщение «STATUS 1,0,0,1,17\rOK\r» . Параллельно я «прослушиваю» интерфейс 485. Попробовал писать и «STATUS 1,0,0,1,17\rOK\r» , и «\\53\54\41\54\55\53\20\31\2c\30\2c\30\2c\31\2c\31\37\5c\72\4f\4b\5c\72» . Но в прослушке все время пишет «5C 5D 55 AB 55 5D 55 65 95 FF» . Помогите написать ответ на запрос правильно. Опыта мало в таком деле.
Отслеживать
5,173 8 8 золотых знаков 23 23 серебряных знака 41 41 бронзовый знак
