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

0 ответов

Другие вопросы по тегам