Моя программа работает нормально в течение некоторого времени, может быть 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