| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- using Ips.Library.Entity;
- using Ips.LocAlgorithm;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ips.Sps.Com.Gdops
- {
- public class GdopAnalyseViewModel : INotifyPropertyChanged
- {
- #pragma warning disable CS0067
- public event PropertyChangedEventHandler PropertyChanged;
- #pragma warning restore CS0067
- public DateTime SigTime { get; set; } = DateTime.Now;
- public bool HasRef { get; set; }
- public int AntId { get; set; }
- public double AntLon { get; set; }
- public double AntLat { get; set; }
- public double AntAlt { get; set; }
- public double[] AntLLA => new double[] { AntLon, AntLat, AntAlt };
- public int RefId { get; set; }
- public double RefLon { get; set; }
- public double RefLat { get; set; }
- public double RefAlt { get; set; }
- public double[] RefLLA => new double[] { RefLon, RefLat, RefAlt };
- public int MsId { get; set; }
- public double MsX { get; set; }
- public double MsY { get; set; }
- public double MsZ { get; set; }
- public double MsVx { get; set; }
- public double MsVy { get; set; }
- public double MsVz { get; set; }
- public double[] MsEph => new double[] { MsX, MsY, MsZ, MsVx, MsVy, MsVz };
- public int As1Id { get; set; }
- public double AsX1 { get; set; }
- public double AsY1 { get; set; }
- public double AsZ1 { get; set; }
- public double AsVx1 { get; set; }
- public double AsVy1 { get; set; }
- public double AsVz1 { get; set; }
- public double[] AsEph1 => new double[] { AsX1, AsY1, AsZ1, AsVx1, AsVy1, AsVz1 };
- public int As2Id { get; set; }
- public double AsX2 { get; set; }
- public double AsY2 { get; set; }
- public double AsZ2 { get; set; }
- public double AsVx2 { get; set; }
- public double AsVy2 { get; set; }
- public double AsVz2 { get; set; }
- public double[] AsEph2 => new double[] { AsX2, AsY2, AsZ2, AsVx2, AsVy2, AsVz2 };
- public GdopResult GdopResult { get; set; }
- public async Task CalcGdop()
- {
- ExeResult<GdopResult> exeRes;
- if (HasRef)
- {
- exeRes = await Loc32Util.GdopRef(RefLLA, MsEph, AsEph1, MsEph, AsEph2);
- }
- else
- {
- exeRes = await Loc32Util.Gdop(AntLLA, MsEph, AsEph1, MsEph, AsEph2);
- }
- if (exeRes.ExitCode != 0)
- {
- throw new Exception(exeRes.ExitMsg);
- }
- GdopResult = exeRes.Result;
- }
- }
- }
|