| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- /*
- * gps.h
- *
- * Created on: 2012-8-9
- * Author: Administrator
- */
- #ifndef GPS_UART_H_
- #define GPS_UART_H_
- #define GPS_LINE_LEN 256 //?óê?ò?DDêy?Yμ?3¤?è
- #define GPS_UART_MAX_LEN 160
- #if defined(ADD_ATGM366_GPS_FUN) || defined(DEV_GPS_ATGM366) || defined(DEV_GPS_ATGM332D)
- enum GpsCtrlCmdEnum_
- {
- GPS_SET_BUADRATE0_CMD=0,
- GPS_SET_BUADRATE1_CMD,
- GPS_SET_BUADRATE2_CMD,
- GPS_SET_BUADRATE3_CMD,
- GPS_SET_BUADRATE4_CMD,
- GPS_SET_BUADRATE5_CMD,
- GPS_SEL_UPLOAD_RMC_CMD,
- GPS_SEL_NAVI_SYS_CMD,
- GPS_SEL_UPDATE_FREQ_CMD,
- GPS_SEL_FACTOR_SET_CMD,
- GPS_SEL_BD_SYS_CMD,
- GPS_SEL_GPS_SYS_CMD,
- };
- typedef enum GpsCtrlCmdEnum_ GpsCtrlCmdEnumType;
- enum GpsModuleRunStep_
- {
- GPS_MODULE_INIT_STEP=0,
- GPS_MODULE_BAUD_CHECK_STEP,
- GPS_MODULE_BAUD_SET_STEP,
- GPS_MODULE_BAUD_FINISH_STEP,
- GPS_MODULE_NEMA_SEL_STEP,
-
- GPS_MODULE_NAVI_SYS_STEP,
- GPS_MODULE_UPDATE_FREQ_STEP,
- GPS_MODULE_SYS_STEP,
- GPS_MODULE_NORMAL_RUN_STEP,
- };
- typedef enum GpsModuleRunStep_ GpsModuleRunStepEnum;
- enum GpsRecvFrameStep_
- {
- GPS_FRAME_HEAD=0,
- GPS_FRAME_DATA,
- GPS_FRAME_CHECK,
- GPS_FRAME_TAIL,
- };
- #pragma pack(4)
- struct GpsNmeaDataType_
- {
- bool VaildFlag; //ê1ó?±ê??
- unsigned char nmea[10];
- };
- typedef struct GpsNmeaDataType_ GpsNmeaDataType;
- #pragma pack()
- typedef struct
- {
- int id; //?àD?±ào?
- int ele; //????
- int az; //·?????
- int cn0; //·?????
- int valid;
- }GPS_GSV_ST;
- #define GPS_NUM_MAX 128
- struct GpsNmeaRmcDataType_
- {
- char SingleType[6];
- unsigned char UtcTime[11];
- unsigned char DataValidFlag;
- char data_vaild;
- char slave_vaild;
- uint32_t data_vaild_time;
- uint32_t pluse_count;
- uint32_t gsv_time;
- char wait_sync;
- float Latitude;
- unsigned char LatitudeDir;
- float Longtitude;
- unsigned char LongtitudeDir;
- u32 Longtitude_dd;
- u32 Longtitude_mm;
- float Longtitude_ss;
- u32 Latitude_dd;
- u32 Latitude_mm;
- float Latitude_ss;
- float Spd; //??μ??ù?è
- float cog; //??μ???o??ò
- unsigned char Date[7];
- struct timespec ts;
- u64 MsOffset;
- int bd_sv_num;
- int bd_msg_num;
- int bd_msg_no;
- int gp_sv_num;
- int gp_msg_num;
- int gp_msg_no;
- uint32_t gps_soe_time;
- uint32_t bd_online_time[GPS_NUM_MAX];
- uint32_t gp_online_time[GPS_NUM_MAX];
- GPS_GSV_ST bd_gsv[GPS_NUM_MAX];//±±?·?àD?D?o?
- GPS_GSV_ST gp_gsv[GPS_NUM_MAX];//gps?àD?D?o?
- };
- typedef struct GpsNmeaRmcDataType_ GpsNmeaRmcDataType;
- typedef struct gps_comm
- {
- u8 chnl;
- u8 type;
- BYTE cTypeCounter; //?óêü??ààDí
- BYTE cRecvLenth; //?óê?êy?Y3¤?è
- unsigned char cRecvCnt; //?óê???
- bool bData; //óD±¨??êy?Y
- unsigned char *arrSendBuf; //·¢?íbuf
- unsigned char arrRecvBuf[GPS_LINE_LEN]; //?óê?buf
- bool bRecv;
- bool bErrComm;
- DWORD dTwait;
- DWORD dTApp;
- GpsModuleRunStepEnum GpsModuleRunStep;
- uint32_t recv_wait_time; //3?ê??ˉíê3éoóμè′yx??′|àíêy?Y
- uint32_t recv_handle;
- } GPS_COMM;
- typedef struct
- {
- TIMERELAY time;
- u8 sync_flag;
- }GPS_SYNC_DELAY;
- extern GpsNmeaRmcDataType GpsNmeaRmcData;
- extern GPS_SYNC_DELAY gps_sync;
- extern union u_RsIEC g_tRsIEC[CFG_UART_NUM_MAX];
- void GPSCommInit(GPS_COMM* p,u8 chnl);
- void ResetUartGPSLink(GPS_COMM* p);
- void GPS_Recv(GPS_COMM* p,BYTE byRevData);
- void GPS_Comm_App(GPS_COMM* p);
- void GPS_CommRecv(BYTE *ps);
- void GPS_test(void);
- void uart_gps_isr(void);
- extern int GpsRecvDataFrameHandler(GPS_COMM* data);
- extern void GpsSendBaudrateCmd(GPS_COMM* p);
- extern void GPS_Comm_Send(GPS_COMM* p,char* data,unsigned char datalen);
- extern void GpsModuleFunInit(GPS_COMM* data);
- extern int GpsAdjustTimeFun(struct rtc_time_t* psrtc);
- extern void GenerateSecdPluse(void);
- char gps_data_valid_get(void);
- void gps_info_printf(void);
- void gps_sync_delay(u32 dStep);
- int is_gps_alive(void);
- int gps_slave_sync(struct timespec* ts);
- void GPS_Timer(void);
- void gps_pluse_clear(void);
- void gps_init_step_set(u8 step);
- #endif
- #endif /* GPS_H_ */
|