#ifdef __cplusplus extern "C" { #endif #ifndef _PARSEDATA_H_ #define _PARSEDATA_H_ #include "pdr_sensor.h" #define NAEA_LAST_TIME 500 #define IMU_LAST_COUNT 10 #define FLOAT_TO_INT 1000000 /************************************************************************** * Description : NMEA数据和传感器数据解析 * : NMEA数据包括RMC,GGA,GSA,GSV,以及安卓定位信息语句 传感器数据包括加速度计,陀螺仪,磁力计 **************************************************************************/ char * strtok_ct(char * s, const char * delim); /************************************************************************** * Description : 解析惯性传感器数据 * Input : pt, 传感器数据字符串 ts, 手机开机时间戳,ms sstp,安卓中传感器类型标识符 * Output : imu_p, 惯性传感器结构体 **************************************************************************/ void ParseIMU(char* pt, IMU_t *imu_p, double ts, int sstp); /************************************************************************** * Description : 解析NMEA数据 * Input : pt, NMEA数据字符串 ts, 手机开机时间戳,ms * Output : ln, NMEA数据结构体 **************************************************************************/ void parseNMEA(char* pt, Nmea_t *ln, double ts); /************************************************************************** * Description : 解析GGA协议 * Input : pt, NMEA数据字符串 ts, 手机开机时间戳,ms * Output : ln, NMEA数据结构体 **************************************************************************/ void ParseGGA(char* pt, Nmea_t *ln, double ts); /************************************************************************** * Description : 解析RMC协议 * Input : pt, NMEA数据字符串 ts, 手机开机时间戳,ms * Output : ln, NMEA数据结构体 **************************************************************************/ void ParseRMC(char* pt, Nmea_t *ln, double ts); /************************************************************************** * Description : 解析GSV协议 * Input : pt, NMEA数据字符串 ts, 手机开机时间戳,ms * Output : ln, NMEA数据结构体 **************************************************************************/ void parseGSV(char* pt, Nmea_t *ln, double ts); /************************************************************************** * Description : 解析GSA协议 * Input : pt, NMEA数据字符串 ts, 手机开机时间戳,ms * Output : ln, NMEA数据结构体 **************************************************************************/ void ParseGSA(char* pt, Nmea_t *ln, double ts); /**---------------------------------------------------------------------- * Function : parseLocAccuracy * Description : 解析GPS的Accuracy精度参数 * Date : 2020/7/9 yuanlin@vivo.com &logzhan *---------------------------------------------------------------------**/ void parseLocAccuracy(char* pt, Nmea_t *ln, double ts); /************************************************************************** * Description : 检测NMEA数据是否解析完整 * Input : ln, NMEA数据结构体 **************************************************************************/ void preprocessNMEA(Nmea_t *ln); int ParseLineStr(char* line, IMU_t* imu_p, Nmea_t* ln); /**---------------------------------------------------------------------- * Function : HexToDec * Description : 十六进制数转换为十进制数 * Date : 2022-09-15 logzhan *---------------------------------------------------------------------**/ long HexToDec(char *source); /**---------------------------------------------------------------------- * Function : pdr_int2Hex * Description : 十六进制数转换为十进制数 * Date : 2020/7/9 yuanlin@vivo.com & logzhan *---------------------------------------------------------------------**/ char * Int2Hex(int a, char *buffer); /**---------------------------------------------------------------------- * Function : pdr_getIndexOfSigns * Description : 返回ch字符在sign数组中的序号 * Date : 2020/7/9 yuanlin@vivo.com &logzhan *---------------------------------------------------------------------**/ int pdr_getIndexOfSigns(char ch); #endif #ifdef __cplusplus } #endif