iaq_sensor_wired/tests/holding_register_test.py
2021-10-10 12:12:39 +02:00

50 lines
2.1 KiB
Python
Executable File

#!/usr/bin/env python3
from time import sleep
import minimalmodbus
import serial
slave_address = 254
instrument = minimalmodbus.Instrument('/dev/ttyUSB0', slave_address, close_port_after_each_call=True) # port name, slave address (in decimal)
instrument.serial.baudrate = 19200
instrument.serial.bytesize = 8
instrument.serial.parity = serial.PARITY_EVEN
instrument.serial.stopbits = 1
instrument.serial.timeout = 0.05 # seconds
instrument.mode = minimalmodbus.MODE_RTU # rtu or ascii mode
instrument.clear_buffers_before_each_transaction = True
# holding register numbers
LED_on_register = 0
LED_brightness_register = 1
LED_smooth_register = 2
CO2_alert_limit_1_register = 3
CO2_alert_limit_2_register = 4
SCD4x_temperature_offset_register = 5
MODBUS_address_register = 6
baudrate_register = 7
# holding register readout
print('---- Reading from holding registers ----')
#LED_on = int(instrument.read_register(LED_on_register, 1, functioncode=3) * 10)
#LED_brightness = int(instrument.read_register(LED_brightness_register, 1, functioncode=3) * 10)
#LED_smooth = int(instrument.read_register(LED_smooth_register, 1, functioncode=3) * 10)
#CO2_alert_limit_1 = int(instrument.read_register(CO2_alert_limit_1_register, 1, functioncode=3) * 10)
#CO2_alert_limit_2 = int(instrument.read_register(CO2_alert_limit_2_register, 1, functioncode=3) * 10)
#SCD4x_temperature_offset = int(instrument.read_register(SCD4x_temperature_offset_register, 1, functioncode=3) * 10)
#MODBUS_address = int(instrument.read_register(MODBUS_address_register, 1, functioncode=3) * 10)
#baudrate = int(instrument.read_register(baudrate_register, 1, functioncode=3) * 10)
# print
#print(
#f'''LED_on = {LED_on}
#LED_brightness = {LED_brightness}
#LED_smooth = {LED_smooth}
#CO2_alert_limit_1 = {CO2_alert_limit_1}
#CO2_alert_limit_2 = {CO2_alert_limit_2}
#SCD4x_temperature_offset = {SCD4x_temperature_offset}
#MODBUS_address = {MODBUS_address}
#baudrate = {baudrate}
#''')
# write to holding register
print('---- Writing to holding registers ----')
instrument.write_register(LED_on_register, 0, functioncode=6)