основной конфликт последовательного порта - PullRequest
0 голосов
/ 18 мая 2018

Я использую pi3, который общается с Arduino через serial0 (ttyAMA0)

Все работает нормально.Я могу говорить с этим с Minicom, двунаправленно.Тем не менее, сервер на основе Python также хочет этот порт.Я замечаю, что когда запущен minicom, код python может записывать в serial0, но не читать из него.По крайней мере, minicom сообщает, что сервер python отправил сообщение.

Может кто-нибудь сообщить мне, как этот последовательный порт обрабатывает конфликты, если вообще?Я заметил, что запуск двух сеансов minicom для одного и того же последовательного порта разрушает оба сеанса.Возможно ли иметь несколько писателей и читателей, если они скоординированы, чтобы не действовать одновременно?Или может быть несколько считывателей (несколько терминов, выполняющих cat / dev / serial0)

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

Приветствия

1 Ответ

0 голосов
/ 29 мая 2018

Поскольку два minicom могут пытаться использовать порт, и происходят коллизии, minicom не должен устанавливать консультативную блокировку при локальной записи в последовательный порт.Я предполагаю, что первое приложение, которое читает полученное удаленное последовательное сообщение, очищает его, так как последовательный не буферизируется.Когда локальное приложение пишет в последовательный порт, Minicom отображает это, и оно отправляется.Я собираюсь сделать эту предполагаемую сводку

  1. , когда локальный процесс помещает сообщение в последовательный порт, каждый может его увидеть, и оно отправляется удаленно.
  2. когда удаленное сообщение поступает в последовательный порт, первый локальный процесс, получивший его, получает его.Другие не видят этого.
  3. по какой-то причине minicom имеет привилегию на прибывающие сообщения.Вот почему два миникома разбивают сообщение.
...