2

Я хочу получать данные от последовательного порта RS232 на мой терминал и с указанием в файл. Это должно быть довольно просто.

cat /dev/ttyS0
cat /dev/ttyS0 > file.txt

Перед этим я настроил параметры, соответствующие параметрам устройства (биохимический анализатор).

sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb

т.е.

  1. Скорость в бодах - 9600
  2. Паритет - нет
  3. Биты - 8 бит
  4. Стоп-биты - 2

Но я ничего не получаю на терминале.Это просто пусто. В чем проблема?

1 ответ1

6

Попробуйте сначала Minicom и посмотрите, что возвращает ваш последовательный порт. Установите его с помощью sudo apt-get install minicom

Вы запускаете это следующим образом (для ttyS0):

sudo minicom -D /dev/ttyS0

Вы можете установить параметры связи из Minicom (используя ctrl-A P), так что вы уверены, что они верны.

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

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

Если вы не можете отключить его, то вам придется настроить это также на своей стороне. В Minicom это под ctrl-A O и затем serial port setup .

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

Я получил больше информации от ОП:

Лабораторный прибор (Cobas C311) использует протокол ASTM. Там в интерфейсе, нам просто нужно нажать "Отправить на хост", и он отправляет кучу записей ASTM. Мне просто нужно получить их в файле. Есть ли другие настройки? Что такое команда начала сбора данных? ... и как сохранить данные в файл?

Выбрал правильные параметры. Миником показывает 9600 8N2. Надеюсь, все в порядке. Но ничего не получил - ни единого кусочка. Анализатор говорит: «Прибор передал ENQ в качестве запроса на отправку, но хост не возвращал ACK или NAK в течение 15 секунд. (Тайм-аут ссылки)

Устройство использует протокол ASTM. Устройство отправляет <ENQ> в качестве сигнала о готовности начать отправку данных.
Это не то, что вы сможете получить с помощью minicom или любой другой терминальной программы. Вам потребуется соответствующее прикладное программное обеспечение, поддерживающее этот протокол.

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

Можно что-то написать самостоятельно, но это будет нелегко. Существует некоторая поддержка Python для ASTM, и есть сценарий Perl, который вы можете попробовать.

У SO также есть пост с некоторой информацией об ASTM.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .