| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- using DevExpress.XtraEditors;
- using DevExpress.XtraLayout.Utils;
- using Ips.Library.Basic;
- using Ips.Library.DxpLib;
- using Ips.Library.Entity;
- using Ips.LocAlgorithm;
- using Ips.Sps.Com.Ephs;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Ips.Sps.Com.Gdops
- {
- public partial class GdopParamSetCtrl : DevExpress.XtraEditors.XtraUserControl
- {
- public GdopParamSetCtrl()
- {
- InitializeComponent();
- SigTimeDateEdit.UseTimeEdit();
- }
- private GdopAnalyseViewModel _viewModel;
- public event EventHandler<QueryEphEventArgs> QueryEph;
- public IList<AntInfo> AntList { get; set; }
- public IList<RefSiteInfo> RefSiteList { get; set; }
- public IList<SatInfo> SatList { get; set; }
- public void SetViewModel(GdopAnalyseViewModel viewModel)
- {
- _viewModel = viewModel;
- bsGdopModel.DataSource = _viewModel;
- if (_viewModel.AntId > 0) antEdit.EditValue = AntList.Where(m => m.Id == _viewModel.AntId).FirstOrDefault();
- if (_viewModel.RefId > 0) refEdit.EditValue = RefSiteList.Where(m => m.Id == _viewModel.RefId).FirstOrDefault();
- if (_viewModel.MsId > 0) mainSatEdit.EditValue = _viewModel.MsId;
- if (_viewModel.As1Id > 0) adja1SatEdit.EditValue = _viewModel.As1Id;
- if (_viewModel.As2Id > 0) adja2SatEdit.EditValue = _viewModel.As2Id;
- SetFormDisplay(_viewModel.HasRef);
- }
- private void GdopParamSetCtrl_Load(object sender, EventArgs e)
- {
- BindList();
- }
- private void BindList()
- {
- if (AntList.IsNotNullOrEmpty())
- {
- bsAntList.DataSource = AntList;
- }
- else
- {
- itemForAnt.Visibility = LayoutVisibility.Never;
- }
- if (RefSiteList.IsNotNullOrEmpty())
- {
- bsRefSiteList.DataSource = RefSiteList;
- }
- else
- {
- itemForRefSite.Visibility = LayoutVisibility.Never;
- }
- if (SatList.IsNotNullOrEmpty())
- {
- bsSatList.DataSource = SatList;
- }
- else
- {
- itemForMainSat.Visibility = LayoutVisibility.Never;
- itemForAdja1Sat.Visibility = LayoutVisibility.Never;
- itemForAdja2Sat.Visibility = LayoutVisibility.Never;
- itemForCalcEph.Visibility = LayoutVisibility.Never;
- }
- }
- private void btnEphCalc_Click(object sender, EventArgs e)
- {
- if (mainSatEdit.EditValue == null)
- {
- MsgHelper.ShowError("请选择主星");
- return;
- }
- if (adja1SatEdit.EditValue == null)
- {
- MsgHelper.ShowError("请选择邻星1");
- return;
- }
- if (adja2SatEdit.EditValue == null)
- {
- MsgHelper.ShowError("请选择邻星2");
- return;
- }
- if (QueryEph == null) return;
- var ephTime = SigTimeDateEdit.DateTime;
- QuerySatEph(ephTime, mainSatEdit, MsXTextEdit, MsYTextEdit, MsZTextEdit);
- QuerySatEph(ephTime, adja1SatEdit, AsX1TextEdit, AsY1TextEdit, AsZ1TextEdit);
- QuerySatEph(ephTime, adja2SatEdit, AsX2TextEdit, AsY2TextEdit, AsZ2TextEdit);
- }
- private async void btnGdopCalc_Click(object sender, EventArgs e)
- {
- btnGdopCalc.Enabled = false;
- try
- {
- await _viewModel.CalcGdop();
- }
- catch (AggregateException aggEx)
- {
- aggEx.Flatten().Handle(ex =>
- {
- MsgHelper.ShowError(ex.Message);
- return true;
- });
- }
- finally
- {
- btnGdopCalc.Enabled = true;
- }
- }
- private void QuerySatEph(DateTime ephTime, BaseEdit satEdit, BaseEdit xEdit, BaseEdit yEdit, BaseEdit zEdit)
- {
- var satNum = (int)satEdit.EditValue;
- var arg = new QueryEphEventArgs(satNum, ephTime);
- QueryEph.Invoke(this, arg);
- if (arg.Result != null)
- {
- xEdit.EditValue = arg.Result.X;
- yEdit.EditValue = arg.Result.Y;
- zEdit.EditValue = arg.Result.Z;
- }
- }
- private void antEdit_EditValueChanged(object sender, EventArgs e)
- {
- var ant = antEdit.EditValue as AntInfo;
- if (ant == null) return;
- AntLonTextEdit.EditValue = ant.Lon;
- AntLatTextEdit.EditValue = ant.Lat;
- AntAltTextEdit.EditValue = ant.Alt;
- }
- private void refEdit_EditValueChanged(object sender, EventArgs e)
- {
- var refSite = refEdit.EditValue as RefSiteInfo;
- if (refSite == null) return;
- RefLonTextEdit.EditValue = refSite.Lon;
- RefLatTextEdit.EditValue = refSite.Lat;
- RefAltTextEdit.EditValue = refSite.Alt;
- }
- private void HasRefCheckEdit_CheckedChanged(object sender, EventArgs e)
- {
- SetFormDisplay(HasRefCheckEdit.Checked);
- }
- private void SetFormDisplay(bool hasRef)
- {
- if (HasRefCheckEdit.Checked)
- {
- grpAntInfo.Visibility = LayoutVisibility.Never;
- grpRefSiteInfo.Visibility = LayoutVisibility.Always;
- }
- else
- {
- grpAntInfo.Visibility = LayoutVisibility.Always;
- grpRefSiteInfo.Visibility = LayoutVisibility.Never;
- }
- }
- }
- }
|