From 9a48d6c681e78f297e7a606690c4966d1de772a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20=C5=BDaitl=C3=ADk?= Date: Sun, 19 Jun 2022 14:23:22 +0200 Subject: [PATCH] Added definitions of the registers. --- src/veles/devices/sensor_wired_RHT.py | 46 ++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/src/veles/devices/sensor_wired_RHT.py b/src/veles/devices/sensor_wired_RHT.py index 737c446..16b8277 100644 --- a/src/veles/devices/sensor_wired_RHT.py +++ b/src/veles/devices/sensor_wired_RHT.py @@ -1,9 +1,47 @@ +from typing import Dict, Final +from minimalmodbus import NoResponseError from .generic import ModbusRTUDevice -class SensorWiredRHT(ModbusRTUDevice): +class SensorWiredIAQ(ModbusRTUDevice): ''' - Wired sensor measuring temperature, relative humidity, - carbon dioxide and VOC, optionally particulate matter + Wired sensor measuring temperature, relative humidity + and light intensity. ''' - IDENTIFIER: int = 0xbb01 \ No newline at end of file + IDENTIFIER: int = 0xb00b + input_registers: Dict[str, int] = { + 'SER_NUM_1': 30001, + 'SER_NUM_2': 30002, + 'T': 30003, # from SHT4x + 'T_F': 30004, + 'RH': 30005, # from SHT4x + 'LIGHT_INTENSITY_1': 30006, + 'LIGHT_INTENSITY_2': 30007, + 'ERROR_T_RH': 30008, + 'ERROR_LIGHT': 30009 + } | ModbusRTUDevice.input_registers + # TODO use super, but __class__ not defined + holding_registers: Dict[str, int] = { + 'MODBUS_address': 40001, + 'baudrate': 40002, + 'LTR329_GAIN': 40003, + 'LTR329_MEAS_RATE': 40004, + 'LTR329_INTEGRATION_TIME': 40005, + 'LTR329_MODE': 40006 + } | ModbusRTUDevice.holding_registers + RESET_MAGIC_NUMBER: Final[int] = 0xABCD + + @property + def CO2(self): + return int(self.read_register(self.input_registers['CO2'])) + + @property + def T(self): + # TODO maybe use signed version? + return self.read_register(self.input_registers['T'], + signed=True + ) / 10 + + @property + def RH(self): + return self.read_register(self.input_registers['RH'])