nbus_system.py 963 B

123456789101112131415161718192021222324252627282930313233343536
  1. from nbus_slave import *
  2. from imu_slave import *
  3. class NbusSystem:
  4. slaves = {}
  5. def __init__(self, debug=False):
  6. self.serial_port = SerialComm('/dev/ttyACM0', debug)
  7. def create_slave(self, clazz, slave_address):
  8. slave = None
  9. if type(clazz) is type(ImuSlave):
  10. slave = ImuSlave(slave_address, self.serial_port)
  11. self.slaves[slave_address] = slave
  12. return slave
  13. def finish(self):
  14. self.serial_port.close()
  15. def open(self):
  16. self.serial_port.open()
  17. def cmd_start(self):
  18. print("MODULE START")
  19. self.serial_port.requestBroadcast(CMD_START, [])
  20. def cmd_stop(self):
  21. print("MODULE STOP")
  22. self.serial_port.requestBroadcast(CMD_STOP, [])
  23. time.sleep(0.05)
  24. self.serial_port.port.reset_input_buffer()
  25. self.serial_port.port.reset_output_buffer()
  26. def get_slave(self, address):
  27. return self.slaves[address]