/* Log request messages (data payload when using JUPITER_FLAG_LOG) */
struct jrequest {
u_short trigger; /* if 0, trigger on time trigger on
update (e.g. new almanac) */
u_short interval; /* frequency in seconds */
u_short offset; /* offset into minute */
u_short dsum; /* checksum */
};
/* JUPITER_O_GPOS (1000) */
struct jgpos {
u_short stime[2]; /* set time (10 ms ticks) */
u_short seq; /* sequence number */
u_short sseq; /* sat measurement sequence number */
u_short navval; /* navigation soltuion validity */
u_short navtype; /* navigation solution type */
u_short nmeas; /* # of measurements used in solution */
u_short polar; /* if 1 then polar navigation */
u_short gweek; /* GPS week number */
u_short sweek[2]; /* GPS seconds into week */
u_short nsweek[2]; /* GPS nanoseconds into second */
u_short utcday; /* 1 to 31 */
u_short utcmon; /* 1 to 12 */
u_short utcyear; /* 1980 to 2079 */
u_short utchour; /* 0 to 23 */
u_short utcmin; /* 0 to 59 */
u_short utcsec; /* 0 to 59 */
u_short utcnsec[2]; /* 0 to 999999999 */
u_short lat[2]; /* latitude (radians) */
u_short lon[2]; /* longitude (radians) */
u_short height[2]; /* height (meters) */
u_short gsep; /* geoidal separation */
u_short speed[2]; /* ground speed (meters/sec) */
u_short course; /* true course (radians) */
u_short mvar;
u_short climb;
u_short mapd;
u_short herr[2];
u_short verr[2];
u_short terr[2];
u_short hverr;
u_short bias[2];
u_short biassd[2];
u_short drift[2];
u_short driftsd[2];
u_short dsum; /* checksum */
};
#define JUPITER_O_GPOS_NAV_NOALT 0x01 /* altitude used */
#define JUPITER_O_GPOS_NAV_NODGPS 0x02 /* no differential GPS */
#define JUPITER_O_GPOS_NAV_NOSAT 0x04 /* not enough satellites */
#define JUPITER_O_GPOS_NAV_MAXH 0x08 /* exceeded max EHPE */
#define JUPITER_O_GPOS_NAV_MAXV 0x10 /* exceeded max EVPE */
/* JUPITER_O_CHAN (1002) */
struct jchan {
u_short stime[2]; /* set time (10 ms ticks) */
u_short seq; /* sequence number */
u_short sseq; /* sat measurement sequence number */
u_short gweek; /* GPS week number */
u_short sweek[2]; /* GPS seconds into week */
u_short gpsns[2]; /* GPS nanoseconds from epoch */
struct jchan2 {
u_short flags; /* flags */
u_short prn; /* satellite PRN */
u_short chan; /* channel number */
} sat[12];
u_short dsum;
};
/* JUPITER_O_VIS (1003) */
struct jvis {
u_short stime[2]; /* set time (10 ms ticks) */
u_short seq; /* sequence number */
u_short gdop; /* best possible GDOP */
u_short pdop; /* best possible PDOP */
u_short hdop; /* best possible HDOP */
u_short vdop; /* best possible VDOP */
u_short tdop; /* best possible TDOP */
u_short nvis; /* number of visible satellites */
struct jvis2 {
u_short prn; /* satellite PRN */
u_short azi; /* satellite azimuth (radians) */
u_short elev; /* satellite elevation (radians) */
} sat[12];
u_short dsum; /* checksum */
};
/* JUPITER_O_ID (1011) */
struct jid {
u_short stime[2]; /* set time (10 ms ticks) */
u_short seq; /* sequence number */
char chans[20]; /* number of channels (ascii) */
char vers[20]; /* software version (ascii) */
char date[20]; /* software date (ascii) */
char opts[20]; /* software options (ascii) */
char reserved[20];
u_short dsum; /* checksum */
};