+static void
+ao_log_telem_track() {
+ if (ao_monitoring == sizeof (union ao_telemetry_all)) {
+ switch (ao_log_single_write_data.telemetry.generic.type) {
+ case AO_TELEMETRY_SENSOR_TELEMETRUM:
+ case AO_TELEMETRY_SENSOR_TELEMINI:
+ case AO_TELEMETRY_SENSOR_TELENANO:
+ if (ao_log_single_write_data.telemetry.sensor.height > ao_max_height) {
+ ao_max_height = ao_log_single_write_data.telemetry.sensor.height;
+ }
+ if (ao_log_single_write_data.telemetry.sensor.state != ao_flight_state) {
+ ao_flight_state = ao_log_single_write_data.telemetry.sensor.state;
+ if (ao_flight_state == ao_flight_pad)
+ ao_max_height = 0;
+ ao_wakeup(DATA_TO_XDATA(&ao_flight_state));
+ }
+ }
+ }
+}