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)))