Как сразу регистрировать последовательные данные?

Я в настоящее время работаю над проектом электроники с микроконтроллером, который отправляет информацию по USB к компьютеру, где это читается из последовательного порта. Я могу считать данные с экраном и зарегистрировать его с stty. Проблема, которую я имею, который является последовательным портом (специальный файл?) не обнаруживается в/dev, пока устройство не загрузилось. Я вручную запускаю экран или stty, и я пропускаю важные сообщения запуска.

Существует ли способ ожидать последовательного порта, чтобы появиться, и затем сразу записать или просмотреть входящие данные?

0
задан 11 October 2019 в 00:39

1 ответ

Я Вы знаете Вас, буду ожидать, скажем, /dev/ttyUSB0 для появления можно использовать inotify систему для ожидания его для появления, затем сделать Вы управляете:

inotifywait -m -e create --format %f  /dev |
while read file
do      if [ "$file" = ttyUSB0 ]
        then  cat /dev/ttyUSB0
        fi
done

Вышеупомянутая печать базовое имя каждого нового файла (или устройство) созданный в /dev каталог, например, "ttyUSB0".


Создать уведомление так быстро, что udev еще не имел времени к chgrp устройство для группировки dialout. Для ожидания до, это сделано, необходимо также искать события изменения атрибута, как следует:

inotifywait -m -e create,attrib --format %f  /dev |
while read file
do      if [ "$file" = ttyUSB0 ]
        then  ls -l /dev/ttyUSB0
              group=$(stat --format=%G /dev/ttyUSB0)
              if [ "$group" = dialout ]
              then  cat /dev/ttyUSB0
              fi
        fi
done
0
ответ дан 22 December 2019 в 00:22

Другие вопросы по тегам:

Похожие вопросы: