from nbus_hal.nbus_serial.serial_port import * from nbus_api.nbus_slave_module import NBusSlaveModule from nbus_api.nbus_slave_device import NBusSlaveDevice from nbus_types.nbus_address_type import NBusModuleAddress, NBusDeviceAddress from nbus_hal.nbus_serial.serial_config import * from nbus_types.nbus_data_fomat import NBusDataValue from nbus_types.nbus_parameter_type import NBusParameterID, NBusParameterValue # example config config = { "port_name": "COM4", "baud": NBusBaudrate.SPEED_921600, "parity": NBusParity.NONE, "timeout": 0.4, "request_attempts": 1, "enable_log": True } class DummySlave(NBusSlaveDevice): def data_parameters_loaded(self) -> bool: return True def map_parameter_get(self, param_id: NBusParameterID, param_value: int) -> NBusParameterValue: return param_value def map_parameter_set(self, param_id: NBusParameterID, param_value: NBusParameterValue) -> int: return param_value def map_data_get(self, values: list[int]) -> list[NBusDataValue]: return values def map_data_set(self, values: list[NBusDataValue]) -> list[int]: return values if __name__ == "__main__": try: port = NBusSerialPort(NBusSerialConfig(**config)) module = NBusSlaveModule(port, 5) module.add_device(DummySlave(1)) module.add_device(DummySlave(2)) module.add_device(DummySlave(3)) module.add_device(DummySlave(4)) module.add_device(DummySlave(5)) module.cmd_set_module_start() sensing_element = module.get_device(1) print("ALL PARAMS: ", sensing_element.cmd_get_all_params()) print("PARAM GAIN: ", sensing_element.cmd_get_param(NBusParameterID.PARAM_GAIN)) print("SENSOR TYPE: ", sensing_element.cmd_get_sensor_type()) print("SENSOR FORMAT: ", sensing_element.cmd_get_info(NBusInfoParam.INFO_FORMAT)) print("DATA: ", sensing_element.cmd_get_data()) print(module.cmd_get_info(NBusInfoParam.INFO_FORMAT)) print(module.cmd_get_data()) except Exception as Ex: print(str(Ex)) print(Ex.args)