main.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. from nbus_hal.nbus_serial.serial_port import *
  2. from nbus_api.nbus_slave_module import NBusSlaveModule
  3. from nbus_api.nbus_slave_device import NBusSlaveDevice
  4. from nbus_types.nbus_address_type import NBusModuleAddress, NBusDeviceAddress
  5. from nbus_hal.nbus_serial.serial_config import *
  6. from nbus_types.nbus_data_fomat import NBusDataValue
  7. from nbus_types.nbus_parameter_type import NBusParameterID, NBusParameterValue
  8. # example config
  9. config = {
  10. "port_name": "COM4",
  11. "baud": NBusBaudrate.SPEED_921600,
  12. "parity": NBusParity.NONE,
  13. "timeout": 0.4,
  14. "request_attempts": 1,
  15. "enable_log": True
  16. }
  17. class DummySlave(NBusSlaveDevice):
  18. def data_parameters_loaded(self) -> bool:
  19. return True
  20. def map_parameter_get(self, param_id: NBusParameterID, param_value: int) -> NBusParameterValue:
  21. return param_value
  22. def map_parameter_set(self, param_id: NBusParameterID, param_value: NBusParameterValue) -> int:
  23. return param_value
  24. def map_data_get(self, values: list[int]) -> list[NBusDataValue]:
  25. return values
  26. def map_data_set(self, values: list[NBusDataValue]) -> list[int]:
  27. return values
  28. if __name__ == "__main__":
  29. try:
  30. port = NBusSerialPort(NBusSerialConfig(**config))
  31. module = NBusSlaveModule(port, 5)
  32. module.add_device(DummySlave(1))
  33. module.add_device(DummySlave(2))
  34. module.add_device(DummySlave(3))
  35. module.add_device(DummySlave(4))
  36. module.add_device(DummySlave(5))
  37. module.cmd_set_module_start()
  38. sensing_element = module.get_device(1)
  39. print("ALL PARAMS: ", sensing_element.cmd_get_all_params())
  40. print("PARAM GAIN: ", sensing_element.cmd_get_param(NBusParameterID.PARAM_GAIN))
  41. print("SENSOR TYPE: ", sensing_element.cmd_get_sensor_type())
  42. print("SENSOR FORMAT: ", sensing_element.cmd_get_info(NBusInfoParam.INFO_FORMAT))
  43. print("DATA: ", sensing_element.cmd_get_data())
  44. print(module.cmd_get_info(NBusInfoParam.INFO_FORMAT))
  45. print(module.cmd_get_data())
  46. except Exception as Ex:
  47. print(str(Ex))
  48. print(Ex.args)