GdopHelper.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using DevExpress.Charts.Native;
  2. using DevExpress.Internal.WinApi.Windows.UI.Notifications;
  3. using DevExpress.XtraPrinting;
  4. using Newtonsoft.Json;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Diagnostics;
  8. using System.IO;
  9. using System.Linq;
  10. using System.Runtime.InteropServices;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. using XdCxRhDW.App.DTO;
  14. using static DevExpress.XtraCharts.GLGraphics.Platform.EGL;
  15. using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock;
  16. namespace XzXdDw.App.Api.低轨GDOP误差椭圆
  17. {
  18. /// <summary>
  19. /// Gdop误差分布计算帮助类.该类调用了GdopCore.exe进程
  20. /// 每种GDOP算法提供了两个接口,这两种接口是完全等价的,一种传入双行根,一种直接传入卫星状态x、y、z等
  21. /// </summary>
  22. public static class GdopHelper
  23. {
  24. private const string GDOPDll = @"Api\低轨GDOP误差椭圆\GDOP\DLL_GDOP_Analysis.dll";
  25. /// <summary>
  26. /// 低轨双星误差椭圆
  27. /// </summary>
  28. /// <param name="main_eph">主星位置 长度6</param>
  29. /// <param name="neigh_eph">邻星位置 长度6</param>
  30. /// <param name="ref_pos">参考位置 长度3</param>
  31. /// <param name="Select_Point">定位点长度3</param>
  32. /// <param name="dto_err">时差误差(s)</param>
  33. /// <param name="dfo_err">频差误差(Hz)</param>
  34. /// <param name="eph_pos_err"></param>
  35. /// <param name="eph_vel_err"></param>
  36. /// <param name="fu"></param>
  37. /// <param name="Pe">0.5</param>
  38. /// <param name="LOP_Len"></param>
  39. /// <returns></returns>
  40. [DllImport(GDOPDll, EntryPoint = "Error_Ellipse_DTFO", CallingConvention = CallingConvention.Cdecl)]
  41. public extern static IntPtr Error_Ellipse_DTFO(double[] main_eph, double[] neigh_eph, double[] ref_pos, double[] Select_Point, double dto_err, double dfo_err,
  42. double eph_pos_err, double eph_vel_err, double fu, double Pe, ref int LOP_Len);
  43. [DllImport(GDOPDll, CallingConvention = CallingConvention.Cdecl)]
  44. public static extern void freeBuff(IntPtr buf);
  45. }
  46. }