📄 garmin_api.h
字号:
char n_15[50]; char n_16[50]; char n_17[50]; char n_18[50]; char n_19[50]; struct GPGSV_STC *prox;}GPGSV_TYP;typedef struct GPRMC_STC{ /* Recommended Minimum Specific GPS/TRANSIT Data (RMC) $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF> <1> UTC time of position fix, hhmmss format for GPS 18 PC/LVC; hhmmss.s format for GPS 18-5Hz <2> Status, A = Valid position, V = NAV receiver warning <3> Latitude, ddmm.mmm format for GPS 18 PC/LVC; ddmm.mmmmm format for GPS 18-5Hz (leading zeros must be transmitted) <4> Latitude hemisphere, N or S <5> Longitude, ddmm.mmm format for GPS 18 PC/LVC; ddmm.mmmmm format for GPS 18-5Hz (leading zeros must be transmitted) <6> Longitude hemisphere, E or W <7> Speed over ground, GPS 18 PC and LVC: 000.0 to 999.9 knots, GPS 18-5Hz: 000.00 to 999.99 knots (leading zeros will be transmitted) <8> Course over ground, 000.0 to 359.9 degrees, true (leading zeros will be transmitted) <9> UTC date of position fix, ddmmyy format <10> Magnetic variation, 000.0 to 180.0 degrees (leading zeros will be transmitted) <11> Magnetic variation direction, E or W (westerly variation adds to true course) <12> Mode indicator (only output if NMEA 0183 version 2.30 active), A = Autonomous, D = Differential, E = Estimated, N = Data not valid */ char n_1[100]; char n_2[100]; char n_3[100]; char n_4[100]; char n_5[100]; char n_6[100]; char n_7[100]; char n_8[100]; char n_9[100]; char n_10[100]; char n_11[100]; char n_12[100];}GPRMC;typedef struct GPVTG_STC{ /* Track Made Good and Ground Speed (VTG) $GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh<CR><LF> <1> True course over ground, GPS 18 PC and LVC: 000 to 359 degrees, GPS 18-5Hz: 000.0 to 359.0 degrees(leading zeros will be transmitted) <2> Magnetic course over ground, 000 to 359 degrees, GPS 18-5Hz: 000.0 to 359.0 degrees(leading zeros will be transmitted) <3> Speed over ground, GPS 18 PC and LVC: 000.0 to 999.9 knots, GPS 18-5Hz: 000.00 to 999.99 knots (leading zeros will be transmitted) <4> Speed over ground, GPS 18 PC and LVC: 0000.0 to 1851.8 kilometers per hour, GPS 18-5Hz: 0000.00 to 1851.89 (leading zeros will be transmitted) <5> Mode indicator (only output if NMEA 0183 version 2.30 active), A = Autonomous, D = Differential, E = Estimated, N = Data not valid */ char n_1[50]; char n_2[50]; char n_3[50]; char n_4[50]; char n_5[50];}GPVTG;typedef struct GPGLL_STC{ /* Geographic Position (GLL) $GPGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh<CR><LF> <1> Latitude, ddmm.mmm format for GPS 18 PC/LVC; ddmm.mmmmm format for GPS 18-5Hz (leading zeros must be transmitted) <2> Latitude hemisphere, N or S <3> Longitude, ddmm.mmm format for GPS 18 PC/LVC; ddmm.mmmmm format for GPS 18-5Hz (leading zeros must be transmitted) <4> Longitude hemisphere, E or W <5> UTC time of position fix, hhmmss format for GPS 18 PC/LVC; hhmmss.s format for GPS 18- 5Hz <6> Status, A = Valid position, V = NAV receiver warning <7> Mode indicator (only output if NMEA 0183 version 2.30 active), A = Autonomous, D = Differential (WAAS), E = Estimated, N = Data not valid */ char n_1[50]; char n_2[50]; char n_3[50]; char n_4[50]; char n_5[50]; char n_6[50]; char n_7[50];}GPGLL;typedef struct PGRME_STC{ /* Estimated Error Information (PGRME) $PGRME,<1>,M,<2>,M,<3>,M*hh<CR><LF> <1> Estimated horizontal position error (HPE), 0.0 to 999.9 meters <2> Estimated vertical position error (VPE), 0.0 to 999.9 meters <3> Estimated position error (EPE), 0.0 to 999.9 meters */ char n_1[50]; char n_2[50]; char n_3[50];}PGRME;typedef struct PGRMF_STC{ /* GPS Fix Data Sentence (PGRMF) $PGRMF,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>*hh<CR><LF> <1> GPS week number (0 to 1023) <2> GPS seconds (0 to 604799) <3> UTC date of position fix, ddmmyy format <4> UTC time of position fix, hhmmss format for GPS 18 PC/LVC; hhmmss.s format for GPS 18- 5Hz <5> GPS leap second count <6> Latitude, ddmm.mmm format for GPS 18 PC/LVC; ddmm.mmmmm format for GPS 18-5Hz (leading zeros must be transmitted) <7> Latitude hemisphere, N or S <8> Longitude, ddmm.mmm format for GPS 18 PC/LVC; ddmm.mmmmm format for GPS 18-5Hz (leading zeros must be transmitted) <9> Longitude hemisphere, E or W <10> Mode, M = manual, A = automatic <11> Fix type, 0 = no fix, 1 = 2D fix, 2 = 3D fix <12> Speed over ground, 0 to 1851 kilometers/hour <13> Course over ground, 0 to 359 degrees, true <14> Position dilution of precision, 0 to 9 (rounded to nearest integer value) <15> Time dilution of precision, 0 to 9 (rounded to nearest integer value) */ char n_1[50]; char n_2[50]; char n_3[50]; char n_4[50]; char n_5[50]; char n_6[50]; char n_7[50]; char n_8[50]; char n_9[50]; char n_10[50]; char n_11[50]; char n_12[50]; char n_13[50]; char n_14[50]; char n_15[50];}PGRMF;typedef struct PGRMT_STC{ /* Sensor Status Information (PGRMT) The Garmin Proprietary sentence $PGRMT gives information concerning the status of the GPS sensor. This sentence is transmitted once per minute regardless of the selected baud rate. $PGRMT,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>*hh<CR><LF> <1> Product, model and software version (variable length field, for example, “GPS 18 VER 2.05”) <2> ROM checksum test, P = pass, F = fail <3> Receiver failure discrete, P = pass, F = fail <4> Stored data lost, R = retained, L = lost <5> Real time clock lost, R = retained, L = lost <6> Oscillator drift discrete, P = pass, F = excessive drift detected <7> Data collection discrete, C = collecting, null if not collecting <8> GPS sensor temperature in degrees C <9> GPS sensor configuration data, R = retained, L = lost */ char n_1[50]; char n_2[50]; char n_3[50]; char n_4[50]; char n_5[50]; char n_6[50]; char n_7[50]; char n_8[50]; char n_9[50];}PGRMT;typedef struct PGRMV_STC{ /* 3D Velocity Information (PGRMV) $PGRMV,<1>,<2>,<3>*hh<CR><LF> <1> True east velocity, -514.4 to 514.4 meters/second for GPS 18 PC/LVC; -514.44 to 514.44 for GPS 18-5Hz <2> True north velocity, -514.4 to 514.4 meters/second for GPS 18 PC/LVC; -514.44 to 514.44 for GPS 18-5Hz <3> Up velocity, -999.9 to 999.9 meters/second for GPS 18 PC/LVC; -999.99 to 999.99 for GPS 18- 5Hz */ char n_1[50]; char n_2[50]; char n_3[50];}PGRMV;typedef struct PGRMB_STC{ /* DGPS Beacon Information (PGRMB) NOTE: The GPS 18 products do not support PGRMB at this time. $PGRMB,<1>,<2>,<3>,<4>,<5>,K,<6>,<7>,<8>*hh<CR><LF> <1> Beacon tune frequency, 0.0, 283.5 to 325.0 kHz in 0.5 kHz steps <2> Beacon bit rate, 0, 25, 50, 100, or 200 bps <3> Beacon SNR, 0 to 31 <4> Beacon data quality, 0 to 100 <5> Distance to beacon reference station in kilometers <6> Beacon receiver communication status (0 = Check Wiring, 1 = No Signal, 2 = Tuning, 3 = Receiving, 4= Scanning) <7> DGPS fix source (R = RTCM, W = WAAS, N = Non-DGPS Fix) <8> DGPS mode, A = Automatic, W = WAAS Only, R = RTCM Only, N = None (DGPS disabled) */ char n_1[50]; char n_2[50]; char n_3[50]; char n_4[50]; char n_5[50]; char n_6[50]; char n_7[50]; char n_8[50];}PGRMB;typedef struct satel{ int sat[35][3]; }sat_info;typedef struct pos_ver{ char time[15]; char date[15]; char lati[15]; char lati_emi[30]; char longi[15]; char longi_emi[15]; char speed[15]; char course[15];} pos_info; //definir como variável um ponteiro para uma estruturatypedef GPALM_TYP *GPALM;typedef GPGSV_TYP *GPGSV;int nmea_in(char *message);void inic_GPALM(GPALM *fila);void inic_GPGSV(GPGSV *fila);void inserir_GPALM(GPALM *fila, int argc,char *argv[]); //filavoid inserir_PGRMI(PGRMI *estrutura, int argc,char *argv[]);void inserir_PGRMC(PGRMC *estrutura, int argc,char *argv[]);void inserir_PGRMC1(PGRMC1 *estrutura, int argc,char *argv[]);void inserir_PGRMO(PGRMO *estrutura, int argc,char *argv[]);void inserir_GPGGA(GPGGA *estrutura, int argc,char *argv[]);void inserir_GPGSA(GPGSA *estrutura, int argc,char *argv[]);void inserir_GPGSV(GPGSV *fila, int argc,char *argv[]); //filavoid inserir_GPRMC(GPRMC *estrutura, int argc,char *argv[]);void inserir_GPVTG(GPVTG *estrutura, int argc,char *argv[]);void inserir_GPGLL(GPGLL *estrutura, int argc,char *argv[]);void inserir_PGRME(PGRME *estrutura, int argc,char *argv[]);void inserir_PGRMF(PGRMF *estrutura, int argc,char *argv[]);void inserir_PGRMT(PGRMT *estrutura, int argc,char *argv[]);void inserir_PGRMV(PGRMV *estrutura, int argc,char *argv[]);void inserir_PGRMB(PGRMB *estrutura, int argc,char *argv[]);void insert_sat_info(int argc,char *argv[]);void print_pos_info();void print_sat_info();void limpa_sat_info();void print(int op);//int correct_stc(char *message);void listar_GPALM(GPALM fila);void listar_GPGSV(GPGSV fila);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -