X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fkernel%2Fao_tracker.h;h=1adf0f33ee5efff793732ecda85bd38af6e90f0a;hp=43556965ee2f0442a5cee07934a71117a438e614;hb=394ab536257ab58de0190b3828dd3bb897ad4474;hpb=2625a464417c8475c66101757ca2c30cd6c74e0c diff --git a/src/kernel/ao_tracker.h b/src/kernel/ao_tracker.h index 43556965..1adf0f33 100644 --- a/src/kernel/ao_tracker.h +++ b/src/kernel/ao_tracker.h @@ -21,6 +21,29 @@ #define AO_CONFIG_DEFAULT_TRACKER_START_HORIZ 1000 #define AO_CONFIG_DEFAULT_TRACKER_START_VERT 100 +/* Speeds for the various modes, 2m/s seems reasonable for 'not moving' */ +#define AO_TRACKER_NOT_MOVING 200 + +extern int32_t ao_tracker_start_latitude; +extern int32_t ao_tracker_start_longitude; +extern int16_t ao_tracker_start_altitude; + +#define AO_TRACKER_RING 8 + +struct ao_tracker_data { + uint16_t tick; + uint8_t new; + uint8_t state; + struct ao_telemetry_location gps_data; + struct ao_telemetry_satellite gps_tracking_data; +}; + +extern struct ao_tracker_data ao_tracker_data[AO_TRACKER_RING]; +extern uint8_t ao_tracker_head; + +#define ao_tracker_ring_next(n) (((n) + 1) & (AO_TRACKER_RING-1)) +#define ao_tracker_ring_prev(n) (((n) - 1) & (AO_TRACKER_RING-1)) + void ao_tracker_init(void);