GdopAnalyseViewModel.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using Ips.Library.Entity;
  2. using Ips.LocAlgorithm;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Ips.Sps.Com.Gdops
  10. {
  11. public class GdopAnalyseViewModel : INotifyPropertyChanged
  12. {
  13. #pragma warning disable CS0067
  14. public event PropertyChangedEventHandler PropertyChanged;
  15. #pragma warning restore CS0067
  16. public DateTime SigTime { get; set; } = DateTime.Now;
  17. public bool HasRef { get; set; }
  18. public int AntId { get; set; }
  19. public double AntLon { get; set; }
  20. public double AntLat { get; set; }
  21. public double AntAlt { get; set; }
  22. public double[] AntLLA => new double[] { AntLon, AntLat, AntAlt };
  23. public int RefId { get; set; }
  24. public double RefLon { get; set; }
  25. public double RefLat { get; set; }
  26. public double RefAlt { get; set; }
  27. public double[] RefLLA => new double[] { RefLon, RefLat, RefAlt };
  28. public int MsId { get; set; }
  29. public double MsX { get; set; }
  30. public double MsY { get; set; }
  31. public double MsZ { get; set; }
  32. public double MsVx { get; set; }
  33. public double MsVy { get; set; }
  34. public double MsVz { get; set; }
  35. public double[] MsEph => new double[] { MsX, MsY, MsZ, MsVx, MsVy, MsVz };
  36. public int As1Id { get; set; }
  37. public double AsX1 { get; set; }
  38. public double AsY1 { get; set; }
  39. public double AsZ1 { get; set; }
  40. public double AsVx1 { get; set; }
  41. public double AsVy1 { get; set; }
  42. public double AsVz1 { get; set; }
  43. public double[] AsEph1 => new double[] { AsX1, AsY1, AsZ1, AsVx1, AsVy1, AsVz1 };
  44. public int As2Id { get; set; }
  45. public double AsX2 { get; set; }
  46. public double AsY2 { get; set; }
  47. public double AsZ2 { get; set; }
  48. public double AsVx2 { get; set; }
  49. public double AsVy2 { get; set; }
  50. public double AsVz2 { get; set; }
  51. public double[] AsEph2 => new double[] { AsX2, AsY2, AsZ2, AsVx2, AsVy2, AsVz2 };
  52. public GdopResult GdopResult { get; set; }
  53. public async Task CalcGdop()
  54. {
  55. ExeResult<GdopResult> exeRes;
  56. if (HasRef)
  57. {
  58. exeRes = await Loc32Util.GdopRef(RefLLA, MsEph, AsEph1, MsEph, AsEph2);
  59. }
  60. else
  61. {
  62. exeRes = await Loc32Util.Gdop(AntLLA, MsEph, AsEph1, MsEph, AsEph2);
  63. }
  64. if (exeRes.ExitCode != 0)
  65. {
  66. throw new Exception(exeRes.ExitMsg);
  67. }
  68. GdopResult = exeRes.Result;
  69. }
  70. }
  71. }