-
Notifications
You must be signed in to change notification settings - Fork 9
/
structs.h
94 lines (80 loc) · 1.46 KB
/
structs.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "types.h"
/*
* This is the primary data structure that provides access
* to the components of each channel
*/
#ifndef STRUCTS_H
#define STRUCTS_H
struct solution_channel
{
int word_error[5];
int page5;
};
struct satellite
{
double Pr, dPr, Tropo, Iono;
};
struct hms
{
int deg, min;
float sec;
};
typedef struct hms hms;
struct almanac /* Approximate orbital parameters */
{
float w, ety, inc, rra, sqa, lan, aop, ma, toa, af0, af1;
char text_message[23];
int health, week, sat_file;
};
typedef struct almanac almanac;
struct ephemeris /* Precise orbital parameters */
{
int iode, iodc, ura, valid, health, week;
double dn, tgd, toe, toc, omegadot, idot, cuc, cus, crc, crs, cic, cis;
double ma, e, sqra, w0, inc0, w, wm, ety, af0, af1, af2;
};
typedef struct ephemeris ephemeris;
struct satvis
{
float azimuth, elevation, doppler;
float x, y, z;
};
typedef struct satvis satvis;
struct ecef
{
double x, y, z;
};
typedef struct ecef ecef;
struct eceft
{
double x, y, z, tb;
float az, el;
};
typedef struct eceft eceft;
struct llh
{
double lat, lon, hae;
};
typedef struct llh llh;
struct pvt
{
double x, y, z, dt;
double xv, yv, zv, df;
};
typedef struct pvt pvt;
struct velocity
{
double east, north, up;
double clock_err;
ecef x, y, z;
};
typedef struct velocity velocity;
struct state
{
velocity vel;
eceft pos;
llh loc;
ecef north, east, up;
};
typedef struct state state;
#endif