Запись на последовательный порт не оставляет сообщения на последовательном порту для чтения тем же устройством.Это просто не то, как работает последовательный порт, и это не то, как написано большинство ОС, чтобы разрешить поведение буфера.Что вам действительно нужно, так это виртуальный последовательный порт.
Просмотрите этот раздел статьи в википедии о перенаправителях COM-портов и посмотрите, удовлетворит ли какой-либо из них ваши потребности.В противном случае я рекомендую искать эмулятор COM-порта, виртуализацию последовательного порта и т. Д., Пока не найдете программное обеспечение, которое будет работать для вашего варианта использования и операционной системы.Это может быть сложно, особенно если синхронизация важна для ваших симуляций.
Edit : Чтобы сделать это немного более понятным, давайте поговорим о том, что на самом деле делает библиотека pySerial для связи с python.pySerial просто взаимодействует с API операционной системы для последовательного порта.ОС обычно моделирует это как местоположение для записи информации и место для чтения информации (буферизованное практически во всех современных вычислительных системах).Важно понимать, что с точки зрения ОС (как смоделирован последовательный порт) местоположение записи может быть ТОЛЬКО записано, а место чтения - только из.Это может или не может быть, как фактическое последовательное аппаратное обеспечение взаимодействует с машиной, в большинстве аппаратных и интерфейсных конструкций последовательного порта, с которыми я работал, это имеет место ради простоты и уменьшенной стоимости.Из-за этого вы можете выбрать один из двух основных вариантов:
Дайте ОС виртуальный последовательный порт, который вы можете читать и записывать каким-либо образом
Возможно, проще, подключите нуль-модемный адаптер к одному из последовательных портов вашего компьютера и, используя последовательный кабель, соедините два порта.Теперь вы можете использовать свой сервис на одном порту, а скрипт имитируемого устройства - на другом.