我在使用Azure IOT SDK的revPi上运行python脚本。该脚本基本上从.json文件接受一堆modbus寄存器,添加一些属性,然后将其发送到Azure IOT集线器进行分析。
该脚本当前过于依赖网络连接,并且由于基础架构的限制,连接性不可靠,并且经常导致该脚本频繁死/中止。如何使脚本在互联网连接不畅的情况下起作用?使用的主要库是pymodbus和iothub_client。
答案 0 :(得分:1)
根据Checking network connection,我建议像这样;
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”是一个Google地址,但是您可以使用诸如Azure之类的可靠数据,因为这是您发送数据的地方。
使用while循环或添加线程睡眠以使其停止检查更为明智。
希望这会有所帮助。