using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using XdCxRhDw.Dto; using XdCxRhDW.Dto; using XdCxRhDW.Sender.Properties; namespace XdCxRhDW.Sender { public partial class Form1 : DevExpress.XtraEditors.XtraForm { public Form1() { InitializeComponent(); } CancellationTokenSource cts1; private async void btn1_Click(object sender, EventArgs e) { layoutControlItem1.Enabled = false; layoutControlItem7.Enabled = false; if (btn1.Text == "推送") { try { cts1 = new CancellationTokenSource(); btn1.Text = "停止"; var addrArr = txtAddr1.Text.Trim().Replace(":", ":").Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); string ip = addrArr[0]; int port = Convert.ToInt32(addrArr[1]); if (txtTskType.EditValue == null) { Log($"请选择定位类型"); return; } string tskType = txtTskType.EditValue.ToString(); using (var client = new HttpClient()) { try { string url = string.Format("http://{0}:{1}/Api/Pos/", ip, port); if (tskType == "X1D1CX")//一星一地测向定位 { var lines = File.ReadAllLines("Simulation_Data2023.dat"); int idx = 1; url += "PosX1D1Async"; foreach (var line in lines) { if (cts1.IsCancellationRequested) break; if (string.IsNullOrWhiteSpace(line)) continue; var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); X1D1PosDto dto = new X1D1PosDto() { SigTime = DateTime.Now, MainCode= 23467, XdDto = Convert.ToDouble(items[1]) * 1e6, MainYbDto = Convert.ToDouble(items[2]) * 1e6, CxRes = Convert.ToDouble(items[4]), MainX = Convert.ToDouble(items[7]), MainY = Convert.ToDouble(items[8]), MainZ = Convert.ToDouble(items[9]), SatTxLon = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lon"), SatTxLat = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lat"), CdbTxLon = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lon"), CdbTxLat = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lat"), CxLon = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lon"), CxLat = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lat"), RefLon = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lon"), RefLat = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lat"), }; var content = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果"); } } if (tskType == "X2D1")//两星一地定位 { //url += "PosX2D1Async"; //var res = X2D1(); //var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); //var response = await client.PostAsync(url, content); //Log($"已向[{txtAddr1.Text}]发送两星一地定位仿真结果"); var lines = File.ReadAllLines("Simulation_Data2023.dat"); int idx = 1; url += "PosX2D1Async"; foreach (var line in lines) { if (cts1.IsCancellationRequested) break; if (string.IsNullOrWhiteSpace(line)) continue; var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); X2D1PosDto X2D1PosDto = new X2D1PosDto(); X2D1PosDto.SigTime = DateTime.Now; X2D1PosDto.MainCode = 23467; X2D1PosDto.SxDto = Convert.ToDouble(items[0]) * 1e6; X2D1PosDto.XdDto = Convert.ToDouble(items[1]) * 1e6; X2D1PosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6; X2D1PosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6; X2D1PosDto.MainX = Convert.ToDouble(items[7]); X2D1PosDto.MainY = Convert.ToDouble(items[8]); X2D1PosDto.MainZ = Convert.ToDouble(items[9]); X2D1PosDto.AdjaX = Convert.ToDouble(items[10]); X2D1PosDto.AdjaY = Convert.ToDouble(items[11]); X2D1PosDto.AdjaZ = Convert.ToDouble(items[12]); X2D1PosDto.SatTxLon = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lon"); X2D1PosDto.SatTxLat = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lat"); X2D1PosDto.CdbTxLon = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lon"); X2D1PosDto.CdbTxLat = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lat"); X2D1PosDto.RefLon = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lon"); X2D1PosDto.RefLat = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lat"); var content = new StringContent(JsonConvert.SerializeObject(X2D1PosDto), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果"); } } if (tskType == "X2D1NoPar")//两星一地无参定位 { url += "PosX2D1NoParAsync"; var res = X2D1NoPar(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送两星一地无参定位仿真结果"); } if (tskType == "RH")//融合定位 { var lines = File.ReadAllLines("Simulation_Data2023.dat"); int idx = 1; url += "PosRHAsync"; foreach (var line in lines) { if (cts1.IsCancellationRequested) break; if (string.IsNullOrWhiteSpace(line)) continue; var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); RHPosDto RHPosDto = new RHPosDto(); RHPosDto.SigTime = DateTime.Now; RHPosDto.MainCode = 23467; RHPosDto.AdjaCode = 39206; RHPosDto.SxDto = Convert.ToDouble(items[0]) * 1e6; RHPosDto.XdDto = Convert.ToDouble(items[1]) * 1e6; RHPosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6; RHPosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6; RHPosDto.CxRes = Convert.ToDouble(items[4]); RHPosDto.MainX = Convert.ToDouble(items[7]); RHPosDto.MainY = Convert.ToDouble(items[8]); RHPosDto.MainZ = Convert.ToDouble(items[9]); RHPosDto.AdjaX = Convert.ToDouble(items[10]); RHPosDto.AdjaY = Convert.ToDouble(items[11]); RHPosDto.AdjaZ = Convert.ToDouble(items[12]); RHPosDto.SatTxLon = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lon"); RHPosDto.SatTxLat = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lat"); RHPosDto.CdbTxLon = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lon"); RHPosDto.CdbTxLat = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lat"); RHPosDto.CxLon = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lon"); RHPosDto.CxLat = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lat"); RHPosDto.RefLon = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lon"); RHPosDto.RefLat = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lat"); var content = new StringContent(JsonConvert.SerializeObject(RHPosDto), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果"); } } if (tskType == "X3TwoDto")//三星双时差定位 { url += "PosX3TwoDtoAsync"; var res = X3TwoDto(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送三星双时差定位仿真结果"); } if (tskType == "X3TwoDtoNoPar")//三星双时差无参定位 { url += "PosX3TwoDtoNoParAsync"; var res = X3TwoDtoNoPar(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送三星双时差定位仿真结果"); } if (tskType == "X3TwoDfo")//三星双频差定位 { url += "PosX3TwoDfoAsync"; var res = X3TwoDfo(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送三星双频差定位仿真结果"); } if (tskType == "X2Dfo")//双星时频差定位 { url += "PosX2DtoDfoAsync"; var res = X2Dfo(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送双星时频差定位仿真结果"); } if (tskType == "X1D1CXNoXL")//一星一地测向定位无星厉 { var lines = File.ReadAllLines("Simulation_Data2023.dat"); int idx = 1; url += "PosX1D1NoXlAsync"; foreach (var line in lines) { if (cts1.IsCancellationRequested) break; if (string.IsNullOrWhiteSpace(line)) continue; var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); X1D1NoXlPosDto dto = new X1D1NoXlPosDto() { SigTime = DateTime.Now, MainCode = 23467, XdDto = Convert.ToDouble(items[1]) * 1e6, MainYbDto = Convert.ToDouble(items[2]) * 1e6, CxRes = Convert.ToDouble(items[4]), SatTxLon = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lon"), SatTxLat = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lat"), CdbTxLon = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lon"), CdbTxLat = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lat"), CxLon = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lon"), CxLat = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lat"), RefLon = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lon"), RefLat = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lat"), }; var content = new StringContent(JsonConvert.SerializeObject(dto), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果"); } } if (tskType == "X2D1NoXL")//两星一地定位无星厉 { var lines = File.ReadAllLines("Simulation_Data2023.dat"); int idx = 1; url += "PosX2D1NoXlAsync"; foreach (var line in lines) { if (cts1.IsCancellationRequested) break; if (string.IsNullOrWhiteSpace(line)) continue; var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); X2D1NoXlPosDto X2D1NoXlPosDto = new X2D1NoXlPosDto(); X2D1NoXlPosDto.SigTime = DateTime.Now; X2D1NoXlPosDto.MainCode = 23467; X2D1NoXlPosDto.AdjaCode = 39206; X2D1NoXlPosDto.SxDto = Convert.ToDouble(items[0]) * 1e6; X2D1NoXlPosDto.XdDto = Convert.ToDouble(items[1]) * 1e6; X2D1NoXlPosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6; X2D1NoXlPosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6; X2D1NoXlPosDto.SatTxLon = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lon"); X2D1NoXlPosDto.SatTxLat = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lat"); X2D1NoXlPosDto.CdbTxLon = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lon"); X2D1NoXlPosDto.CdbTxLat = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lat"); X2D1NoXlPosDto.RefLon = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lon"); X2D1NoXlPosDto.RefLat = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lat"); var content = new StringContent(JsonConvert.SerializeObject(X2D1NoXlPosDto), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果"); Thread.Sleep(1000); } } if (tskType == "X2D1NoParNoXL")//两星一地无参定位无星厉 { url += "PosX2D1NoXlNoParAsync"; var res = X2D1NoParNoXL(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送两星一地无参定位仿真结果"); } if (tskType == "RHNoXL")//融合定位无星厉 { var lines = File.ReadAllLines("Simulation_Data2023.dat"); int idx = 1; url += "PosRhNoXlAsync"; foreach (var line in lines) { if (cts1.IsCancellationRequested) break; if (string.IsNullOrWhiteSpace(line)) continue; var items = line.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); RHNoXlPosDto RHNoXlPosDto = new RHNoXlPosDto(); RHNoXlPosDto.SigTime = DateTime.Now; RHNoXlPosDto.MainCode = 23467; RHNoXlPosDto.AdjaCode = 39206; RHNoXlPosDto.SxDto = Convert.ToDouble(items[0]) * 1e6; RHNoXlPosDto.XdDto = Convert.ToDouble(items[1]) * 1e6; RHNoXlPosDto.MainYbDto = Convert.ToDouble(items[2]) * 1e6; RHNoXlPosDto.AdjaYbDto = Convert.ToDouble(items[3]) * 1e6; RHNoXlPosDto.CxRes = Convert.ToDouble(items[4]); RHNoXlPosDto.SatTxLon = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lon"); RHNoXlPosDto.SatTxLat = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lat"); RHNoXlPosDto.CdbTxLon = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lon"); RHNoXlPosDto.CdbTxLat = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lat"); RHNoXlPosDto.CxLon = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lon"); RHNoXlPosDto.CxLat = IniFiles.ReadValue("Station_Data2023.ini", "侧向站", "Lat"); RHNoXlPosDto.RefLon = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lon"); RHNoXlPosDto.RefLat = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lat"); var content = new StringContent(JsonConvert.SerializeObject(RHNoXlPosDto), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送第{idx++}条仿真结果"); } } if (tskType == "X3TwoDtoNoXL")//三星双时差定位无星厉 { url += "PosX3TwoDtoNoXlAsync"; var res = X3TwoDtoNoXL(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送三星双时差定位仿真结果"); } if (tskType == "X3TwoDtoNoParNoXL")//三星双时差无参定位无星厉 { url += "PosX3TwoDtoNoXlNoParAsync"; var res = X3TwoDtoNoParNoXL(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送三星双时差定位仿真结果"); } if (tskType == "X3TwoDfoNoXL")//三星双频差定位无星厉 { url += "PosX3TwoDfoNoXlAsync"; var res = X3TwoDfoNoXL(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送三星双频差定位仿真结果"); } if (tskType == "X2DfoNoXL")//双星时频差定位无星厉 { url += "PosX2DtoDfoNoXlAsync"; var res = X2DfoNoXL(); var content = new StringContent(JsonConvert.SerializeObject(res), System.Text.Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); Log($"已向[{txtAddr1.Text}]发送双星时频差定位仿真结果"); } } catch (Exception ex) { Log($"向[{txtAddr1.Text}]发送结果失败.{ex.Message}"); } } } catch (Exception ex) { Log(ex); } finally { btn1.Text = "推送"; layoutControlItem1.Enabled = true; layoutControlItem7.Enabled = true; } } else { cts1?.Cancel(); } } /// /// 两星一地定位 /// /// private X2D1PosDto X2D1() { X2D1PosDto X2D1PosDto = new X2D1PosDto(); X2D1PosDto.SigTime = DateTime.Now; X2D1PosDto.MainCode = 23467; X2D1PosDto.AdjaCode = 39206; X2D1PosDto.SxDto = 5507.5653; X2D1PosDto.XdDto = 240292.558; X2D1PosDto.MainYbDto = 0; X2D1PosDto.AdjaYbDto = 0; X2D1PosDto.MainX = 0; X2D1PosDto.MainY = 0; X2D1PosDto.MainZ = 0; X2D1PosDto.AdjaX = 0; X2D1PosDto.AdjaY = 0; X2D1PosDto.AdjaZ = 0; X2D1PosDto.SatTxLon = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lon"); X2D1PosDto.SatTxLat = IniFiles.ReadValue("Station_Data2023.ini", "卫星接收天线", "Lat"); X2D1PosDto.CdbTxLon = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lon"); X2D1PosDto.CdbTxLat = IniFiles.ReadValue("Station_Data2023.ini", "超短波接收天线", "Lat"); X2D1PosDto.RefLon = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lon"); X2D1PosDto.RefLat = IniFiles.ReadValue("Station_Data2023.ini", "参考站", "Lat"); return X2D1PosDto; } /// /// 两星一地定位无参 /// private X2D1PosDto X2D1NoPar() { X2D1PosDto X2D1PosDto = new X2D1PosDto(); X2D1PosDto.SigTime = DateTime.Now; X2D1PosDto.MainCode = 23467; X2D1PosDto.AdjaCode = 39206; X2D1PosDto.SxDto = -0.002198485309353 * 1e6; X2D1PosDto.XdDto = 0.245961726007262 * 1e6; X2D1PosDto.MainX = -38209016; X2D1PosDto.MainY = 17858458; X2D1PosDto.MainZ = 13250; X2D1PosDto.AdjaX = 4750323; X2D1PosDto.AdjaY = 41902879; X2D1PosDto.AdjaZ = 50515; X2D1PosDto.SatTxLon = 118.8833; X2D1PosDto.SatTxLat = 32.0667; X2D1PosDto.CdbTxLon = 109.4082; X2D1PosDto.CdbTxLat = 18.3878; return X2D1PosDto; } /// /// 三星双时差定位 /// private X3TwoDtoPosDto X3TwoDto() { X3TwoDtoPosDto X3TwoDtoPosDto = new X3TwoDtoPosDto(); X3TwoDtoPosDto.SigTime = DateTime.Now; X3TwoDtoPosDto.MainCode = 23467; X3TwoDtoPosDto.Adja1Code = 39206; X3TwoDtoPosDto.Adja2Code = 40892; X3TwoDtoPosDto.Dto1 = -0.0037683828 * 1e6; X3TwoDtoPosDto.Dto2 = 0.00411476 * 1e6; X3TwoDtoPosDto.YbMainDto = 0.253339246 * 1e6; X3TwoDtoPosDto.YbAdja1Dto = 0.254082015 * 1e6; X3TwoDtoPosDto.YbAdja2Dto = 0.247747625 * 1e6; X3TwoDtoPosDto.MainX = -38209016; X3TwoDtoPosDto.MainY = 17858458; X3TwoDtoPosDto.MainZ = 13250; X3TwoDtoPosDto.Adja1X = 4750323; X3TwoDtoPosDto.Adja1Y = 41902879; X3TwoDtoPosDto.Adja1Z = 50515; X3TwoDtoPosDto.Adja2X = -30932433; X3TwoDtoPosDto.Adja2Y = 28638701; X3TwoDtoPosDto.Adja2Z = -582065; X3TwoDtoPosDto.SatTxLon = 118.8833; X3TwoDtoPosDto.SatTxLat = 32.0667; X3TwoDtoPosDto.RefLon = 121.538; X3TwoDtoPosDto.RefLat = 30.8385; return X3TwoDtoPosDto; } /// /// 三星双时差无参定位 /// private X3TwoDtoNoParPosDto X3TwoDtoNoPar() { X3TwoDtoNoParPosDto X3TwoDtoNoParPosDto = new X3TwoDtoNoParPosDto(); X3TwoDtoNoParPosDto.SigTime = DateTime.Now; X3TwoDtoNoParPosDto.MainCode = 23467; X3TwoDtoNoParPosDto.Adja1Code = 39206; X3TwoDtoNoParPosDto.Adja2Code = 40892; X3TwoDtoNoParPosDto.Dto1 = -0.008361002956792 * 1e6; X3TwoDtoNoParPosDto.Dto2 = 0.004191941221694 * 1e6; X3TwoDtoNoParPosDto.MainX = -38214804; X3TwoDtoNoParPosDto.MainY = 17780164; X3TwoDtoNoParPosDto.MainZ = -6857; X3TwoDtoNoParPosDto.Adja1X = 4824458; X3TwoDtoNoParPosDto.Adja1Y = 41896265; X3TwoDtoNoParPosDto.Adja1Z = -55899; X3TwoDtoNoParPosDto.Adja2X = -27105105; X3TwoDtoNoParPosDto.Adja2Y = 32302912; X3TwoDtoNoParPosDto.Adja2Z = 11952; X3TwoDtoNoParPosDto.SatTxLon = 121.3555; X3TwoDtoNoParPosDto.SatTxLat = 31.3667; return X3TwoDtoNoParPosDto; } /// /// 三星双频差定位 /// private X3TwoDfoPosDto X3TwoDfo() { X3TwoDfoPosDto X3TwoDfoPosDto = new X3TwoDfoPosDto(); X3TwoDfoPosDto.SigTime = DateTime.Now; X3TwoDfoPosDto.MainCode = 23467; X3TwoDfoPosDto.Adja1Code = 39206; X3TwoDfoPosDto.Adja2Code = 40892; X3TwoDfoPosDto.Dfo1 = -17.601977254734404; X3TwoDfoPosDto.Dfo2 = -36.885840020369514; X3TwoDfoPosDto.YbMainDfo = 0; X3TwoDfoPosDto.YbAdja1Dfo = 17.453698229247941; X3TwoDfoPosDto.YbAdja2Dfo = 37.022577554138941; X3TwoDfoPosDto.TarFreqUp = 3808 * 1e6 + 2225 * 1e6; X3TwoDfoPosDto.TarFreqDown = 3808 * 1e6; X3TwoDfoPosDto.RefFreqUp = 3796 * 1e6 + 2225 * 1e6; X3TwoDfoPosDto.RefFreqDown = 3796 * 1e6; X3TwoDfoPosDto.MainX = -18149981.873274; X3TwoDfoPosDto.MainY = 38039767.675679; X3TwoDfoPosDto.MainZ = -5662.335149; X3TwoDfoPosDto.MainVx = -2.006064; X3TwoDfoPosDto.MainVy = -1.4693; X3TwoDfoPosDto.MainVz = 1.62569; X3TwoDfoPosDto.Adja1X = -14770224.082665; X3TwoDfoPosDto.Adja1Y = 39479299.786862; X3TwoDfoPosDto.Adja1Z = -53188.063002; X3TwoDfoPosDto.Adja1Vx = -1.764989; X3TwoDfoPosDto.Adja1Vy = -0.528101; X3TwoDfoPosDto.Adja1Vz = 1.808949; X3TwoDfoPosDto.Adja2X = -33231255.13; X3TwoDfoPosDto.Adja2Y = 25948042.76; X3TwoDfoPosDto.Adja2Z = 27091.80; X3TwoDfoPosDto.Adja2Vx = -0.607289; X3TwoDfoPosDto.Adja2Vy = 0.089864; X3TwoDfoPosDto.Adja2Vz = -0.069086; X3TwoDfoPosDto.SatTxLon = 116.254567; X3TwoDfoPosDto.SatTxLat = 39.65955; X3TwoDfoPosDto.RefLon = 106.698; X3TwoDfoPosDto.RefLat = 26.567; return X3TwoDfoPosDto; } /// /// 双星时频差定位 /// private X2DtoDfoPosDto X2Dfo() { X2DtoDfoPosDto X2DtoDfoPosDto = new X2DtoDfoPosDto(); X2DtoDfoPosDto.SigTime = DateTime.Now; X2DtoDfoPosDto.MainCode = 23467; X2DtoDfoPosDto.AdjaCode = 39206; X2DtoDfoPosDto.Dto = -3.587980198938979e-06 * 1e6; X2DtoDfoPosDto.Dfo = -17.601977254734404; X2DtoDfoPosDto.YbMainDto = 0; X2DtoDfoPosDto.YbAdjaDto = 6.352805492137770e-05 * 1e6; X2DtoDfoPosDto.YbMainDfo = 0; X2DtoDfoPosDto.YbAdjaDfo = 17.453698229247941; X2DtoDfoPosDto.TarFreqUp = 3808 * 1e6 + 2225 * 1e6; X2DtoDfoPosDto.TarFreqDown = 3808 * 1e6; X2DtoDfoPosDto.RefFreqUp = 3796 * 1e6 + 2225 * 1e6; X2DtoDfoPosDto.RefFreqDown = 3796 * 1e6; X2DtoDfoPosDto.MainX = -18149981.873274; X2DtoDfoPosDto.MainY = 38039767.675679; X2DtoDfoPosDto.MainZ = -5662.335149; X2DtoDfoPosDto.MainVx = -2.006064; X2DtoDfoPosDto.MainVy = -1.4693; X2DtoDfoPosDto.MainVz = 1.62569; X2DtoDfoPosDto.AdjaX = -14770224.082665; X2DtoDfoPosDto.AdjaY = 39479299.786862; X2DtoDfoPosDto.AdjaZ = -53188.063002; X2DtoDfoPosDto.AdjaVx = -1.764989; X2DtoDfoPosDto.AdjaVy = -0.528101; X2DtoDfoPosDto.AdjaVz = 1.808949; X2DtoDfoPosDto.SatTxLon = 116.254567; X2DtoDfoPosDto.SatTxLat = 39.65955; X2DtoDfoPosDto.RefLon = 106.698; X2DtoDfoPosDto.RefLat = 26.567; return X2DtoDfoPosDto; } /// /// 两星一地定位无参无星厉 /// private X2D1NoXlNoParlPosDto X2D1NoParNoXL() { X2D1NoXlNoParlPosDto X2D1NoXlNoParlPosDto = new X2D1NoXlNoParlPosDto(); X2D1NoXlNoParlPosDto.SigTime = DateTime.Now; X2D1NoXlNoParlPosDto.MainCode = 23467; X2D1NoXlNoParlPosDto.AdjaCode = 39206; X2D1NoXlNoParlPosDto.SxDto = -0.002198485309353 * 1e6; X2D1NoXlNoParlPosDto.XdDto = 0.245961726007262 * 1e6; X2D1NoXlNoParlPosDto.SatTxLon = 118.8833; X2D1NoXlNoParlPosDto.SatTxLat = 32.0667; X2D1NoXlNoParlPosDto.CdbTxLon = 109.4082; X2D1NoXlNoParlPosDto.CdbTxLat = 18.3878; return X2D1NoXlNoParlPosDto; } /// /// 三星双时差定位无星厉 /// private X3TwoDtoNoXlPosDto X3TwoDtoNoXL() { X3TwoDtoNoXlPosDto X3TwoDtoNoXlPosDto = new X3TwoDtoNoXlPosDto(); X3TwoDtoNoXlPosDto.SigTime = DateTime.Now; X3TwoDtoNoXlPosDto.MainCode = 23467; X3TwoDtoNoXlPosDto.Adja1Code = 39206; X3TwoDtoNoXlPosDto.Adja2Code = 40892; X3TwoDtoNoXlPosDto.Dto1 = -0.0037683828 * 1e6; X3TwoDtoNoXlPosDto.Dto2 = 0.00411476 * 1e6; X3TwoDtoNoXlPosDto.YbMainDto = 0.253339246 * 1e6; X3TwoDtoNoXlPosDto.YbAdja1Dto = 0.254082015 * 1e6; X3TwoDtoNoXlPosDto.YbAdja2Dto = 0.247747625 * 1e6; X3TwoDtoNoXlPosDto.SatTxLon = 118.8833; X3TwoDtoNoXlPosDto.SatTxLat = 32.0667; X3TwoDtoNoXlPosDto.RefLon = 121.538; X3TwoDtoNoXlPosDto.RefLat = 30.8385; return X3TwoDtoNoXlPosDto; } /// /// 三星双时差无参定位无星厉 /// private X3TwoDtoNoXlNoParPosDto X3TwoDtoNoParNoXL() { X3TwoDtoNoXlNoParPosDto X3TwoDtoNoParPosDto = new X3TwoDtoNoXlNoParPosDto(); X3TwoDtoNoParPosDto.SigTime = DateTime.Now; X3TwoDtoNoParPosDto.MainCode = 23467; X3TwoDtoNoParPosDto.Adja1Code = 39206; X3TwoDtoNoParPosDto.Adja2Code = 40892; X3TwoDtoNoParPosDto.Dto1 = -0.008361002956792 * 1e6; X3TwoDtoNoParPosDto.Dto2 = 0.004191941221694 * 1e6; X3TwoDtoNoParPosDto.SatTxLon = 121.3555; X3TwoDtoNoParPosDto.SatTxLat = 31.3667; return X3TwoDtoNoParPosDto; } /// /// 三星双频差定位无星厉 /// private X3TwoDfoNoXlPosDto X3TwoDfoNoXL() { X3TwoDfoNoXlPosDto X3TwoDfoNoXlPosDto = new X3TwoDfoNoXlPosDto(); X3TwoDfoNoXlPosDto.SigTime = DateTime.Now; X3TwoDfoNoXlPosDto.MainCode = 23467; X3TwoDfoNoXlPosDto.Adja1Code = 39206; X3TwoDfoNoXlPosDto.Adja2Code = 40892; X3TwoDfoNoXlPosDto.Dfo1 = -17.601977254734404; X3TwoDfoNoXlPosDto.Dfo2 = -36.885840020369514; X3TwoDfoNoXlPosDto.YbMainDfo = 0; X3TwoDfoNoXlPosDto.YbAdja1Dfo = 17.453698229247941; X3TwoDfoNoXlPosDto.YbAdja2Dfo = 37.022577554138941; X3TwoDfoNoXlPosDto.TarFreqUp = 3808 * 1e6 + 2225 * 1e6; X3TwoDfoNoXlPosDto.TarFreqDown = 3808 * 1e6; X3TwoDfoNoXlPosDto.RefFreqUp = 3796 * 1e6 + 2225 * 1e6; X3TwoDfoNoXlPosDto.RefFreqDown = 3796 * 1e6; X3TwoDfoNoXlPosDto.SatTxLon = 116.254567; X3TwoDfoNoXlPosDto.SatTxLat = 39.65955; X3TwoDfoNoXlPosDto.RefLon = 106.698; X3TwoDfoNoXlPosDto.RefLat = 26.567; return X3TwoDfoNoXlPosDto; } /// /// 双星时频差定位无星厉 /// private X2DtoDfoNoXlPosDto X2DfoNoXL() { X2DtoDfoNoXlPosDto X2DtoDfoNoXlPosDto = new X2DtoDfoNoXlPosDto(); X2DtoDfoNoXlPosDto.SigTime = DateTime.Now; X2DtoDfoNoXlPosDto.MainCode = 23467; X2DtoDfoNoXlPosDto.AdjaCode = 39206; X2DtoDfoNoXlPosDto.Dto = -3.587980198938979e-06 * 1e6; X2DtoDfoNoXlPosDto.Dfo = -17.601977254734404; X2DtoDfoNoXlPosDto.YbMainDto = 0; X2DtoDfoNoXlPosDto.YbAdjaDto = 6.352805492137770e-05 * 1e6; X2DtoDfoNoXlPosDto.YbMainDfo = 0; X2DtoDfoNoXlPosDto.YbAdjaDfo = 17.453698229247941; X2DtoDfoNoXlPosDto.TarFreqUp = 3808 * 1e6 + 2225 * 1e6; X2DtoDfoNoXlPosDto.TarFreqDown = 3808 * 1e6; X2DtoDfoNoXlPosDto.RefFreqUp = 3796 * 1e6 + 2225 * 1e6; X2DtoDfoNoXlPosDto.RefFreqDown = 3796 * 1e6; X2DtoDfoNoXlPosDto.SatTxLon = 116.254567; X2DtoDfoNoXlPosDto.SatTxLat = 39.65955; X2DtoDfoNoXlPosDto.RefLon = 106.698; X2DtoDfoNoXlPosDto.RefLat = 26.567; return X2DtoDfoNoXlPosDto; } private void Log(string msg) { try { if (this.InvokeRequired) { this.Invoke(new Action(() => { if (listBoxControl1.ItemCount > 5000) listBoxControl1.Items.Clear(); listBoxControl1.Items.Insert(0, $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}--{msg}"); listBoxControl1.SelectedIndex = 0; })); } else { if (listBoxControl1.ItemCount > 5000) listBoxControl1.Items.Clear(); listBoxControl1.Items.Insert(0, $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}--{msg}"); listBoxControl1.SelectedIndex = 0; } } catch { } } private void Log(Exception ex) { try { if (this.InvokeRequired) { this.Invoke(new Action(() => { if (listBoxControl1.ItemCount > 5000) listBoxControl1.Items.Clear(); listBoxControl1.Items.Insert(0, $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}--{ex.Message}"); listBoxControl1.SelectedIndex = 0; })); } else { if (listBoxControl1.ItemCount > 5000) listBoxControl1.Items.Clear(); listBoxControl1.Items.Insert(0, $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}--{ex.Message}"); listBoxControl1.SelectedIndex = 0; } } catch { } } private void listBoxControl1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { popupMenu1.ShowPopup(MousePosition); } } private void btnClear_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { listBoxControl1.Items.Clear(); } private void btnCopyAll_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { StringBuilder sb = new StringBuilder(); foreach (var item in listBoxControl1.Items) { sb.AppendLine(item.ToString()); } var data = sb.ToString(); if (string.IsNullOrWhiteSpace(data)) return; Clipboard.SetText(sb.ToString()); } } }