Как отправить данные в последовательный порт и видеть какой-либо ответ?

Нет, по умолчанию, это отключено.

И действительно необходимо ли знать то, что точно метод удаленного доступа это говорит, SSH или возможно Удаленный X сессий или VNC?

Это действительно зависит.

41
26.02.2014, 14:22
5 ответов
[118695] Все устройства в Unix привязаны к файлу устройств, последовательные порты будут [119032]/dev/ttyS0

/dev/ttyS1[119035] ... ... .

Сначала посмотрите на права доступа к этому файлу, предположим, что вы используете [119036]/dev/ttyS1[119037].

ls -l /dev/ttyS1

/dev/ttyS1

Вы захотите прочитать. Доступ на запись, если это разделяемая система, то вы должны учитывать последствия для безопасности, открывая ее для всех.

Очень простой грубый метод записи в файл, будет использовать простую команду [119040]echo[119041].

и для чтения

Вы можете иметь кошку, запущенную в одном терминале, и эхо во втором.


Если все тарабарщина, то скорость передачи, настройки битов могут потребовать установки перед началом отправки. [119042]stty[119043] сделает это. !! ЗАМЕЧАНИЕ: stty будет использовать stdin в качестве дескриптора файла по умолчанию.


Эквивалентные команды.

Этого может быть достаточно для написания сценария чего-нибудь и ведения журнала? Не уверен, чего вы пытаетесь достичь.

Для большей интерактивности, запомните, что по умолчанию ваш подход к настройкам был бы следующим [119044] minicom[119045] это просто программа, которая делает все, что я упоминал до сих пор. (похоже на гипертерминал в Windows, вы можете быть знакомы)

Промежуточное решение - использовать терминальную программу типа [119046]screen[119047], которая будет работать на последовательном устройстве.

man screen

man minicom

man stty[119053] для дополнительной информации[118720].

57
27.01.2020, 19:35
[118727]Все, что вам нужно сделать, это открыть два терминала. В первом терминале вы [119068]cat[119069] все от устройства, напр.

в другом терминале вы можете посылать на терминал произвольные шестнадцатеричные символы и текст, напр:

Команда [119070]echo -e[119071] позволяет интерпретировать обратные слеши.

Конечно, необходимо убедиться в том, что (i) последовательные настройки (скорость, длина слова, поток ctrl и т.д.) правильны и (ii) последовательное устройство (на другом конце) не блокируется.[118734].

11
27.01.2020, 19:35

Вы можете читать и писать на устройство одновременно следующим образом:

cat /dev/cu.usbmodem411 & cat > /dev/cu.usbmodem411

Ваше сообщение отправляется второму cat с stdin и первому cat ] передает ответ на stdout , превращая ваш терминал в чат.

Чтобы закончить, нажмите ctrl-c , затем запустите fg , затем ctrl-c еще раз.

4
20.08.2021, 12:56

Программы, которые взаимодействуют с последовательными устройствами:

picocom
minicom
socat

или из оболочки, вы можете сделать:

stty -speed 19200 < /dev/ttyS0 # sets the speed of the port
exec 99<>/dev/ttyS0 (or /dev/ttyUSB0...etc)
printf "AT\r" >&99
read answer <&99  # this reads just a CR
read answer <&99  # this reads the answer OK
exec 99>&-
17
20.08.2021, 12:56

Это может быть лучшим подходом:

stty -F /dev/ttyUSB0 115200 raw -echo   #CONFIGURE SERIAL PORT
exec 3</dev/ttyUSB0                     #REDIRECT SERIAL OUTPUT TO FD 3
  cat <&3 > /tmp/ttyDump.dat &          #REDIRECT SERIAL OUTPUT TO FILE
  PID=$!                                #SAVE PID TO KILL CAT
    echo "R" > /dev/ttyUSB0             #SEND COMMAND STRING TO SERIAL PORT
    sleep 0.2s                          #WAIT FOR RESPONSE
  kill $PID                             #KILL CAT PROCESS
  wait $PID 2>/dev/null                 #SUPRESS "Terminated" output

exec 3<&-                               #FREE FD 3
cat /tmp/ttyDump.dat                    #DUMP CAPTURED DATA
13
20.08.2021, 12:56

Теги

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