123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- using DevExpress.XtraEditors;
- using DevExpress.XtraEditors.Controls;
- using ExtensionsDev;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Data.Entity;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Documents;
- using System.Windows.Forms;
- using System.Windows.Input;
- using XdCxRhDW.Api;
- using XdCxRhDW.Api.AddIns;
- using XdCxRhDW.Entity;
- using XdCxRhDW.Repostory;
- namespace XdCxRhDW.App.EditForms
- {
- public partial class TarDfoCalc : DevExpress.XtraEditors.XtraForm
- {
- public TarDfoCalc()
- {
- InitializeComponent();
- this.layoutControl1.UseDefault();
- this.StartPosition = FormStartPosition.CenterParent;
- }
- public TarDfoCalc(double lon, double lat)
- : this()
- {
- this.txtTar.Text = $"{lon:f3},{lat:f3}";
- }
- private void TarDfoCalc_Load(object sender, EventArgs e)
- {
- this.cbPosType.Properties.Items.Add(new RadioGroupItem((int)EnumPosType.X1Leo, EnumPosType.X1Leo.GetEnumDisplayName()));
- this.cbPosType.Properties.Items.Add(new RadioGroupItem((int)EnumPosType.X2Leo, EnumPosType.X2Leo.GetEnumDisplayName()));
- this.cbPosType.SelectedIndex = 0;
- }
- private void cbPosType_EditValueChanged(object sender, EventArgs e)
- {
- var editvalue = cbPosType.EditValue as RadioGroupItem;
- var posType = (EnumPosType)editvalue.Value;
- if (posType == EnumPosType.X1Leo)
- {
- var time1SatInfo = "1234,-1608416.82,5994263.83,3139842.12,-6632.9542,-373.9141,-2678.0471";
- var time2SatInfo = "1234,-3479304.94,5612482.70,2187901.77,-5784.2167,-2163.5059,-3632.7021";
- var time3SatInfo = "1234,-5018683.88,4714452.40,1001435.81,-4399.2159,-3780.5070,-4206.3348";
- this.lcX1.Text = "第一时刻主星坐标X";
- this.lcY1.Text = "第一时刻主星坐标Y";
- this.lcZ1.Text = "第一时刻主星坐标Z";
- this.lcVX1.Text = "第一时刻主星坐标VX";
- this.lcVY1.Text = "第一时刻主星坐标VY";
- this.lcVZ1.Text = "第一时刻主星坐标VZ";
- this.lcX2.Text = "第二时刻主星坐标X";
- this.lcY2.Text = "第二时刻主星坐标Y";
- this.lcZ2.Text = "第二时刻主星坐标Z";
- this.lcVX2.Text = "第二时刻主星坐标VX";
- this.lcVY2.Text = "第二时刻主星坐标VY";
- this.lcVZ2.Text = "第二时刻主星坐标VZ";
- var t1 = time1SatInfo.Split(',');
- int idx = 0;
- txtX1.EditValue = t1[++idx];
- txtY1.EditValue = t1[++idx];
- txtZ1.EditValue = t1[++idx];
- txtVX1.EditValue = t1[++idx];
- txtVY1.EditValue = t1[++idx];
- txtVZ1.EditValue = t1[++idx];
- var t2 = time2SatInfo.Split(',');
- idx = 0;
- txtX2.EditValue = t2[++idx];
- txtY2.EditValue = t2[++idx];
- txtZ2.EditValue = t2[++idx];
- txtVX2.EditValue = t2[++idx];
- txtVY2.EditValue = t2[++idx];
- txtVZ2.EditValue = t2[++idx];
- var t3= time3SatInfo.Split(',');
- idx = 0;
- txtX21.EditValue = t3[++idx];
- txtY21.EditValue = t3[++idx];
- txtZ21.EditValue = t3[++idx];
- txtVX21.EditValue = t3[++idx];
- txtVY21.EditValue = t3[++idx];
- txtVZ21.EditValue = t3[++idx];
- this.lcX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
- this.lcY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
- this.lcZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
- this.lcVX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
- this.lcVY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
- this.lcVZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
- }
- else if (posType == EnumPosType.X2Leo)
- {
- string mainSatInfo = "23467,-1608418.46,5994257.60,3139819.89,-6632.8731,-373.9909,-2678.2335";
- string adja1SatInfo = "40892,-4629555.87,4978929.91,1487241.78,-4890.2693,-3337.6709,-4031.3087";
- this.lcX1.Text = "主星坐标X";
- this.lcY1.Text = "主星坐标Y";
- this.lcZ1.Text = "主星坐标Z";
- this.lcVX1.Text = "主星坐标VX";
- this.lcVY1.Text = "主星坐标VY";
- this.lcVZ1.Text = "主星坐标VZ";
- this.lcX2.Text = "邻星坐标X";
- this.lcY2.Text = "邻星坐标Y";
- this.lcZ2.Text = "邻星坐标Z";
- this.lcVX2.Text = "邻星坐标VX";
- this.lcVY2.Text = "邻星坐标VY";
- this.lcVZ2.Text = "邻星坐标VZ";
- var main = mainSatInfo.Split(',');
- int idx = 0;
- txtX1.EditValue = main[++idx];
- txtY1.EditValue = main[++idx];
- txtZ1.EditValue = main[++idx];
- txtVX1.EditValue = main[++idx];
- txtVY1.EditValue = main[++idx];
- txtVZ1.EditValue = main[++idx];
- var adja = adja1SatInfo.Split(',');
- idx = 0;
- txtX2.EditValue = adja[++idx];
- txtY2.EditValue = adja[++idx];
- txtZ2.EditValue = adja[++idx];
- txtVX2.EditValue = adja[++idx];
- txtVY2.EditValue = adja[++idx];
- txtVZ2.EditValue = adja[++idx];
- this.lcX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
- this.lcY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
- this.lcZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
- this.lcVX3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
- this.lcVY3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
- this.lcVZ3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
- }
- this.layoutControl1.BestFit();
- }
- private async void btnOk_Click(object sender, EventArgs e)
- {
- try
- {
- var strTar = txtTar.Text.Replace(",", ",");
- var fuHz = (Convert.ToDouble(txtFuMhz.Text)+44) * 1e6;
- double lon = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
- double lat = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
- double x1 = Convert.ToDouble(txtX1.Text);
- double y1 = Convert.ToDouble(txtY1.Text);
- double z1 = Convert.ToDouble(txtZ1.Text);
- double vx1 = Convert.ToDouble(txtVX1.Text);
- double vy1 = Convert.ToDouble(txtVY1.Text);
- double vz1 = Convert.ToDouble(txtVZ1.Text);
- double[] ephX1 = new double[6] { x1, y1, z1, vx1, vy1, vz1 };
- double x2 = Convert.ToDouble(txtX2.Text);
- double y2 = Convert.ToDouble(txtY2.Text);
- double z2 = Convert.ToDouble(txtZ2.Text);
- double vx2 = Convert.ToDouble(txtVX2.Text);
- double vy2 = Convert.ToDouble(txtVY2.Text);
- double vz2 = Convert.ToDouble(txtVZ2.Text);
- double[] ephX2 = new double[6] { x2, y2, z2, vx2, vy2, vz2 };
- double[] targetPos = new double[3] { lon, lat, 0 };
- var df1 = DfoCalcAPI.DfoCalc(targetPos, ephX1, fuHz);
- var df2 = DfoCalcAPI.DfoCalc(targetPos, ephX2, fuHz);
- var editvalue = cbPosType.EditValue as RadioGroupItem;
- var posType = (EnumPosType)editvalue.Value;
- if (posType == EnumPosType.X1Leo)
- {
- double x3 = Convert.ToDouble(txtX21.Text);
- double y3 = Convert.ToDouble(txtY21.Text);
- double z3 = Convert.ToDouble(txtZ21.Text);
- double vx3 = Convert.ToDouble(txtVX21.Text);
- double vy3 = Convert.ToDouble(txtVY21.Text);
- double vz3 = Convert.ToDouble(txtVZ21.Text);
- double[] ephX3 = new double[6] { x3, y3, z3, vx3, vy3, vz3 };
- var df3 = DfoCalcAPI.DfoCalc(targetPos, ephX3, fuHz);
- this.txtRes.Text = $"第二时刻频差预测值:{df2 - df1:f3}Hz 第三时刻频差预测值:{df3 - df1:f3}Hz";
- }
- else if (posType == EnumPosType.X2Leo)
- {
- this.txtRes.Text = $"主邻频差预测值:{df1 - df2:f3}Hz";
- }
-
- }
- catch (Exception ex)
- {
- await LogHelper.Error("频差预测出错", ex);
- DxHelper.MsgBoxHelper.ShowError("频差预测出错");
- }
- }
- }
- }
|