from nbus_slave import * from imu_slave import * class NbusSystem: slaves = {} def __init__(self, debug=False): self.serial_port = SerialComm('/dev/ttyACM0', debug) def create_slave(self, clazz, slave_address): slave = None if type(clazz) is type(ImuSlave): slave = ImuSlave(slave_address, self.serial_port) self.slaves[slave_address] = slave return slave def finish(self): self.serial_port.close() def open(self): self.serial_port.open() def cmd_start(self): print("MODULE START") self.serial_port.requestBroadcast(CMD_START, []) def cmd_stop(self): print("MODULE STOP") self.serial_port.requestBroadcast(CMD_STOP, []) time.sleep(0.05) self.serial_port.port.reset_input_buffer() self.serial_port.port.reset_output_buffer() def get_slave(self, address): return self.slaves[address]