tty問題:「テキスト良いデータ」の代わりにバイナリがめちゃくちゃです。

tty問題:「テキスト良いデータ」の代わりにバイナリがめちゃくちゃです。

Moxa Uport 1110 USB-シリアルデバイスでGPSを使用しようとしています。 UPortドライバが正常にインストールされ、GPSからNMEA(テキスト)データを送信します。しかし、コマンドを出すと

cat /dev/ttyUSB0

私の端末(重要な場合はUTF8ロケール)にバイナリ混乱が表示されます。 Windowsでは(したがって他のドライバを使用しますが、どちらも正式です)、うまく動作し、データを表示してGPSにアクセスできます。

一部の端末設定に問題があるかどうか疑問に思います。

私は以前安定したGPS設定の理由でもあるstty ispeed 9600を公開したことがあります。また、stty ispeedを低レベルから高レベルまで試しましたが、さまざまな種類の混乱を経験しました。

時々、まれな試みで良い記事が表示されることもあります。

私の現在の端末設定は次のとおりです

 [root@blade gpsd-3.14]# stty -F /dev/ttyUSB0 
 speed 9600 baud; line = 0;
 eof = ^A; min = 1; time = 0;
 -brkint -icrnl -imaxbel
 -opost -onlcr
 -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

問題のある場所を見つけるのを手伝ってくれてありがとう。

答え1

私の経験によると、(数年前から)デバイスがオフになると、物理回線特性がデフォルト値にリセットされます。したがって、stty ... < /dev/ttyUSB0コマンドが完了すると、デバイスはシャットダウンされ、デフォルト値にリセットされ、スタンドアロンコマンドとして実行する必要はありません。

この問題を解決するには、次の手順を実行する必要があります。

sleep 3600 </dev/ttyUSB0 &    # Open the device and keep it open (for 1hr)
stty ... </dev/ttyUSB0        # Set the desired characteristics
cat /dev/ttyUSB0              # Read from the device
...
kill %1                       # Finished with the "sleep"

関連情報