0

我有一个在使用 Azure IOT SDK 的 revPi 上运行的 python 脚本。该脚本基本上接受来自 .json 文件的一堆 modbus 寄存器,添加一些属性并将其发送到 Azure IOT 中心进行分析。

该脚本目前过于依赖网络连接,并且由于基础设施限制,连接不可靠,并且经常导致脚本经常死机/中止。如何使脚本在这个糟糕的互联网连接上运行?使用的主要库是 pymodbus 和 iothub_client。

4

1 回答 1

1

根据检查网络连接,我建议这样的事情;

   import urllib2

    if(internet_on())
        CallFunction()
    else
        internet_on()

    def internet_on():
        try:
            urllib2.urlopen('http://216.58.192.142', timeout=1)
            return True
        except urllib2.URLError as err: 
            return False

“216.58.192.142”是一个谷歌地址,但你可以使用任何可靠的东西,比如 Azure,因为这是你发送数据的地方。

使用 while 循环或添加线程睡眠来停止它经常检查可能更明智。

希望这可以帮助。

于 2018-09-19T06:11:09.240 回答