USB GPSデバイスに接続が切断され、再接続されてもデータを転送し続けるいくつかのヒントがあります。これらのデバイスは非常に脆弱であるため、データ転送を続行するには再起動が必要です。
私の秘訣は、毎分実行されているクローンタスクを持ち(迅速な回復を望んでいる)、要求を続けるスクリプトを呼び出すことです。グローバルポジショニングシステム毎分設定されたすべてのデバイスを監視し続けます。
だからこの行を追加しました。/etc/crontab
:
* * * * * username /usr/bin/python /usr/local/bin/keepalive.py
そして内容/usr/local/bin/keepalive.py
:
import socket
from syslog import syslog, openlog
CMD = '?WATCH={"class":"WATCH","json":true}'
def main():
openlog(__file__)
syslog('connecting to gpsd socket')
try:
sock = socket.create_connection(('localhost', 2947))
except socket.error as e:
syslog('connection failure: {0}'.format(e))
else:
syslog('CMD: ' + CMD)
sock.sendall(CMD)
syslog('success')
finally:
if sock:
sock.close()
if __name__ == '__main__':
main()
私もこの行を追加しました/etc/udev/rules.d/custom.rules
:
ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", SYMLINK+="flaky%n"
複数のデバイスを同時に接続できるためです。
そこにいくつかありますか?ウデブ/グローバルポジショニングシステムこのハッキングを避けるために私ができることはありますか?