def __init__(self): self.imu = IMU() self.altimeter = Altimeter() self.brakes = Brakes() self.gps = GPS() self.radio = Radio()
def test_captures_test_report_connecting_message(): expected_message = {'action': Radio.ACTION_CONNECTING, 'data': []} radio = Radio() radio.serial = DummySerial(json.dumps(expected_message)) message = radio.receive() assert message['action'] == expected_message['action'] assert message['data'] == expected_message['data']
def __init__(self, radio_port): self.completer = WordCompleter(Radio.VALID_ACTIONS, ignore_case=True) self.history = InMemoryHistory() self.radio = Radio(radio_port) self.connected = False if self.radio.connected(): self.connect_with_rocket() else: print('Could not connect with radio')
def test_captures_test_report_position_message(): expected_message = {'action': Radio.ACTION_POSITION_REPORT, 'data': []} radio = Radio() radio.serial = DummySerial(json.dumps(expected_message)) message = radio.receive() assert message['action'] == expected_message['action'] assert message['data'] == expected_message['data']
def test_ignores_invalid_messages(): invalid_message = {'action': 'NOT A VALID ACTION', 'data': []} radio = Radio() radio.serial = DummySerial(json.dumps(invalid_message)) message = radio.receive() assert message['action'] == None assert message['data'] == None
def test_captures_test_brake_message(): expected_message = {'action': Radio.ACTION_TEST_BRAKES, 'data': []} radio = Radio() radio.serial = DummySerial(json.dumps(expected_message)) message = radio.receive() assert message['action'] == expected_message['action'] assert message['data'] == expected_message['data']
def test_captures_transition_message(): expected_message = {'action': Radio.ACTION_TRANSITION, 'data': 'my_state'} radio = Radio() radio.serial = DummySerial(json.dumps(expected_message)) message = radio.receive() assert message['action'] == expected_message['action'] assert message['data'] == expected_message['data']
class DeviceFactory(object): def __init__(self): self.imu = IMU() self.altimeter = Altimeter() self.brakes = Brakes() self.gps = GPS() self.radio = Radio() def sleep_all(self): self.imu.sleep() self.radio.sleep() def wake_all(self): self.imu.wake() self.radio.wake()
class Client(object): def __init__(self, radio_port): self.completer = WordCompleter(Radio.VALID_ACTIONS, ignore_case=True) self.history = InMemoryHistory() self.radio = Radio(radio_port) self.connected = False if self.radio.connected(): self.connect_with_rocket() else: print('Could not connect with radio') def connect_with_rocket(self): print('Estabilishing connection with rocket...') while not self.connected: message = self.radio.receive() if message['action'] == Radio.ACTION_CONNECTING: print('Connected to rocket') self.radio.transmit(Radio.ACTION_CONNECTING, True) self.connected = True def run(self): message = self.radio.receive() if message['action'] != None: print(message) action = prompt(u'> ', history=self.history, completer=self.completer) if action in Radio.VALID_ACTIONS: self.radio.transmit(action, []) elif action == 'help': print('The following are availible radio actions: {}'.format( Radio.VALID_ACTIONS)) else: print('INVALID ACTION')
def test_valid_actions_contain_no_duplicates(): radio = Radio() assert len(radio.VALID_ACTIONS) == len(set(radio.VALID_ACTIONS))