#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 带参考 /// mainLines :主星历双行 /// adaj1Lines :邻星历双行 /// adaj2Lines :邻星历双行 /// captime:信号时间 /// refPos: 参考经度,纬度 /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop3SatRef(char* mainLines, char* adaj1Lines, char* adaj2Lines, long long captime, double* refPos , double dtousErr, double ephLocErr , double* level, int levlen, int* resCount, double** res, double* satllh); /// /// 获取三星双时差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 无参考 /// mainLines :主星历双行 /// adaj1Lines :邻星历双行 /// adaj2Lines :邻星历双行 /// captime:信号时间 /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop3SatNoRef(char* mainLines, char* adaj1Lines, char* adaj2Lines, long long captime , double dtousErr, double ephLocErr , double* level, int levlen, int* resCount, 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 /// mainLines :主星历双行 /// adajLines :邻星历双行 /// captime:信号时间 /// refPos: 参考经度,纬度 /// fuHz1: 主上行 /// fuHz2: 邻上行 /// dtousErr: 时差误差 /// dfoHzErr: 频差误差 /// ephLocErr: 星历位置误差 /// ephVLocErr: 星历速度误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop2SatDRef(char* mainLines, char* adajLines, long long captime, 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 /// 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 /// mainLines :主星历双行 /// adaj1Lines :邻星历双行 /// adaj2Lines :邻星历双行 /// captime:信号时间 /// refPos: 参考经度,纬度 /// fuHz1: 主上行 /// fuHz2: 邻上行 /// dfo_err: 频差误差 /// eph_pos_err: 星历位置误差 /// eph_vel_err: 星历速度误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop3SatDF(char* mainLines, char* adaj1Lines, char* adaj2Lines, long long captime, 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 /// 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); /// /// 获取2X1D GDOP /// mainLines :主星历双行 /// adajLines :邻星历双行 /// captime:信号时间 /// cdbPos: 地面站经度,纬度 /// refPos: 参考经度,纬度 /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop2Sat1DRef(char* mainLines, char* adajLines, long long captime, double* cdbPos , double* refPos, double dtousErr, double ephLocErr , double* level, int levlen, int* resCount, 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); /// /// 获取2X1D no ref GDOP /// mainLines :主星历双行 /// adajLines :邻星历双行 /// captime:信号时间 /// cdbPos: 地面站经度,纬度 /// dtousErr: 时差误差 /// ephLocErr: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int Gdop2Sat1DNoRef(char* mainLines, char* adajLines, long long captime, double* cdbPos , double dtousErr, double ephLocErr , double* level, int levlen, int* resCount, 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); /// /// 获取XD_CX ref GDOP /// mainLines :主星历双行 /// captime:信号时间 /// cdbPos: 地面站经度,纬度 /// cxPos: 侧向站经度,纬度 /// refPos: 参考经度,纬度 /// dto_err: 时差误差 /// doa_err: 侧向误差 /// eph_err: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int GdopXDCXRef(char* mainLines, long long captime, 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); /// /// 获取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); /// /// 获取XD_CX no ref GDOP /// mainLines :主星历双行 /// captime:信号时间 /// cdbPos: 地面站经度,纬度 /// cxPos: 侧向站经度,纬度 /// refPos: 参考经度,纬度 /// dto_err: 时差误差 /// doa_err: 侧向误差 /// eph_err: 星历位置误差 /// level: gdop输出等级 /// levlen:level 长度 /// resCount:每一级的数据个数 /// res :数据 /// satllh :卫星位置 长度6 /// 返回值:0 成功 /// GDOP_EXPORT int GdopXDCXNoRef(char* mainLines, long long captime, double* cdbPos, double* cxPos , double dto_err, double doa_err, double eph_err , double* level, int levlen, int* resCount, 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); /// /// 获取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); // // 计算理论频差 //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); /// /// 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 void FreeGDOPBuf(double* val); }