示例#1
0
    def construct_sim_connection(self):
        # Assemble HW here
        '''
        Stage 1
        '''
        rocket_sim_stage_1 = RocketSim(
            'simple.ork')  # TODO: Update ORK file once possible

        hw_sim_sensors_stage_1 = [
            DummySensor(SensorType.BAROMETER, (1000, 25)),
            DummySensor(SensorType.GPS, (12.6, 13.2, 175)),
            DummySensor(SensorType.ACCELEROMETER, (1, 0, 0)),
            DummySensor(SensorType.IMU, (1, 0, 0, 0)),
            DummySensor(SensorType.TEMPERATURE, (20, )),
            VoltageSensor()
        ]

        hw_sim_ignitors_stage_1 = [
            Ignitor(IgnitorType.MAIN, 4, 14, 16),
            Ignitor(IgnitorType.DROGUE, 17, 34, 35),
        ]

        hwsim_stage_1 = HWSim(rocket_sim_stage_1, hw_sim_sensors_stage_1,
                              hw_sim_ignitors_stage_1)
        '''
        Stage 2
        '''
        rocket_sim_stage_2 = RocketSim(
            'simple.ork')  # TODO: Update ORK file once possible

        hw_sim_sensors_stage_2 = [
            DummySensor(SensorType.BAROMETER, (100000, 25)),
            DummySensor(SensorType.GPS, (12.6, 13.2, 175)),
            DummySensor(SensorType.ACCELEROMETER, (1, 0, 0)),
            DummySensor(SensorType.IMU, (1, 0, 0, 0)),
            DummySensor(SensorType.TEMPERATURE, (20, )),
            VoltageSensor()
        ]

        hw_sim_ignitors_stage_2 = [
            Ignitor(IgnitorType.MAIN, 4, 14, 16),
            Ignitor(IgnitorType.DROGUE, 17, 34, 35),
        ]

        hwsim_stage_2 = HWSim(rocket_sim_stage_2, hw_sim_sensors_stage_2,
                              hw_sim_ignitors_stage_2)

        return {
            'TANTALUS_STAGE_1_CONNECTION':
            SimConnection("TantalusStage1", "0013A20041678FC0", hwsim_stage_1),
            'TANTALUS_STAGE_2_CONNECTION':
            SimConnection("TantalusStage2", "0013A20041678FC0", hwsim_stage_2),
        }
    def construct_sim_connection(self):
        # Assemble HW here

        '''
        Body
        '''
        rocket_sim_body = RocketSim('Hollyburn CanSat Jan 20.ork')

        hw_sim_sensors_body = [
            SensorSim(SensorType.BAROMETER, rocket_sim_body, error_stdev=(50, 0.005)),
            DummySensor(SensorType.GPS, (12.6, 13.2, 175)),
            SensorSim(SensorType.ACCELEROMETER, rocket_sim_body),
            DummySensor(SensorType.IMU, (1, 0, 0, 0)),
            DummySensor(SensorType.TEMPERATURE, (20,)),
        ]

        hw_sim_ignitors_body = [
            Ignitor(IgnitorType.MAIN, 4, 14, 16, action_fn=rocket_sim_body.deploy_main),
            Ignitor(IgnitorType.DROGUE, 17, 34, 35, action_fn=rocket_sim_body.deploy_drogue),
        ]

        hwsim_body = HWSim(rocket_sim_body, hw_sim_sensors_body, hw_sim_ignitors_body)

        '''
        Nose
        '''

        # TODO: Enable this once possible
        '''
        rocket_sim_nose = RocketSim('Hollyburn CanSat Jan 20.ork')

        hw_sim_sensors_nose = [
            SensorSim(SensorType.BAROMETER, rocket_sim_nose, error_stdev=(50, 0.005)),
            DummySensor(SensorType.GPS, (12.6, 13.2, 175)),
            SensorSim(SensorType.ACCELEROMETER, rocket_sim_nose),
            DummySensor(SensorType.IMU, (1, 0, 0, 0)),
            DummySensor(SensorType.TEMPERATURE, (20,)),
        ]

        hw_sim_ignitors_nose = [
            Ignitor(IgnitorType.MAIN, 4, 14, 16, action_fn=rocket_sim_body.deploy_main),
            Ignitor(IgnitorType.DROGUE, 17, 34, 35, action_fn=rocket_sim_body.deploy_drogue),
        ]

        hwsim_nose = HWSim(rocket_sim_nose, hw_sim_sensors_nose, hw_sim_ignitors_nose)
        '''

        return {
            'HOLLYBURN_BODY_CONNECTION': SimConnection("Hollyburn", "0013A20041678FC0", hwsim_body),
            # 'HOLLYBURN_NOSE_CONNECTION': SimConnection("Hollyburn", "0013A20041678FC0", hwsim_nose),
        }
    def test_sensor_read(self):
        GPS_DATA = (1, 2, 3)
        BARO_DATA = (4, 5)

        GPS = DummySensor(SensorType.GPS, GPS_DATA)
        BARO = DummySensor(SensorType.BAROMETER, BARO_DATA)

        hw = HWSim(None, [GPS, BARO], [])

        assert hw.sensor_read(SensorType.GPS) == GPS_DATA
        assert hw.sensor_read(SensorType.BAROMETER) == BARO_DATA

        GPS_DATA = (11, 12, 13)
        BARO_DATA = (14, 15)

        GPS.set_value(GPS_DATA)
        BARO.set_value(BARO_DATA)

        assert hw.sensor_read(SensorType.GPS) == GPS_DATA
        assert hw.sensor_read(SensorType.BAROMETER) == BARO_DATA
def set_dummy_sensor_values(sim_app, device_type: DeviceType,
                            sensor_type: SensorType, *vals):
    hw = get_hw_sim(sim_app, device_type)
    hw.replace_sensor(DummySensor(sensor_type, tuple(vals)))