example_bridge.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import sys
  2. from nbus_hal.nbus_serial.serial_port import *
  3. from nbus_api.nbus_bridge import NBusBridge
  4. from nbus_hal.nbus_serial.serial_config import *
  5. # example config
  6. config = {
  7. "port_name": "COM3",
  8. "baud": NBusBaudrate.SPEED_921600,
  9. "parity": NBusParity.NONE,
  10. "timeout": 5.0,
  11. "flush_delay": 3.0,
  12. "request_attempts": 1,
  13. "enable_log": False
  14. }
  15. BRIDGE_ACQUIRE_WAIT = 0.5
  16. BRIDGE_STREAM_INTERVAL = 4.0
  17. if __name__ == "__main__": # create port
  18. port = NBusSerialPort(NBusSerialConfig(**config))
  19. # create module
  20. bridge = NBusBridge(port, BRIDGE_ACQUIRE_WAIT)
  21. # run commands
  22. try:
  23. # initialize bridge
  24. #bridge.init()
  25. # test bridge get
  26. print("<<TEST BRIDGE GET>>")
  27. print("CMD GET INFO: ", bridge.cmd_get_info())
  28. print("CMD GET SLAVES: ", bridge.cmd_get_slaves())
  29. print("CMD GET FORMAT: ", bridge.cmd_get_format())
  30. print("CMD GET DATA: ",bridge.cmd_get_data())
  31. # test bridge set
  32. print("<<TEST BRIDGE SET>>")
  33. #print("CMD SET RESET: ",bridge.cmd_set_reset())
  34. print("<<TEST BRIDGE STREAMING>>")
  35. print(f"START STREAM FOR {BRIDGE_STREAM_INTERVAL} SECONDS")
  36. bridge.start_streaming()
  37. time.sleep(BRIDGE_STREAM_INTERVAL)
  38. #print("FETCH STREAM CHUNK:", bridge.fetch_stream_chunk())
  39. print(f"WAIT FOR {BRIDGE_STREAM_INTERVAL} SECONDS")
  40. time.sleep(BRIDGE_STREAM_INTERVAL)
  41. print(f"STOP STREAM AFTER {2*BRIDGE_STREAM_INTERVAL} SECONDS")
  42. bridge.stop_streaming()
  43. print("FETCH STREAM CHUNK:", bridge.fetch_stream_chunk())
  44. print("SAVE FULL STREAM:")
  45. df = bridge.fetch_full_stream()
  46. df.to_csv("data.csv", index=False)
  47. except Exception as e:
  48. print(str(e))
  49. finally:
  50. port.flush()
  51. port.close()