123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- using DevExpress.XtraEditors;
- using ExtensionsDev;
- 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.Documents;
- using System.Windows.Forms;
- using XdCxRhDW.Entity;
- using XdCxRhDW.Repostory;
- namespace XdCxRhDW.App.EditForms
- {
- public partial class TarDtoDfoCalc : DevExpress.XtraEditors.XtraForm
- {
- public TarDtoDfoCalc()
- {
- InitializeComponent();
- this.layoutControl1.UseDefault();
- this.StartPosition = FormStartPosition.CenterParent;
- }
- public TarDtoDfoCalc(double lon, double lat)
- : this()
- {
- this.txtTar.Text = $"{lon:f3},{lat:f3}";
- }
- private async void SatEditor_Load(object sender, EventArgs e)
- {
- try
- {
- using (RHDWContext db = new RHDWContext())
- {
- var rec = await db.TxInfos.Where(p => p.TxType == EnumTxType.Rec).FirstOrDefaultAsync();
- this.txtRec.Text = $"{rec.Lon},{rec.Lat}";
- }
- }
- catch (Exception ex)
- {
- await LogHelper.Error("查询接收站信息出错", ex);
- DxHelper.MsgBoxHelper.ShowError("查询接收站信息出错");
- }
- }
- private async void btnOk_Click(object sender, EventArgs e)
- {
- try
- {
- double x = Convert.ToDouble(txtX1.Text);
- double y = Convert.ToDouble(txtY1.Text);
- double z = Convert.ToDouble(txtZ1.Text);
- var strTar = txtTar.Text.Replace(",", ",");
- var strRec = txtRec.Text.Replace(",", ",");
- double lon = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
- double lat = Convert.ToDouble(strTar.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
- double recLon = Convert.ToDouble(strRec.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[0]);
- double recLat = Convert.ToDouble(strRec.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)[1]);
- var tarEcef = PhysicsHelper.GeoToEcef((lon, lat, 0));
- var recEcef = PhysicsHelper.GeoToEcef((recLon, recLat, 0));
- var xlEcef1 = (Convert.ToDouble(txtX1.Text.Trim()), Convert.ToDouble(txtY1.Text.Trim()), Convert.ToDouble(txtZ1.Text.Trim()));
- var x2Ecef1 = (Convert.ToDouble(txtX2.Text.Trim()), Convert.ToDouble(txtY2.Text.Trim()), Convert.ToDouble(txtZ2.Text.Trim()));
- double x3 = 0, y3 = 0, z3 = 0;
- if (!string.IsNullOrWhiteSpace(txtX3.Text))
- {
- x3 = Convert.ToDouble(txtX3.Text.Trim());
- y3 = Convert.ToDouble(txtY3.Text.Trim());
- z3 = Convert.ToDouble(txtZ3.Text.Trim());
- }
- var dt1 = PhysicsHelper.Dto(tarEcef, xlEcef1, recEcef);
- var dt2 = PhysicsHelper.Dto(tarEcef, x2Ecef1, recEcef);
- if (x3 != 0)
- {
- var dt3 = PhysicsHelper.Dto(tarEcef, (x3, y3, z3), recEcef);
- this.txtRes.Text = $"主邻1时差预测值:{dt1 * 1e6 - dt2 * 1e6:f3}us 主邻2时差预测值:{dt1 * 1e6 - dt3 * 1e6:f3}us";
- }
- else
- {
- this.txtRes.Text = $"主邻1时差预测值:{dt1 * 1e6 - dt2 * 1e6:f3}us";
- }
- }
- catch (Exception ex)
- {
- await LogHelper.Error("时差预测出错", ex);
- DxHelper.MsgBoxHelper.ShowError("时差预测出错");
- }
- }
- }
- }
|