unboundlocalerror после 30 минут работы
Моя программа какое-то время работает нормально, может быть 5 минут 30 минут. Тогда я получаю ошибку
Я действительно озадачен. Некоторое время код работает нормально, один раз я измерил 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