Você confundiu <
com >
. Você tem
echo -e ... < /dev/ttyUSB0
mas deve ser
echo -e ... > /dev/ttyUSB0
Estou usando um adaptador RS485 para USB para se comunicar com hardware, cujos parâmetros podem ser alterados enviando dados em hexadecimais. Eu coloquei:
sudo chmod o+rw /dev/ttyUSB0
stty -F /dev/ttyUSB0 19200 -parodd
Dois terminais estão abertos. O primeiro é:
cat -v < /dev/ttyUSB0
O segundo sendo:
echo -e "\x00\x00\x00\x10\x96\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x92" < /dev/ttyUSB0
O dispositivo deve enviar de volta uma string semelhante, mas não recebo nada no primeiro terminal. A sequência de dados que está sendo enviada foi verificada como o formato correto pelo fabricante. Por que não há resposta?
edit: Só para fornecer mais algumas informações sobre isso, eu também tentei no terminal 1 hexdump < /dev/ttyUSB0
sem sucesso. Também ativei / desativei cada uma das configurações stty
a seguir para determinar se elas tinham algum efeito:
parenb, ixon, crtscts, cread
Atualmente, isso é o que está executando o stty -a < /dev/ttyUSB0
:
speed 19200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O;
min = 1; time = 0;
parenb -parodd -cmspar cs8 hypcl -cstopb cread clocal crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inclr -igncr -icrnl ixon -ixoff -iuclc -ixany
-ixmabel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho
-extproc
Tags hardware usb serial-port