Продолжайте получать ошибку, что последовательный порт не определен, когда я пытаюсь добавить определение последовательного порта в классе. Когда я делаю это вне класса, все работает хорошо.
пробовал использовать с самоопределением и без него, а также с __init__
и без __init__
. Я попытался случайно набрать def __init__ (self, ser)
class sensor():
class DP_sensor():
def __init__(self):
# definitions for USB0 serial for dust particle sensor
self.ser = serial.Serial()
#ser.port = sys.argv[1]
self.ser.port = "/dev/ttyUSB0"
self.ser.baudrate = 9600
self.ser.open()
self.ser.flushInput()
def dp_process_frame(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"))
def dp_sensor_read():
byte = 0x0
while byte != b'\xaa':
byte = self.ser.read(size=1)
d = self.ser.read(size=10)
if d[0] == 0xc0:
dp_process_frame(byte + d)
Я посмотрел другие примеры и, похоже, поступил правильно. Это ошибка, которую я продолжаю получать
Файл "/home/pi/AirQuality/AirQual_v03classes.py", строка 71, в dp_sensor_read self.ser.write (b) NameError: name 'self' isне определено