50 lines
2.1 KiB
Python
Executable File
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)
|