DtXDParam.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using DxHelper;
  2. using ExtensionsDev;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. using System.Data;
  7. using System.Drawing;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using CG.App.Api.时差粗值预测;
  13. using CG.App.Api.星历推算;
  14. using XzXdDw.App;
  15. namespace CG.App.UserControl
  16. {
  17. public partial class DtXDParam : DevExpress.XtraEditors.XtraUserControl
  18. {
  19. public (double starLon, double startLat, double centerLon, double centerLat, double endLon, double endLat, double lonRange, double latRange) rect
  20. { get; set; }
  21. public DtXDParam()
  22. {
  23. InitializeComponent();
  24. }
  25. private void DtXDParam_Load(object sender, EventArgs e)
  26. {
  27. captime.UseDefault();
  28. mainTle.Text = TestData.TleMain;
  29. adajTle.Text = TestData.TleAdja1;
  30. captime.DateTime = TestData.Time;
  31. stationpos.Text = TestData.RecLoc;
  32. mainrec.Text = TestData.Rec2Loc;
  33. adajrec.Text = TestData.Rec2Loc;
  34. }
  35. private void btnOk_Click(object sender, EventArgs e)
  36. {
  37. double[] mrec = new double[2];
  38. double[] arec = new double[2];
  39. mrec[0] = Convert.ToDouble(mainrec.Text.Replace(",", ",").Split(',')[0].Trim());
  40. mrec[1] = Convert.ToDouble(mainrec.Text.Replace(",", ",").Split(',')[1].Trim());
  41. arec[0] = Convert.ToDouble(mainrec.Text.Replace(",", ",").Split(',')[0].Trim());
  42. arec[1] = Convert.ToDouble(mainrec.Text.Replace(",", ",").Split(',')[1].Trim());
  43. double[] srec = new double[2];
  44. srec[0] = Convert.ToDouble(stationpos.Text.Replace(",", ",").Split(',')[0].Trim());
  45. srec[1] = Convert.ToDouble(stationpos.Text.Replace(",", ",").Split(',')[1].Trim());
  46. double[] center = new double[3];
  47. center[0] = rect.centerLon;
  48. center[1] = rect.centerLat;
  49. //1.计算星历
  50. var geo1 = Tle2XYZ.GetXyz(mainTle.Text, captime.DateTime);
  51. var geo2 = Tle2XYZ.GetXyz(adajTle.Text, captime.DateTime);
  52. //输出
  53. double[] resule = new double[2];
  54. DtApi.GetGeoTime(mrec, arec, geo1, geo2, center, rect.lonRange, rect.latRange, resule);
  55. sxdtcetner.Text = $"{resule[0] * 1e6:F2}";
  56. sxdtrange.Text = $"{resule[1] * 1e6:F2}";
  57. DtApi.GetGEOLocalTime(srec, geo1, mrec, center, rect.lonRange, rect.latRange, resule);
  58. xddtcetner.Text = $"{resule[0] * 1e6:F2}";
  59. xddtrange.Text = $"{resule[1] * 1e6:F2}";
  60. }
  61. private void btnClose_Click(object sender, EventArgs e)
  62. {
  63. PopupHelper.HidePopup(this);
  64. }
  65. }
  66. }