Exemple #1
0
    def __init__(self):
        self.imu = IMU()
        self.altimeter = Altimeter()
        self.brakes = Brakes()

        self.gps = GPS()
        self.radio = Radio()
Exemple #2
0
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']
Exemple #3
0
 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')
Exemple #4
0
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']
Exemple #5
0
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
Exemple #6
0
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']
Exemple #7
0
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']
Exemple #8
0
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()
Exemple #9
0
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')
Exemple #10
0
def test_valid_actions_contain_no_duplicates():
    radio = Radio()
    assert len(radio.VALID_ACTIONS) == len(set(radio.VALID_ACTIONS))