#pragma once #ifdef _WIN32 # if defined(GDOP_LIB) # define GDOP_EXPORT __declspec(dllexport) # else # define GDOP_EXPORT __declspec(dllimport) # endif #else # define GDOP_EXPORT #endif extern "C" { /// /// 获取三星双时差GDOP 带参考 /// mainxyz :xyz vx vy vz /// adaj1xyz :xyz vx vy vz /// adaj2xyz :xyz vx vy vz /// refPos: 参考经度,纬度 /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop3SatRefByXyz(double *mainxyz, double *adaj1xyz, double *adaj2xyz, double *refPos , double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int Gdop3SatRefByXyz_new(double *mainxyz, double *adaj1xyz, double *adaj2xyz, double *refPos , double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取三星双时差GDOP 无参考 /// mainxyz :xyz vx vy vz /// adaj1xyz :xyz vx vy vz /// adaj2xyz :xyz vx vy vz /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop3SatNoRefByXyz(double *mainxyz, double *adaj1xyz, double *adaj2xyz , double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int Gdop3SatNoRefByXyz_new(double *mainxyz, double *adaj1xyz, double *adaj2xyz , double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取双星GDOP /// mainxyz :xyz vx vy vz /// adajxyz :xyz vx vy vz /// refPos: 参考经度,纬度 /// fuHz1: 主上行 /// fuHz2: 邻上行 /// dtousErr: 时差误差 /// dfoHzErr: 频差误差 /// ephLocErr: 星历位置误差 /// ephVLocErr: 星历速度误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop2SatDRefByXyz(double *mainxyz, double *adajxyz, double *refPos , double fuHz1, double fuHz2, double dtousErr, double dfoHzErr, double ephLocErr, double ephVLocErr , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int Gdop2SatDRefByXyz_new(double *mainxyz, double *adajxyz, double *refPos , double fuHz1, double fuHz2, double dtousErr, double dfoHzErr, double ephLocErr, double ephVLocErr , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取三星双频差GDOP /// mainxyz :xyz vx vy vz /// adaj1xyz :xyz vx vy vz /// adaj2xyz :xyz vx vy vz /// refPos: 参考经度,纬度 /// fuHz1: 主上行 /// fuHz2: 邻上行 /// dfo_err: 频差误差 /// eph_pos_err: 星历位置误差 /// eph_vel_err: 星历速度误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop3SatDFByXyz(double *mainxyz, double *adaj1xyz, double *adaj2xyz, double *refPos , double fuHz1, double fuHz2, double dfo_err, double eph_pos_err, double eph_vel_err , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int Gdop3SatDFByXyz_new(double *mainxyz, double *adaj1xyz, double *adaj2xyz, double *refPos , double fuHz1, double fuHz2, double dfo_err, double eph_pos_err, double eph_vel_err , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取2X1D GDOP /// mainxyz :xyz vx vy vz /// adajxyz :xyz vx vy vz /// cdbPos: 地面站经度,纬度 /// refPos: 参考经度,纬度 /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop2Sat1DRefByXyz(double *mainxyz, double *adajxyz, double *cdbPos , double *refPos, double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int Gdop2Sat1DRefByXyz_new(double *mainxyz, double *adajxyz, double *cdbPos , double *refPos, double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取2X1D no ref GDOP /// mainxyz :xyz vx vy vz /// adajxyz :xyz vx vy vz /// cdbPos: 地面站经度,纬度 /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop2Sat1DNoRefByXyz(double *mainxyz, double *adajxyz, double *cdbPos , double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int Gdop2Sat1DNoRefByXyz_new(double *mainxyz, double *adajxyz, double *cdbPos , double dtousErr, double ephLocErr , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取XD_CX ref GDOP /// mainxyz :xyz vx vy vz /// cdbPos: 地面站经度,纬度 /// cxPos: 侧向站经度,纬度 /// refPos: 参考经度,纬度 /// dto_err: 时差误差 /// doa_err: 侧向误差 /// eph_err: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int GdopXDCXRefByXyz(double *mainxyz, double *cdbPos, double *cxPos, double *refPos , double dto_err, double doa_err, double eph_err , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int GdopXDCXRefByXyz_new(double *mainxyz, double *cdbPos, double *cxPos, double *refPos , double dto_err, double doa_err, double eph_err , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取XD_CX no ref GDOP /// mainxyz :xyz vx vy vz /// cdbPos: 地面站经度,纬度 /// cxPos: 侧向站经度,纬度 /// refPos: 参考经度,纬度 /// dto_err: 时差误差 /// doa_err: 侧向误差 /// eph_err: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int GdopXDCXNoRefByXyz(double *mainxyz, double *cdbPos, double *cxPos , double dto_err, double doa_err, double eph_err , double *level, int levlen, int *resCount, double **res, double *satllh); GDOP_EXPORT int GdopXDCXNoRefByXyz_new(double *mainxyz, double *cdbPos, double *cxPos , double dto_err, double doa_err, double eph_err , double *level, int levlen, int *resCount, int **lpoints, double **res, double *satllh); /// /// 获取XD_CX no ref GDOP /// cx1Pos: 侧向站经度,纬度 /// cx2Pos: 侧向站经度,纬度 /// doa_err1: 侧向1误差 /// doa_err2: 侧向2误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop2CX(double *cx1Pos, double *cx2Pos , double doa_err1, double doa_err2 , double *level, int levlen, int *resCount, double **res); GDOP_EXPORT int Gdop2CX_new(double *cx1Pos, double *cx2Pos , double doa_err1, double doa_err2 , double *level, int levlen, int *resCount, int **lpoints, double **res); // // 计算理论频差 //tarpos 目标位置 //recpos 接收站位置 //eph1 星历 x y z vx vy vz //eph2 星历 x y z vx vy vz //fu 上行 //fd 下行 // GDOP_EXPORT double theryDfo(double *tarpos, double *recpos, double *eph1, double *eph2, double fu, double fd); /// /// XD时差线 /// main_sat_pos 卫星星历 xyz /// mbwx_rec_pos 目标接收站位置 llh /// ckwx_rec_pos 参考接收站位置 llh /// cdb_rec_pos 地面接收站位置 llh /// ref_pos 参考位置 llh /// target_dto 目标时差 llh /// ref_dto 参考时差 llh /// reslen 时差线个数 /// res 值 /// GDOP_EXPORT int SCX_XD(double *main_sat_pos, double *mbwx_rec_pos, double *ckwx_rec_pos, double *cdb_rec_pos, double *ref_pos, double target_dto, double ref_dto, int *reslen, double **res); GDOP_EXPORT int SCX_XD_new(double *main_sat_pos, double *mbwx_rec_pos, double *ckwx_rec_pos, double *cdb_rec_pos, double *ref_pos, double target_dto, double ref_dto, int *linecount, int **reslen, double **res); /// /// XD时差线 /// main_sat_pos 卫星星历 xyz /// mbwx_rec_pos 目标接收站位置 llh /// ckwx_rec_pos 参考接收站位置 llh /// cdb_rec_pos 地面接收站位置 llh /// ref_pos 参考位置 llh /// target_dto 目标时差 llh /// ref_dto 参考时差 llh /// reslen 时差线个数 /// res 值 /// GDOP_EXPORT int SCX_XD_NoRef(double *main_sat_pos, double *mbwx_rec_pos, double *cdb_rec_pos, double target_dto, int *reslen, double **res); GDOP_EXPORT int SCX_XD_NoRef_new(double *main_sat_pos, double *mbwx_rec_pos, double *cdb_rec_pos, double target_dto, int *linecount, int **reslen, double **res); /// /// 释放 /// GDOP_EXPORT void FreeGDOPBuf(double *val); }