123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.InteropServices;
- using System.Text;
- using System.Threading.Tasks;
- namespace XdCxRhDW.Core.Api
- {
- public static class GDOPApi
- {
- private const string GDOPDll = @"Api\GDOP误差椭圆\GDOP\GDOP_Draw_11.dll";
- ///
- /// 获取三星双时差GDOP 带参考
- /// mainLines :主星历双行
- /// adaj1Lines :邻星历双行
- /// adaj2Lines :邻星历双行
- /// captime:信号时间
- /// refPos: 参考经度,纬度
- /// dtousErr: 时差误差
- /// ephLocErr: 星历位置误差
- /// level: gdop输出等级
- /// levlen:level 长度
- /// resCount:每一级的数据个数
- /// res :数据
- /// satllh :卫星位置
- /// 返回值:0 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "Gdop3SatRef", CallingConvention = CallingConvention.Cdecl)]
- public static extern int Gdop3SatRef(string mainLines, string adajLines, string adaj2Lines, Int64 captime, double[] refPos
- , double dtousErr, double ephLocErr
- , double[] level, int levlen, int[] resCount, out IntPtr res, double[] satllh);
- ///
- /// 获取三星双时差GDOP 无参考
- /// mainLines :主星历双行
- /// adaj1Lines :邻星历双行
- /// adaj2Lines :邻星历双行
- /// captime:信号时间
- /// dtousErr: 时差误差
- /// ephLocErr: 星历位置误差
- /// level: gdop输出等级
- /// levlen:level 长度
- /// resCount:每一级的数据个数
- /// res :数据
- /// satllh :卫星位置
- /// 返回值:0 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "Gdop3SatNoRef", CallingConvention = CallingConvention.Cdecl)]
- public static extern int Gdop3SatNoRef(string mainLines, string adajLines, string adaj2Lines, Int64 captime
- , double dtousErr, double ephLocErr
- , double[] level, int levlen, int[] resCount, out IntPtr res, double[] satllh);
- ///
- /// 获取双星GDOP
- /// mainLines :主星历双行
- /// adajLines :邻星历双行
- /// captime:信号时间
- /// refPos: 参考经度,纬度
- /// fuHz1: 主上行
- /// fuHz2: 邻上行
- /// dtousErr: 时差误差
- /// dfoHzErr: 频差误差
- /// ephLocErr: 星历位置误差
- /// ephVLocErr: 星历速度误差
- /// level: gdop输出等级
- /// levlen:level 长度
- /// resCount:每一级的数据个数
- /// res :数据
- /// satllh :卫星位置
- /// 返回值:0 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "Gdop2SatDRef", CallingConvention = CallingConvention.Cdecl)]
- public static extern int Gdop2SatDRef(string mainLines, string adajLines, Int64 captime, double[] refPos
- , double fuHz1, double fuHz2, double dtousErr, double dfoHzErr, double ephLocErr, double ephVLocErr
- , double[] level, int levlen, int[] resCount, out IntPtr 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 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "Gdop3SatDF", CallingConvention = CallingConvention.Cdecl)]
- public static extern int Gdop3SatDF(string mainLines, string adajLines, string adaj2Lines, Int64 captime, double[] refPos
- , double fuHz1, double fuHz2, double dfo_err, double eph_pos_err, double eph_vel_err
- , double[] level, int levlen, int[] resCount, out IntPtr res, double[] satllh);
- /// <returns></returns>
- ///
- /// 获取2X1D GDOP
- /// mainLines :主星历双行
- /// adajLines :邻星历双行
- /// captime:信号时间
- /// cdbPos: 地面站经度,纬度
- /// refPos: 参考经度,纬度
- /// dtousErr: 时差误差
- /// ephLocErr: 星历位置误差
- /// level: gdop输出等级
- /// levlen:level 长度
- /// resCount:每一级的数据个数
- /// res :数据
- /// satllh :卫星位置 长度6
- /// 返回值:0 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "Gdop2Sat1DRef", CallingConvention = CallingConvention.Cdecl)]
- public static extern int Gdop2Sat1DRef(string mainLines, string adajLines, Int64 captime, double[] cdbPos
- , double[] refPos, double dtousErr, double ephLocErr
- , double[] level, int levlen, int[] resCount, out IntPtr res, double[] satllh);
- ///
- /// 获取2X1D no ref GDOP
- /// mainLines :主星历双行
- /// adajLines :邻星历双行
- /// captime:信号时间
- /// cdbPos: 地面站经度,纬度
- /// dtousErr: 时差误差
- /// ephLocErr: 星历位置误差
- /// level: gdop输出等级
- /// levlen:level 长度
- /// resCount:每一级的数据个数
- /// res :数据
- /// satllh :卫星位置 长度6
- /// 返回值:0 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "Gdop2Sat1DNoRef", CallingConvention = CallingConvention.Cdecl)]
- public static extern int Gdop2Sat1DNoRef(string mainLines, string adajLines, Int64 captime, double[] cdbPos,
- double dtousErr, double ephLocErr
- , double[] level, int levlen, int[] resCount, out IntPtr 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 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "GdopXDCXRef", CallingConvention = CallingConvention.Cdecl)]
- public static extern int GdopXDCXRef(string mainLines, Int64 captime, double[] cdbPos, double[] cxPos, double[] refPos
- , double dtoErr, double doaErr, double ephLocErr
- , double[] level, int levlen, int[] resCount, out IntPtr 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 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "GdopXDCXNoRef", CallingConvention = CallingConvention.Cdecl)]
- public static extern int GdopXDCXNoRef(string mainLines, Int64 captime, double[] cdbPos, double[] cxPos
- , double dtousErr, double doaErr, double ephLocErr, double[] level, int levlen, int[] resCount, out IntPtr 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 成功
- ///
- [DllImport(GDOPDll, EntryPoint = "Gdop2CX", CallingConvention = CallingConvention.Cdecl)]
- public static extern int Gdop2CX(double[] cx1Pos, double[] cx2Pos
- , double doaErr1, double doaErr2, double[] level, int levlen, int[] resCount, out IntPtr res);
- [DllImport(GDOPDll, EntryPoint = "FreeGDOPBuf", CallingConvention = CallingConvention.Cdecl)]
- public static extern void FreeGDOPBuf(IntPtr val);
- }
- }
|