Совместно использовать последовательный порт в Windows с помощью Python - PullRequest
0 голосов
/ 30 января 2012

У меня есть модуль GPS, подключенный через последовательный порт (USB-> Виртуальный COM-порт).Измерительное программное обеспечение использует этот порт, поэтому с другим программным обеспечением я не могу получить доступ к данным.Я хотел бы создать два виртуальных COM-порта и поделиться этими данными через это.Возможно ли использовать Python?Есть ли какой-нибудь пример с открытым исходным кодом, написанный на Python?

Ответы [ 2 ]

2 голосов
/ 30 января 2012

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

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

Обратите внимание, что, вероятно, нет ничего невозможного в реализации вашего решения "виртуального порта", но это будетспециальный взлом (он будет работать только с этим конкретным протоколом), и он может быть довольно сложным: вам нужно будет эмулировать два модуля GPS и мультиплексировать запросы к реальному модулю GPS;в зависимости от того, как это работает (например, если оно имеет «сложное» постоянное состояние), оно может быть простым или очень сложным.Но, конечно же, Python будет недостаточно, чтобы эмулировать последовательные порты, вам нужно перейти в режим ядра.

0 голосов
/ 30 января 2012

Вам нужно двустороннее общение или просто чтение? Вы можете собрать или купить оборудование для физического разделения линии данных Rx, чтобы вы могли использовать два COM-порта, каждый из которых считывал бы одни и те же данные. Вы могли бы сделать это и с данными Tx, но вам следует быть осторожным с удалением данных, если оба порта пытаются выполнить запись одновременно.

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