X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ao_telemetry.c;fp=ao_telemetry.c;h=b46f03c76e737c31f0325b8d3b953737ed417928;hb=d1887ded41a5bfec8e10e9fd736fa9444b9b6222;hp=092918d4b5ee32801f246479a6c6be5ef0a4800f;hpb=43c8f7012102cdb591ace899420c10e4a78385ad;p=fw%2Faltos diff --git a/ao_telemetry.c b/ao_telemetry.c index 092918d4..b46f03c7 100644 --- a/ao_telemetry.c +++ b/ao_telemetry.c @@ -34,16 +34,18 @@ ao_telemetry_send(__xdata struct ao_telemetry *telemetry) __reentrant void ao_telemetry(void) { - static __xdata struct ao_radio_recv recv; + static __xdata struct ao_telemetry telemetry; static uint8_t state; while (ao_flight_state == ao_flight_startup || ao_flight_state == ao_flight_idle) ao_sleep(DATA_TO_XDATA(&ao_flight_state)); - recv.telemetry.type = AO_TELEMETRY_SENSOR; for (;;) { - ao_adc_get(&recv.telemetry.u.adc); - ao_telemetry_send(&recv.telemetry); + ao_adc_get(&telemetry.adc); + ao_mutex_get(&ao_gps_mutex); + memcpy(&telemetry.gps, &ao_gps_data, sizeof (struct ao_gps_data)); + ao_mutex_put(&ao_gps_mutex); + ao_telemetry_send(&telemetry); ao_delay(AO_MS_TO_TICKS(1000)); } }