main.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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_hal.nbus_serial.serial_config import *
  5. from nbus_types.nbus_data_fomat import NBusDataValue
  6. from nbus_types.nbus_parameter_type import NBusParameterID, NBusParameterValue
  7. # example config
  8. config = {
  9. "port_name": "COM6",
  10. "baud": NBusBaudrate.SPEED_921600,
  11. "parity": NBusParity.NONE,
  12. "timeout": 0.4,
  13. "request_attempts": 1,
  14. "enable_log": False
  15. }
  16. class DummySlave(NBusSlaveDevice):
  17. def data_parameters_loaded(self) -> bool:
  18. return True
  19. def map_parameter_get(self, param_id: NBusParameterID, param_value: int) -> NBusParameterValue:
  20. return param_value
  21. def map_parameter_set(self, param_id: NBusParameterID, param_value: NBusParameterValue) -> int:
  22. return param_value
  23. def map_data_get(self, values: list[int]) -> list[NBusDataValue]:
  24. return values
  25. def map_data_set(self, values: list[NBusDataValue]) -> list[int]:
  26. return values
  27. if __name__ == "__main__":
  28. try:
  29. port = NBusSerialPort(NBusSerialConfig(**config))
  30. module = NBusSlaveModule(port, 5)
  31. module.add_device(DummySlave(1))
  32. module.add_device(DummySlave(2))
  33. module.add_device(DummySlave(3))
  34. module.add_device(DummySlave(4))
  35. module.add_device(DummySlave(5))
  36. module.add_device(DummySlave(129))
  37. module.add_device(DummySlave(130))
  38. # test module get
  39. print("CMD GET ECHO: ", module.cmd_get_echo(bytearray("Hello world!", "ascii")))
  40. print("CMD GET PARAM SAMPLERATE: ", module.cmd_get_param(NBusParameterID.PARAM_SAMPLERATE))
  41. print("CMD GET ALL PARAMS: ", module.cmd_get_all_params())
  42. print("CMD GET SENSOR COUNT: ", module.cmd_get_sensor_cnt())
  43. print("CMD GET SENSOR TYPE: ", module.cmd_get_sensor_type())
  44. print("CMD GET INFO: ", module.cmd_get_info())
  45. print("CMD GET SENSOR FORMAT: ", module.cmd_get_format())
  46. print("CMD GET SENSOR DATA: ", module.cmd_get_data())
  47. # print("ALL PARAMS: ", sensing_element.cmd_get_all_params())
  48. #print("PARAM GAIN: ", sensing_element.cmd_get_param(NBusParameterID.PARAM_GAIN))
  49. # print("SENSOR TYPE: ", sensing_element.cmd_get_sensor_type())
  50. # print("SENSOR FORMAT: ", sensing_element.cmd_get_info(NBusInfoParam.INFO_FORMAT))
  51. #print("DATA: ", sensing_element.cmd_get_data())
  52. #print(module.cmd_get_format())
  53. # print(sensing_element.cmd_get_data())
  54. #print(sensing_element.cmd_set_data([129, 1]))
  55. #print(sensing_element.cmd_get_data())
  56. except Exception as Ex:
  57. print("Error")
  58. print(str(Ex))
  59. print(Ex.args)