[modules][messages] add AMSL message to air_data

This commit is contained in:
Felix Ruess
2014-10-27 20:00:39 +01:00
parent c743648f8d
commit efa3d84dc6
2 changed files with 14 additions and 1 deletions
+5 -1
View File
@@ -1954,7 +1954,11 @@
<field name="tas_factor" type="float"/> <field name="tas_factor" type="float"/>
</message> </message>
<!--223 is free --> <message name="AMSL" id="223">
<field name="AMSL_BARO" type="float" unit="ft" alt_unit="m"/>
<field name="AMSL_GPS" type="float" unit="ft" alt_unit="m"/>
</message>
<!--224 is free --> <!--224 is free -->
<message name="VIDEO_SYNC" id="225"> <message name="VIDEO_SYNC" id="225">
+9
View File
@@ -152,6 +152,14 @@ static void send_air_data(void)
&air_data.amsl_baro, &air_data.airspeed, &air_data.amsl_baro, &air_data.airspeed,
&air_data.tas_factor); &air_data.tas_factor);
} }
static void send_amsl(void)
{
const float MeterPerFeet = 0.3048;
float amsl_baro_ft = air_data.amsl_baro / MeterPerFeet;
float amsl_gps_ft = stateGetPositionLla_f()->alt / MeterPerFeet;
DOWNLINK_SEND_AMSL(DefaultChannel, DefaultDevice, &amsl_baro_ft, &amsl_gps_ft);
}
#endif #endif
/** AirData initialization. Called at startup. /** AirData initialization. Called at startup.
@@ -191,6 +199,7 @@ void air_data_init(void)
#if PERIODIC_TELEMETRY #if PERIODIC_TELEMETRY
register_periodic_telemetry(DefaultPeriodic, "BARO_RAW", send_baro_raw); register_periodic_telemetry(DefaultPeriodic, "BARO_RAW", send_baro_raw);
register_periodic_telemetry(DefaultPeriodic, "AIR_DATA", send_air_data); register_periodic_telemetry(DefaultPeriodic, "AIR_DATA", send_air_data);
register_periodic_telemetry(DefaultPeriodic, "AMSL", send_amsl);
#endif #endif
} }