X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fkernel%2Fao_tracker.c;fp=src%2Fkernel%2Fao_tracker.c;h=e45653a69fc9ef529b88b54fb2fa35470ab1b78b;hp=b7e634656285a2b823c9ff6cb088fbe4c81c5736;hb=c49bd3cb0c31a51fae79ddc92237cc309be9a242;hpb=d225adc3af9e5726d436cbbdbf8dcc5837e50804 diff --git a/src/kernel/ao_tracker.c b/src/kernel/ao_tracker.c index b7e63465..e45653a6 100644 --- a/src/kernel/ao_tracker.c +++ b/src/kernel/ao_tracker.c @@ -55,14 +55,14 @@ static uint8_t tracker_mutex; static uint8_t log_started; static struct ao_telemetry_location gps_data; static uint8_t tracker_running; -static uint16_t tracker_interval; +static uint8_t tracker_interval; static void ao_tracker(void) { uint8_t new; - int32_t ground_distance; - int16_t height; + uint32_t ground_distance; + gps_alt_t height; AO_TICK_TYPE gps_tick; uint8_t new_tracker_running; @@ -134,8 +134,8 @@ ao_tracker(void) height = -height; if (ao_tracker_force_telem > 1) - printf("head %d ring %d ground_distance %ld height %d\n", gps_head, ring, (long) ground_distance, height); - if (ground_distance > ao_config.tracker_motion || + printf("head %d ring %d ground_distance %lu height %ld\n", gps_head, ring, (long) ground_distance, height); + if (ground_distance > (uint32_t) ao_config.tracker_motion || height > (ao_config.tracker_motion << 1)) { moving = 1; @@ -186,9 +186,9 @@ ao_gps_lock(void) static uint8_t erasing_current; void -ao_tracker_erase_start(uint16_t flight) +ao_tracker_erase_start(int32_t flight) { - erasing_current = flight == ao_flight_number; + erasing_current = flight == (int32_t) ao_flight_number; if (erasing_current) { ao_mutex_get(&tracker_mutex); ao_log_stop(); @@ -211,9 +211,9 @@ static struct ao_task ao_tracker_task; static void ao_tracker_set_telem(void) { - uint16_t r = ao_cmd_hex(); + uint32_t r = ao_cmd_hex(); if (ao_cmd_status == ao_cmd_success) - ao_tracker_force_telem = r; + ao_tracker_force_telem = r != 0; ao_cmd_status = ao_cmd_success; printf ("flight: %d\n", ao_flight_number); printf ("force_telem: %d\n", ao_tracker_force_telem);