読みやすい方法でgpscatの結果を出力するためにgpsdecodeを使用する方法は?

読みやすい方法でgpscatの結果を出力するためにgpsdecodeを使用する方法は?

USBシリアルポートを介してGPS付きプロセッサに接続されています。私がやろうとしていたのは、次のようにしてGPSデータを読み取ることです。

gpscat /dev/ttyS2 | gpsdecode

ただし、非常に遅く、長い​​時間が経過すると、次のように出力されます。

130 root@gw-0317STLG0067 ~ # gpscat /dev/ttyS2 | gpsdecode            
:(
{"class":"SKY","device":"stdin","vdop":1.20,"hdop":1.20,"pdop":1.80,"satellites":[{"PRN":29,"el":28,"az":79,"ss":39,"used":false},{"PRN":31,"el":18,"az":204,"ss":18,"used":false}]}

処理を終了すると、以下が出力されます。

close failed in file object destructor: 
sys.excepthook is missing 
lost sys.stderr

これは正しいコマンドですか?それでは、問題は何ですか?

編集----新規

出力 {"class": "TPV", "device": "stdin", "mode": 2, "lat": 50.782431667, "lon": 6.076753333} {"class": "SKY", "device": "標準入力","衛星":[{"PRN":27,"el":86,"az":124,"ss":30,"used":false}]} {"class":"TPV" , "device": "stdin", "mode": 2, "latitude": 50.782431667, "longitude": 6.076753333} {"class": "TPV", "device": "stdin", "mode": 2 , "緯度": 50.782431667, "経度": 6.076753333} {"クラス": "TPV", "デバイス": "stdin", "モード": 2, "緯度": 50.782431667, "経度": 6.036} " : "TPV", "デバイス": "stdin", "モード": 2, "時間": "2017-07-17T14:52:13.000Z", "ept": 0.005, "lat": 50.782431667, " lon ":6.076753333,"トラック":206.8000,"速度":0.000} {"クラス":"SKY","デバイス":"stdin","vdop":1.60,"hdop":1.00,"pdop" : 2.00 ,"衛星":[{"PRN":7,"el":10,"az":289,"ss":19,"used":false},{"PRN":8,"el" : 54 ,"az":296,"ss":19,"used":false},{"PRN":10,"el":59,"az":122,"ss":43,"used" : false },{"PRN":15,"el":11,"az":38,"ss":43,"used":false},{"PRN":27,"el":84," az " :126,"ss":34,"used":false}]} {"class":"SKY","device":"stdin","vdop":1.60,"hdop":1.00,"pdop " : 2.00,"衛星":[{"PRN":7,"el":10,"az":289,"ss":19,"used":false},{"PRN":8,"el " : 54,"az":296,"ss":19,"used":false},{"PRN":10,"el":59,"az":122,"ss":43,"used " : false},{"PRN":15,"el":11,"az":38,"ss":43,"use":false},{"PRN":27,"el":84, " az ":126,"ss":34,"used":false},{"PRN":27,"el":84,"az":126,"ss":34,"used":false} ] } {"class": "SKY", "device": "stdin", "vdop": 1.60, "hdop": 1.00, "pdop": 2.00, "satellite": [{"PRN": 7, "el " :10,"az":288,"ss":17,"使用済み":false},{"PRN":8,"el":55,"az":296,"ss":22, "使用済み" :false},{"PRN":10,"el":60,"az":120,"ss":41,"used":false},{"PRN":15,"el":10," az":37,"ss":45,"used":false},{"PRN":16,"el":35,"az":188,"ss":25, "used" :false}, {"PRN":18,"el":46,"az":70,"ss":40,"used":false},{"PRN":21,"el": 23," az": 71 ,"ss":38,"used":false},{"PRN":26,"el":10,"az":175,"ss":24,"used": false}, {"PRN ":27,"el":84,"az":126,"ss":33,"used":false}]} {"class":"SKY","device":" stdin", "vdop" : 1.60,"hdop":1.00,"pdop":2.00,"衛星":[{"PRN":7,"el":10,"az":288,"ss":17 ,"used":false },{ "PRN":8,"el":55,"az":296,"ss":22,"used":false},{"PRN":10,"el" :60,"az" :120, "ss":41,"used":false},{"PRN":15,"el":10,"az":37,"ss":45,"used" :false},{"PRN": 16,"el":35,"az":188,"ss":25,"used":false},{"PRN":18,"el":46," az":70," ss" : 40,"used":false},{"PRN":21,"el":23,"az":71,"ss":38,"used":false}, {"PRN":26 ,"el ":10,"az":175,"ss":24,"使用済み":false},{"PRN":27,"el":84,"az":126 ,"ss":33 ,"使用済み":false},{"PRN":70,"el":14,"az":23,"ss":25,"used":false},{"PRN" :86,"el" :39, "az":82,"ss":32,"使用済み":true},{"PRN":65,"el":0,"az":174,"ss" :19,"使用済み": false }, {"PRN": 71, "el": 47, "az": 70, "ss": 29, "use": true}, {"PRN": 72, " el": 35 , "az" :142,"ss":29,"使用済み":true}]}false},{"PRN":10,"el":60,"az":120,"ss" :41,"使用済み":false },{"PRN":15,"el":10,"az ":37,"ss":45,"used":false},{"PRN":16," el":35 ,"az" :188,"ss":25,"used":false},{ "PRN":18,"el":46,"az":70,"ss":40," used":false },{" PRN":21,"el":23,"az":71, "ss":38,"used":false},{"PRN":26,"el":10 ,"az" :175," ss":24,"used":false},{"PRN": 27,"el":84,"az":126,"ss":33,"used":false },{"PRN":70 ,"el":14,"az":23,"ss": 25,"use":false},{"PRN":86,"el":39,"az":82," ss":32 ,"used":true},{"PRN":65,"el ":0,"az":174,"ss":19,"used":false} ,{"PRN": 71,"el" :47,"az":70,"ss":29,"使用済み":true},{"PRN":72,"el":35,"az": 142,"ss" :29,"使用済み" :true}]}false},{"PRN":10,"el":60,"az":120,"ss":41,"used":false} ,{"PRN" :15,"el" :10,"az ":37,"ss":45,"使用済み":false},{"PRN":16,"el":35,"az": 188,"ss" :25,"使用済み" :false},{ "PRN":18,"el":46,"az":70,"ss":40,"used":false},{ "PRN ":21," el":23," az":71,"ss":38,"中古":false},{"PRN":26,"el":10,"az":175,"ss ":24,"中古":false},{"PRN": 27,"el":84,"az":126,"ss":33,"used":false},{"PRN":70, "el":14,"az":23,"ss": 25,"使用":false},{"PRN":86,"el":39,"az":82,"ss":32, "使用":true},{"PRN":65,"el ":0,"az":174,"ss":19,"used":false},{"PRN":71,"el": 47,"az":70,"ss":29,"使用済み":true},{"PRN":72,"el":35,"az":142,"ss":29,"used": true}]}72,"el":35,"az":142,"ss":29,"used":true}]}72,"el":35,"az":142,"ss":29,"used":true}]}

ベストアンサー1

それでは、問題は何ですか?

それ現れるこれはgpsdecodeプロセスを終了するのと同じです。以前はgpscatの出力を読み込みます。読み取りが停止すると、gpscatの出力バッファがいっぱいになります。終了信号がgpscatプロセスに到達すると、Pythonはnull以外の出力ハンドルを閉じようとしますが、接続されたスタックオーバーフローQ&Aに示すように、このメッセージで失敗します。

この特定のエラーを回避するには、gpsdecodeプロセスの代わりにgpscatプロセスを終了してみてください。

おすすめ記事