我的程序运行了一段时间,可能是 30 分钟的 5 分钟。然后我得到一个错误
我真的很困惑。代码运行良好一段时间,一次我测量了 5 分钟,一次测量了 35 分钟。我得到错误的代码每 30 秒左右被调用一次,所以这不是第一次被调用。它从传感器获取数据并打印出来。在名为 DP 的程序中的任何地方都没有其他变量
class sensor():
class DP_sensor():
def __init__(self,USB_port):
# definitions for USB0 serial for dust particle sensor
self.ser = serial.Serial()
#ser.port = sys.argv[1]
self.ser.port = USB_port
self.ser.baudrate = 9600
self.ser.open()
self.ser.flushInput()
def dp_process_frame(self, d):
r = struct.unpack('<HHxxBBB', d[2:])
pm25 = r[0]/10.0
pm10 = r[1]/10.0
checksum = sum(v for v in d[2:8])%256
print("PM 2.5: {} μg/m^3 PM 10: {} μg/m^3 CRC={}".format(pm25, pm10, "OK" if (checksum==r[2] and r[3]==0xab) else "NOK"))
return pm25
def dp_sensor_read(self):
byte = 0x0
while byte != b'\xaa':
byte = self.ser.read(size=1)
d = self.ser.read(size=10)
if d[0] == 0xc0:
DP=self.dp_process_frame(byte + d)
return DP
这是错误消息,我希望只有在第一次运行时才会出现这样的消息......
File "/home/pi/AirQuality/AirQual_v03classes.py", line 75, in dp_sensor_read
return DP
UnboundLocalError: local variable 'DP' referenced before assignment