📄 ogr_structs.h
字号:
ms_count; // millisecond counter, 0,...,5999, synch'd to subframe start float CN0; // signal to noise ratio} CHANNEL;// --- correlator GP2021 channel info (statistical/visual info) ---typedef struct { long cod_frq, // carrier frequency DCO car_frq, // code frequency DCO i_prompt_20ms, // I prompt avg'ed over 20 ms q_prompt_20ms, // Q prompt avg'ed over 20 ms i_dith_20ms, // I dither avg'ed over 20 ms q_dith_20ms; // Q dither avg'ed over 20 ms float carrierErr, codeErr; UINT16 ch, // which channel are we talking about? missed, // total number of missed accumulations code_phase, // phase in 1/2 chip increments (GP2021 slew register) code_dco_phase; // code phase in 1/1024 of a 1/2 chip increments INT16 i_prompt, // in-phase prompt arm q_prompt, // quad-phase promt arm i_dith, // in-phase early/late arm q_dith, // quad-phase early/late arm prn, // which PRN to use for correlation sourceSel; // which RF front end to use (0 or 1)} CHN_INFO;// --- chanel info ring buffer ---typedef struct{ INT16 ch_head, // index of last written element, -1 : not yet written to leadch, // monosat mode: master channel watchdog; // ogr still alive? CHN_INFO chan[CHN_RBUF_LEN];} CHN_RBUF;// --- nav message info ---typedef struct{ INT16 idx, // pointer to next element sf_id, // subframe id: 1,...,5 subframe_full; // read 300 bits, now decode unsigned long subframe[11], // 10 word a 24 data bits (index : 1,...,10 !) subframe_parity[11], // 10 word a 30 bits, bit 30 & 31 copy subframe_buffer[11]; // ring buffer // bit 0 & 1 from previous word} NAVMSG;// --- data required for navigation fix ---typedef struct{ unsigned long tow_tic_count[NOFCHN], tow_1s[NOFCHN]; INT16 epoch[NOFCHN], code_phase[NOFCHN], code_dco_phase[NOFCHN], carr_dco_phase[NOFCHN], carr_cycle_lo[NOFCHN], carr_cycle_hi[NOFCHN]; int perform_navfix;} NAVDATA;// control parameters, available to both, user- and rt-moduletypedef struct{ long magic, mod_loaded, frq_step, acq_thresh, code_corr, pul_cod_c1, // PLL parameter pull_in pul_cod_c3, // c3 = c1+c2 pul_car_c1, // carrier, pull-in pul_car_c3, trk_cod_c1, // code, tracking trk_cod_c3, trk_car_c1, // carrier, tracking trk_car_c3; unsigned long tow_tic_count; // time of week in units of 0.1 sec int user_watch_flag; // user prg still running? INT16 search_min_f, search_max_f, confirm_above_thresh_max, // acq confirmed if in 'confirm_above_thresh_max' confirm_count_max, // out of 'confirm_count_max' DUMPs above threshold pull_in_count_max, // ch_pull_in() timer align_count_max, // ch_align() timer// phase_test, trans, // transition to other mode at next DUMP rt_polling, // polling active in RT module accum_new, accum_missed, monosat_slew, // +1(-1) : shift +1(-1) halfchip leadch, // MONOSAT mode: # of leading channel sec_flag, // indicate: 1 sec passed min_flag, // indicate: 1 min passed earlylate, // -1 : early, +1 : late monosat_cod_ofs[NOFCHN]; UINT16 nav_tic;} RT_CTRL;// control parameters, available to user land prg onlytypedef struct{ INT16 gps_week, cold_prn, almanac_valid, status, nof_trk; // number of tracked sats unsigned long almanac_read; double mask_angle, nav_upd, clock_offset, pul_cod_dampratio, // PLL parameter (pull_in) pul_cod_loopgain, pul_cod_bandwidth, pul_car_dampratio, pul_car_loopgain, pul_car_bandwidth, trk_cod_dampratio, // PLL parameter (tracking) trk_cod_loopgain, trk_cod_bandwidth, trk_car_dampratio, trk_car_loopgain, trk_car_bandwidth;} CTRL;// broadcast ionospheric delay modeltypedef struct{ double b0, b1, b2, b3, al0, al1, al2, al3; } IONO;// broadcast UTC datatypedef struct{ double a0, a1, tot, WNt, dtls, WNlsf, DN, dtlsf; } UTC;// dilution of precisiontypedef struct{ double hdop, // horizontal dilution vdop, // vertical dilution tdop, // time dilution pdop, // position dilution of precision gdop; // geometric dilution of precision (rss of pdop & tdop)} DOPS;/* * tracking is in one the following states * 'follow_monosat' : correlator follows channel 'trackch' */enum { off, // 0 initialize, // 1 initialize channel acquisition, // 2 acquire signal confirm, // 3 confirm acq signal pull_in, // 4 pull in tracking loops align, // 5 align to nav bit boundaries track, // 6 track signal track_monosat, // 7 master channel (MONOSAT mode) follow_monosat, // 8 slave channel follow master channel track_riseset, // 9 master channel (rising/setting mode) follow_riseset // a slave channel follow master channel};enum { mode_coldstart, // start with no almanac info mode_warmstart, // we have almanac information mode_tracking, // valid receiver position found mode_navigate, // valid receiver position found mode_monosat, // all correlators track one satellite mode_riseset // as 'mode_monosat', however schedule events as well};enum { none, // do nothing trans2navigate, // transition to navigation mode trans2monosat, // transition to monosat mode trans2riseset // transition to riseset mode};#endif/* ----------------------- end of file ------------------------ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -