私はRS485-USBアダプタを使ってハードウェアと通信します。ハードウェアのパラメータは、16進データ文字列を送信することで変更できます。私は以下を設定しました:
sudo chmod o+rw /dev/ttyUSB0
stty -F /dev/ttyUSB0 19200 -parodd
2つの端末が開いています。最初のものは次のとおりです。
cat -v < /dev/ttyUSB0
2番目は次のとおりです。
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
デバイスは同様の文字列を再送信する必要がありますが、最初の端末では何も受信しません。送信されたデータ文字列は、製造元が正しい形式であることを確認しました。なぜ答えがないのですか?
編集:より関連性の高い情報を提供するためにターミナル1でも試してみhexdump < /dev/ttyUSB0
ましたが、役に立ちませんでした。また、以下の設定をそれぞれオンまたはオフにして、stty
効果があることを確認しました。
parenb, ixon, crtscts, cread
現在実行されている内容は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
ベストアンサー1
あなたはすでに<
混在しています>
。あなたは
echo -e ... < /dev/ttyUSB0
しかし、そうしなければなりません。
echo -e ... > /dev/ttyUSB0