48 lines
1.8 KiB
C
48 lines
1.8 KiB
C
#ifndef LINKED_LIST_H_INCLUDED
|
|
#define LINKED_LIST_H_INCLUDED
|
|
|
|
#include "gps_ip_defines.h"
|
|
|
|
typedef struct gps_ephem_ll {
|
|
volatile gps_ephemeris_t* data_p;
|
|
unsigned char tracking_ip_no;
|
|
struct gps_ephem_ll* next;
|
|
volatile unsigned int gps_subframe_mask;
|
|
volatile gpstime_t gps_how_tow;
|
|
volatile uint32_t gps_how_abs_sample;
|
|
volatile double gps_how_corrected_abs_sample;
|
|
volatile uint64_t gps_how_tick;
|
|
volatile bool gps_how_anchor_valid;
|
|
volatile uint32_t gps_nav_solve_sequence;
|
|
volatile uint32_t gps_nav_solve_consumed_sequence;
|
|
volatile uint32_t gps_last_nav_solve_abs_sample;
|
|
volatile double gps_last_nav_solve_corrected_abs_sample;
|
|
volatile uint64_t gps_last_nav_solve_local_ticks;
|
|
volatile uint64_t gps_last_nav_solve_pps_counter;
|
|
volatile uint32_t gps_last_pps_capture_sequence;
|
|
volatile uint64_t gps_last_measurement_tick;
|
|
volatile bool gps_measurement_valid;
|
|
} gps_ephem_ll_t;
|
|
|
|
typedef struct gps_acq_ll {
|
|
unsigned int prn_no;
|
|
struct gps_acq_ll* next;
|
|
} gps_acq_ll_t;
|
|
|
|
extern volatile gps_ephem_ll_t* tracking_node;
|
|
extern volatile gps_acq_ll_t* acquisition_node;
|
|
|
|
bool insert_element(volatile gps_ephem_ll_t** node,
|
|
volatile gps_ephemeris_t* data_p,
|
|
unsigned char trck_ip_no);
|
|
bool delete_by_ip_number(volatile gps_ephem_ll_t** node, unsigned char trck_ip_no);
|
|
bool trck_ip_exists(volatile gps_ephem_ll_t** node, unsigned char trck_ip_no);
|
|
volatile gps_ephem_ll_t* get_element_by_ip_number(volatile gps_ephem_ll_t** node,
|
|
unsigned char trck_ip_no);
|
|
|
|
bool insert_acq_element(volatile gps_acq_ll_t** node, unsigned int prn_no);
|
|
bool delete_acq_element_by_prn_number(volatile gps_acq_ll_t** node, unsigned int prn_no);
|
|
bool acq_prn_exists(volatile gps_acq_ll_t** node, unsigned int prn_no);
|
|
|
|
#endif
|