GPS GMS-6 Module
Diff: GPSGms6.h
- Revision:
- 1:dceb4eaf697e
- Parent:
- 0:7ef27b349b37
- Child:
- 4:fb1cd9893eb8
--- a/GPSGms6.h Tue May 10 06:33:57 2016 +0000 +++ b/GPSGms6.h Sun May 15 09:56:11 2016 +0000 @@ -1,4 +1,4 @@ - +/* ############### Constant Defination ################## */ #define HEADER_SIZE 5 #define GPRMC_TIME_SIZE 10 @@ -17,22 +17,8 @@ #define INVALID_VALUE 0xFFFF #define RX_BUF_SIZE 100 -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; +/* ############### Enum ################## */ typedef enum GPS_ProcessState { GPS_Process_Start = 0, GPS_Process_Header, @@ -58,6 +44,25 @@ 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; @@ -65,14 +70,26 @@ } 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 * @@ -97,15 +114,5 @@ private: - // States - - - - //Member variables - - - - //void GPS_ProcessGpsData(char * buf, unsigned int size, char * t, char * d); - //GPS_ProcessStatus GPS_ProcessGprmcSection(GPS_ProcessState state,char * buf , unsigned int buf_index,unsigned int buf_size, unsigned int section_size, char * ret_value); }; \ No newline at end of file