Added error counting to measure_multiple_devices.py

This commit is contained in:
Your Name 2021-11-13 22:16:38 +01:00
parent 852de86755
commit 11e7c8c124

View File

@ -4,14 +4,18 @@ from sys import exit
import minimalmodbus import minimalmodbus
import serial import serial
slave_address_list = [ 252, 253 ] #slave_address_list = [ 252, 253 ]
slave_address_list = [ 254 ]
# read # read
readout_count = 0
readout_error_count = 0
while True: while True:
for slave_address in slave_address_list: for slave_address in slave_address_list:
readout_count += 1
# initialize modbus # initialize modbus
instrument = minimalmodbus.Instrument('/dev/rs485', slave_address, close_port_after_each_call=True) # port name, slave address (in decimal) instrument = minimalmodbus.Instrument('/dev/rs485', slave_address, close_port_after_each_call=True) # port name, slave address (in decimal)
instrument.serial.baudrate = 115200 instrument.serial.baudrate = 19200
instrument.serial.bytesize = 8 instrument.serial.bytesize = 8
instrument.serial.parity = serial.PARITY_EVEN instrument.serial.parity = serial.PARITY_EVEN
instrument.serial.stopbits = 1 instrument.serial.stopbits = 1
@ -37,7 +41,8 @@ while True:
with open(f'measurement_device_{slave_address}.csv', 'a+') as f: with open(f'measurement_device_{slave_address}.csv', 'a+') as f:
f.write(f'{time():.1f} {CO2} {T_SHT4x} {RH_SHT4x} {T_SCD4x} {RH_SCD4x} {T_SHT4x_signed} {T_SCD4x_signed}\n') f.write(f'{time():.1f} {CO2} {T_SHT4x} {RH_SHT4x} {T_SCD4x} {RH_SCD4x} {T_SHT4x_signed} {T_SCD4x_signed}\n')
except minimalmodbus.NoResponseError as e: except minimalmodbus.NoResponseError as e:
readout_error_count += 1
with open('measure.log', 'a+') as logfile: with open('measure.log', 'a+') as logfile:
logfile.write(f'Read error for device {slave_address} at {time()} ({str(e)})\n') logfile.write(f'Read error for device {slave_address} at {time()} ({str(e)}) ({readout_error_count}/{readout_count} readouts failed)\n')
continue continue
sleep(10) sleep(10)