重新连接 USB GPS 时如何恢复 ?WATCH 命令

重新连接 USB GPS 时如何恢复 ?WATCH 命令

我有一些技巧可以确保我的 USB GPS 设备在断开连接然后重新连接时继续传输数据。这些设备非常脆弱,需要重新启动才能继续传输数据。

我的技巧是有一个每分钟运行一次的 cron 作业(我想要快速恢复),调用一个不断询问的脚本全球定位系统继续每分钟监视所有已配置的设备。

所以,我添加了这一行/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"

那是因为我可以同时连接多个这些设备。

有没有一些乌德夫/全球定位系统我可以做些什么来避免这种黑客攻击吗?

相关内容