/******************** (C) COPYRIGHT 2020 Geek************************************
* File Name          : pdr_main.h
* Department         : Sensor Algorithm Team
* Current Version    : V2.0
* Author             : 

& yuanlin@vivo.cm
* Date of Issued     : 2020.7.18
* Comments           : PDR导航算法平台配置文件
********************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif

#ifndef _PDR_MAIN_H_
#define _PDR_MAIN_H_
#include <string>

using namespace std;

#define PATH_MAX  256
#define TRACK_MAX 100000

typedef struct LatLngd {
	double lat;
	double lon;
	double heading;
	double hdop;
	double accuracy;
	double vel;
	double time;
	int    motionType;
} LatLngd;

typedef struct ResultTracks {
	LatLngd gpsTrack[TRACK_MAX];
	LatLngd pdrTrack[TRACK_MAX];
	int gpsLen;
	int pdrLen;
}ResultTracks;

/**----------------------------------------------------------------------
* Function    : pdr_writeKml
* Description : 将pdr算法输出的gps和pdr轨迹写为kml形式
*               path    : kml文件的输出文件路径
*               name    : kml文件主体名称
*               postfix ：在主体名称后面添加的后缀，用于区分类型或者版本
* Date        : 2020/11/1 logzhan
*---------------------------------------------------------------------**/
void KmlWrite(string path, string name, string postfix);

/**----------------------------------------------------------------------
* Function    : getSimulateFileFp
* Description : 给定文件名，以及文件路径，获取仿真文件的文件指针
* Date        : 2021/01/25 logzhan
*---------------------------------------------------------------------**/
FILE* GetSimulateFile(FILE* catalogFp, string path_file, string& fileHead);

/**----------------------------------------------------------------------
* Function    : gpsYaw2GoogleYaw
* Description : 为了让kml显示的角度方位正常，需要把0-360顺时针旋转的Yaw转换
*               为谷歌支持的Yaw规则
* Date        : 2021/01/25 logzhan
*---------------------------------------------------------------------**/
double gpsYaw2GoogleYaw(double heading);

/**----------------------------------------------------------------------
* Function    : Motion2TypeStr
* Description : 把用户运动类型转换为字符串输出
* Date        : 2022/9/16 logzhan
*---------------------------------------------------------------------**/
const char* Motion2TypeStr(int type);

/**----------------------------------------------------------------------
* Function    : updateResTrack
* Description : 更新新输出的结果轨迹，包含GPS轨迹和PDR轨迹
* Date        : 2021/01/25 logzhan
*---------------------------------------------------------------------**/
void UpdateResTrack(ResultTracks& resTrack, LctFs_t& lctfs);

#endif

#ifdef __cplusplus
}
#endif
