GPS GMS-6 Module
GPSGms6.h
- Committer:
- Lucyjungz
- Date:
- 2016-05-15
- Revision:
- 1:dceb4eaf697e
- Parent:
- 0:7ef27b349b37
- Child:
- 4:fb1cd9893eb8
File content as of revision 1:dceb4eaf697e:
/* ############### Constant Defination ################## */ #define HEADER_SIZE 5 #define GPRMC_TIME_SIZE 10 #define GPRMC_STATUS_SIZE 1 #define GPRMC_LATITUDE_SIZE 9 #define GPRMC_LATITUDE_HEMI_SIZE 1 #define GPRMC_LONGITUDE_SIZE 10 #define GPRMC_LONGITUDE_HEMI_SIZE 1 #define GPRMC_SPEED_SIZE 5 #define GPRMC_COURSE_SIZE 5 #define GPRMC_DATE_SIZE 6 #define GPRMC_MAGNETIC_SIZE 5 #define GPRMC_MAGNETIC_DIR_SIZE 1 #define GPRMC_INDICATOR_SIZE 1 #define INVALID_VALUE 0xFFFF #define RX_BUF_SIZE 100 /* ############### Enum ################## */ typedef enum GPS_ProcessState { GPS_Process_Start = 0, GPS_Process_Header, GPS_Process_Time, GPS_Process_Status, GPS_Process_Latitude, GPS_Process_Latitude_hemis, GPS_Process_Longitude, GPS_Process_Longitude_hemis, GPS_Process_Speed, GPS_Process_Course, GPS_Process_Date, GPS_Process_Magnetic, GPS_Process_Magnetic_Dir, GPS_Process_Indicator, GPS_Process_Complete , GPS_Process_SIZE } GPS_ProcessState; typedef enum GPS_ProcessStatus { GPS_Status_Valid, GPS_Status_Empty, GPS_Status_NotEnough, } GPS_ProcessStatus; /* ############### Structure ################## */ typedef struct { char header[HEADER_SIZE+1]; char time[GPRMC_TIME_SIZE+1]; char status[GPRMC_TIME_SIZE+1]; char latitude[GPRMC_LATITUDE_SIZE+1]; char latitude_hemi[GPRMC_LATITUDE_HEMI_SIZE+1]; char longitude[GPRMC_LONGITUDE_SIZE+1]; char longitude_hemi[GPRMC_LATITUDE_HEMI_SIZE+1]; char speed[GPRMC_SPEED_SIZE+1]; char course[GPRMC_COURSE_SIZE+1]; char date[GPRMC_DATE_SIZE+1]; char magnetic[GPRMC_MAGNETIC_SIZE+1]; char magnetic_dir[GPRMC_MAGNETIC_DIR_SIZE+1]; char indicator[GPRMC_INDICATOR_SIZE+1]; } GPRMC_Data_TypeDef; typedef struct { GPS_ProcessState state; int size; char * p_val; } GPRMC_Tbl_TypeDef; /* ############### Class ################## */ class GPSGms6 { public: /** * Constructor */ GPSGms6(); /** * Start GPS */ void start_GPS(); /** * Get UTC Time * @returns * UTC Time */ tm UTCTime(); /** Get Latest GPRMC Data * * @returns * Latest GPRMC Data */ GPRMC_Data_TypeDef latestGPRMC(); /** Get Valid Data Interval * * @returns * Valid Data Interval */ GPRMC_Data_TypeDef validGPRMC(); /** Get availability of gprmc * * @returns * 'true' - if data is available */ bool available(); private: };