SinglePosParamEditor.cs 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. using DevExpress.Mvvm.ModuleInjection.Native;
  2. using DevExpress.XtraEditors;
  3. using DevExpress.XtraEditors.DXErrorProvider;
  4. using ExtensionsDev;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.ComponentModel;
  8. using System.Data;
  9. using System.Data.Entity;
  10. using System.Data.Entity.Migrations;
  11. using System.Drawing;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Threading.Tasks;
  15. using System.Windows.Documents;
  16. using System.Windows.Forms;
  17. using XzXdDw.App.Api;
  18. using XzXdDw.App.EFContext;
  19. using XzXdDw.App.Model;
  20. using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox;
  21. namespace XzXdDw.App.EditForms
  22. {
  23. public partial class SinglePosParamEditor : DevExpress.XtraEditors.XtraForm
  24. {
  25. public PosRes info;
  26. private CgRes cgRes1;
  27. private CgRes cgRes2;
  28. private double[] PosRes;
  29. private Action callBack;
  30. public SinglePosParamEditor(PosRes info, CgRes cgRes1, CgRes cgRes2, Action callBack)
  31. {
  32. InitializeComponent();
  33. this.Text = "单星定位";
  34. this.info = info;
  35. if (cgRes1 == null)
  36. {
  37. cgRes1 = new CgRes();
  38. }
  39. if (cgRes2 == null)
  40. {
  41. cgRes2 = new CgRes();
  42. }
  43. this.cgRes1 = cgRes1;
  44. this.cgRes2 = cgRes2;
  45. this.callBack = callBack;
  46. this.StartPosition = FormStartPosition.CenterParent;
  47. }
  48. private async void X2D1PosParamEditor_Load(object sender, EventArgs e)
  49. {
  50. List<string> list = new List<string>();
  51. using (RHDWContext db = new RHDWContext())
  52. {
  53. var res = await db.XlInfos.OrderBy(p => p.SatName).ToListAsync();
  54. if (res != null)
  55. list.AddRange(res.Select(p => p.Sat));
  56. }
  57. this.txtDfoSx1.Text = $"{cgRes1.DfoSx}";
  58. this.txtDfoSx2.Text = $"{cgRes2.DfoSx}";
  59. this.txtUpFreq.Text = $"{info.UpFreq / 1000000}";
  60. this.sigTime.EditValue = cgRes1.SigTime;
  61. this.txtMainX.Text = $"{cgRes1.MainX}";
  62. this.txtMainY.Text = $"{cgRes1.MainY}";
  63. this.txtMainZ.Text = $"{cgRes1.MainZ}";
  64. this.txtMainVX.Text = $"{cgRes1.MainVX}";
  65. this.txtMainVY.Text = $"{cgRes1.MainVY}";
  66. this.txtMainVZ.Text = $"{cgRes1.MainVZ}";
  67. this.txtMainX1.Text = $"{cgRes1.AdjaX}";
  68. this.txtMainY1.Text = $"{cgRes1.AdjaY}";
  69. this.txtMainZ1.Text = $"{cgRes1.AdjaZ}";
  70. this.txtMainVX1.Text = $"{cgRes1.AdjaVX}";
  71. this.txtMainVY1.Text = $"{cgRes1.AdjaVY}";
  72. this.txtMainVZ1.Text = $"{cgRes1.AdjaVZ}";
  73. this.txtMainX11.Text = $"{cgRes2.AdjaX}";
  74. this.txtMainY11.Text = $"{cgRes2.AdjaY}";
  75. this.txtMainZ11.Text = $"{cgRes2.AdjaZ}";
  76. this.txtMainVX11.Text = $"{cgRes2.AdjaVX}";
  77. this.txtMainVY11.Text = $"{cgRes2.AdjaVY}";
  78. this.txtMainVZ11.Text = $"{cgRes2.AdjaVZ}";
  79. }
  80. private void btnUpdate_Click(object sender, EventArgs e)
  81. {
  82. try
  83. {
  84. if (this.listBox.Items.Count == 0)
  85. {
  86. XtraMessageBox.Show($"单星未定位不能更新到数据库中");
  87. return;
  88. }
  89. cgRes1.DfoSx = Convert.ToDouble(this.txtDfoSx1.Text);
  90. cgRes1.MainX = Convert.ToDouble(this.txtMainX.Text);
  91. cgRes1.MainY = Convert.ToDouble(this.txtMainY.Text);
  92. cgRes1.MainZ = Convert.ToDouble(this.txtMainZ.Text);
  93. cgRes1.MainVX = Convert.ToDouble(this.txtMainVX.Text);
  94. cgRes1.MainVY = Convert.ToDouble(this.txtMainVY.Text);
  95. cgRes1.MainVZ = Convert.ToDouble(this.txtMainVZ.Text);
  96. cgRes1.AdjaX = Convert.ToDouble(this.txtMainX1.Text);
  97. cgRes1.AdjaY = Convert.ToDouble(this.txtMainY1.Text);
  98. cgRes1.AdjaZ = Convert.ToDouble(this.txtMainZ1.Text);
  99. cgRes1.AdjaVX = Convert.ToDouble(this.txtMainVX1.Text);
  100. cgRes1.AdjaVY = Convert.ToDouble(this.txtMainVY1.Text);
  101. cgRes1.AdjaVZ = Convert.ToDouble(this.txtMainVZ1.Text);
  102. cgRes2.DfoSx = Convert.ToDouble(this.txtDfoSx2.Text);
  103. cgRes2.MainX = Convert.ToDouble(this.txtMainX.Text);
  104. cgRes2.MainY = Convert.ToDouble(this.txtMainY.Text);
  105. cgRes2.MainZ = Convert.ToDouble(this.txtMainZ.Text);
  106. cgRes2.MainVX = Convert.ToDouble(this.txtMainVX.Text);
  107. cgRes2.MainVY = Convert.ToDouble(this.txtMainVY.Text);
  108. cgRes2.MainVZ = Convert.ToDouble(this.txtMainVZ.Text);
  109. cgRes2.AdjaX = Convert.ToDouble(this.txtMainX11.Text);
  110. cgRes2.AdjaY = Convert.ToDouble(this.txtMainY11.Text);
  111. cgRes2.AdjaZ = Convert.ToDouble(this.txtMainZ11.Text);
  112. cgRes2.AdjaVX = Convert.ToDouble(this.txtMainVX11.Text);
  113. cgRes2.AdjaVY = Convert.ToDouble(this.txtMainVY11.Text);
  114. cgRes2.AdjaVZ = Convert.ToDouble(this.txtMainVZ11.Text);
  115. info.UpFreq = Convert.ToDouble(this.txtUpFreq.Text) * 1e6;
  116. info.UpdateTime = DateTime.Now;
  117. string posstr = this.listBox.Items[0].ToString();
  118. var allstrs = posstr.Split(new string[] { ":", "定位经度", "定位纬度", "镜像经度", "镜像纬度" }, StringSplitOptions.RemoveEmptyEntries);
  119. if (allstrs.Length == 4)
  120. {
  121. using (RHDWContext db = new RHDWContext())
  122. {
  123. info.PosLon = Convert.ToDouble(PosRes[0]);
  124. info.PosLat = Convert.ToDouble(PosRes[1]);
  125. info.MirrLon = Convert.ToDouble(PosRes[3]);
  126. info.MirrLat = Convert.ToDouble(PosRes[4]);
  127. db.CgRes.AddOrUpdate(cgRes1);//参估结果入库
  128. db.CgRes.AddOrUpdate(cgRes2);//参估结果入库
  129. db.PosRes.AddOrUpdate(info);//定位结果入库
  130. db.SaveChangesAsync();
  131. }
  132. callBack?.Invoke();
  133. XtraMessageBox.Show($"单星更新数据成功");
  134. }
  135. }
  136. catch (Exception ex)
  137. {
  138. XtraMessageBox.Show($"单星更新定位数据失败,失败信息:{ex.Message}");
  139. }
  140. }
  141. private void btnOk_Click(object sender, EventArgs e)
  142. {
  143. listBox.Items.Clear();
  144. try
  145. {
  146. var cgRes1 = new CgRes()
  147. {
  148. DfoSx = Convert.ToDouble(this.txtDfoSx1.Text),
  149. MainX = Convert.ToDouble(this.txtMainX.Text),
  150. MainY = Convert.ToDouble(this.txtMainY.Text),
  151. MainZ = Convert.ToDouble(this.txtMainZ.Text),
  152. MainVX = Convert.ToDouble(this.txtMainVX.Text),
  153. MainVY = Convert.ToDouble(this.txtMainVY.Text),
  154. MainVZ = Convert.ToDouble(this.txtMainVZ.Text),
  155. AdjaX = Convert.ToDouble(this.txtMainX1.Text),
  156. AdjaY = Convert.ToDouble(this.txtMainY1.Text),
  157. AdjaZ = Convert.ToDouble(this.txtMainZ1.Text),
  158. AdjaVX = Convert.ToDouble(this.txtMainVX1.Text),
  159. AdjaVY = Convert.ToDouble(this.txtMainVY1.Text),
  160. AdjaVZ = Convert.ToDouble(this.txtMainVZ1.Text),
  161. };
  162. var cgRes2 = new CgRes()
  163. {
  164. DfoSx = Convert.ToDouble(this.txtDfoSx2.Text),
  165. MainX = Convert.ToDouble(this.txtMainX.Text),
  166. MainY = Convert.ToDouble(this.txtMainY.Text),
  167. MainZ = Convert.ToDouble(this.txtMainZ.Text),
  168. MainVX = Convert.ToDouble(this.txtMainVX.Text),
  169. MainVY = Convert.ToDouble(this.txtMainVY.Text),
  170. MainVZ = Convert.ToDouble(this.txtMainVZ.Text),
  171. AdjaX = Convert.ToDouble(this.txtMainX11.Text),
  172. AdjaY = Convert.ToDouble(this.txtMainY11.Text),
  173. AdjaZ = Convert.ToDouble(this.txtMainZ11.Text),
  174. AdjaVX = Convert.ToDouble(this.txtMainVX11.Text),
  175. AdjaVY = Convert.ToDouble(this.txtMainVY11.Text),
  176. AdjaVZ = Convert.ToDouble(this.txtMainVZ11.Text),
  177. };
  178. double Upfreq = Convert.ToDouble(this.txtUpFreq.Text) * 1e6;
  179. PosRes = PosApi.X1_POS(cgRes1, cgRes2, Upfreq);
  180. listBox.Items.Add($"定位经度:{PosRes[0]:f4} 定位纬度:{PosRes[1]:f4} 镜像经度:{PosRes[3]:f4} 镜像纬度:{PosRes[4]:f4}");
  181. }
  182. catch (Exception ex)
  183. {
  184. XtraMessageBox.Show($"单星定位失败,失败信息:{ex.Message}");
  185. }
  186. }
  187. }
  188. }