lettura da seriale dalla riga di comando di linux


51

Ho un dispositivo con porta seriale che vorrei testare usando la riga di comando di Linux.

Sono in grado di usare stty ed echo per inviare comandi alla porta seriale, ma quando il dispositivo risponde non ho modo di leggere ciò che proviene dalla porta seriale. sto usando

stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb && echo -n ^R^B > /dev/ttyS0

per inviare un comando al dispositivo. Il dispositivo funziona e invia una risposta entro 300 ms. Come posso stampare quella risposta sulla console usando la riga di comando?

Risposte:


56

Come per l'output. Esempio:

cat /dev/ttyS0

O:

cat < /dev/ttyS0

Il primo esempio è un'app che apre la porta seriale e inoltra ciò che legge da essa alla sua stdout(la tua console). Il secondo è la shell che dirige il traffico della porta seriale verso qualsiasi app che ti piace; questa particolare app quindi inoltra la sua stdinalla sua stdout.

Per ottenere una migliore visibilità del traffico, potresti preferire un dump esadecimale:

od -x < /dev/ttyS0

oppuresocat stdio /dev/ttyS0
pstanton,

Ho inviato un comando a un dispositivo con cui sto lavorando. Il comando è: echo "1GAINS" | sudo tee / dev / ttyUSB0 .... e in risposta sto ottenendo un flusso infinito che ripete lo stesso messaggio. Qualche idea? Il dispositivo stesso dovrebbe ripetere il comando che ho inviato una volta, ma qui è come se avessi un feedback strano.
user391339

Ho verificato che il feedback non è "reale" utilizzando un analizzatore seriale. Il dispositivo rispedisce il comando solo una volta, ma usando i comandi precedenti ottengo una pazza ripetizione senza fine sull'uscita del terminale.
user391339

Funziona con i dati binari?
riscatto

@ransh - Vedi la parte di dump esadecimale della risposta. Alla fine avrai bisogno di un essere umano o di uno strumento che capisca o che possa decodificare quei particolari dati binari.
Jirka Hanika,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.