zoulei 1 year ago
parent
commit
9ebc40319e

BIN
Service/CheckServer/AddIns/SignalProc.dll


+ 61 - 29
XdCxRhDW.App/MainForm.cs

@@ -90,6 +90,7 @@ namespace XdCxRhDW
             _ = XlScan();
             _ = XlClear();
             _ = ClearLocalFile();
+            _ = ClearLog();
             await XlLonCalc();
         }
         private void StartWebApi()
@@ -284,6 +285,29 @@ namespace XdCxRhDW
             }
         }
 
+        private async Task ClearLog()
+        {
+            using (RHDWContext db = new RHDWContext())
+            {
+                try
+                {
+                    var time1 = DateTime.Today.AddDays(-7);
+                    var time2 = DateTime.Today.AddDays(-30);
+                    var delItems = await db.LogRes.Where(p => p.LogTime < time1 && p.LogType != EnumLogType.Error).ToListAsync();
+                    db.LogRes.RemoveRange(delItems);
+
+                    var delItems2 = await db.LogRes.Where(p => p.LogTime < time2 && p.LogType == EnumLogType.Error).ToListAsync();
+                    db.LogRes.RemoveRange(delItems2);
+                    await db.SaveChangesAsync();
+                }
+                catch (Exception ex)
+                {
+                    Serilog.Log.Error(ex, "清理日志信息异常!");
+                }
+            }
+            await Task.Delay(3600 * 1000);
+        }
+
         private void btn_ItemClick(object sender, ItemClickEventArgs e)
         {
             var btnTxt = e?.Item?.Caption?.Trim() ?? "任务管理";
@@ -345,47 +369,55 @@ namespace XdCxRhDW
 
         private void StartProcess()
         {
-            KillProcess();
-            Process pro = new Process();
-            var servicesDir = Directory.GetDirectories(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Service\\"), "*", SearchOption.TopDirectoryOnly);
-            foreach (var item in servicesDir)
+            Task.Run(() =>
             {
-                try
+                KillProcess();
+                Process pro = new Process();
+                var servicesDir = Directory.GetDirectories(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Service\\"), "*", SearchOption.TopDirectoryOnly);
+                foreach (var item in servicesDir)
                 {
-                    string exeName = Path.GetFileNameWithoutExtension(item);
-                    string exeFile = $"{item}\\{exeName}.exe";
-                    pro.StartInfo.FileName = exeFile;
-                    pro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
-                    pro.StartInfo.Arguments = $"http://127.0.0.1:{SysConfig.Config.HttpPort}";
-                    pro.Start();
-                }
-                catch (Exception ex)
-                {
-                    Serilog.Log.Error(ex, $"启动【{item}】中的服务异常");
-                    DxHelper.MsgBoxHelper.ShowError($"启动【{item}】中的服务异常");
+                    try
+                    {
+                        string exeName = Path.GetFileNameWithoutExtension(item);
+                        string exeFile = $"{item}\\{exeName}.exe";
+                        pro.StartInfo.FileName = exeFile;
+                        pro.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
+                        pro.StartInfo.Arguments = $"http://127.0.0.1:{SysConfig.Config.HttpPort}";
+                        pro.Start();
+                    }
+                    catch (Exception ex)
+                    {
+                        Serilog.Log.Error(ex, $"启动【{item}】中的服务异常");
+                        DxHelper.MsgBoxHelper.ShowError($"启动【{item}】中的服务异常");
+                    }
                 }
-            }
+            });
+
         }
         private void KillProcess()
         {
-            List<Process> list = new List<Process>();
-            var servicesDir = Directory.GetDirectories(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Service\\"), "*", SearchOption.TopDirectoryOnly);
-            foreach (var item in servicesDir)
-            {
-                string exeName = Path.GetFileNameWithoutExtension(item);
-                list.AddRange(Process.GetProcessesByName(exeName));
-            }
-            foreach (var item in list)
+            try
             {
-                try
+                List<Process> list = new List<Process>();
+                var servicesDir = Directory.GetDirectories(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Service\\"), "*", SearchOption.TopDirectoryOnly);
+                foreach (var item in servicesDir)
                 {
-                    item.Kill();
+                    string exeName = Path.GetFileNameWithoutExtension(item);
+                    list.AddRange(Process.GetProcessesByName(exeName));
                 }
-                catch
+                foreach (var item in list)
                 {
+                    try
+                    {
+                        item.Kill();
+                    }
+                    catch
+                    {
+                    }
                 }
             }
+            catch
+            { }
         }
-
     }
 }

BIN
XdCxRhDW.DataEmulation/AddIns/SignalEmulation.dll


+ 10 - 0
XdCxRhDW.DataEmulation/AddIns/SignalEmulation.h

@@ -153,6 +153,16 @@ extern "C"
 	///
 	SignalEmulation_EXPORT void genSignalsWithDtDf(char *file1, char *file2, __int64 fsample, int tlenms, double dt, double df, int snr1, int snr2);
 
+
+	///
+	/// 根据给定时频差生成信号
+	/// f1		主星文件	
+	/// fsample 采样率
+	// tlenms			生成信号时长   ms
+	/// Am		最大幅度
+	///
+	SignalEmulation_EXPORT void genNoizes(char *file1,  __int64 fsample, int tlenms, int Am);
+
 	///
 	/// 该函数用于合并两个信号到一个新的文件
 	///	两个信号文件必须是相同的采样率, 如果两个文件不一样长,最后生成的数据以较短的文件时长为准

+ 20 - 4
XdCxRhDW.DataEmulation/DataEmulationHelper.cs

@@ -14,22 +14,38 @@ namespace XdCxRhDW.DataEmulation
         #region cpp dll Interop 
         [DllImport(dll, EntryPoint = "genSignalsWithDtDf", CallingConvention = CallingConvention.Cdecl)]
         private extern static void GenSignalsWithDtDfCore(string file1, string file2, long fsHz, int sigLenMs, double dt, double df, int snr2, int snr1);
+
+        //生成噪声,文件,采样率,时长ms,最大幅度
+        [DllImport(dll, EntryPoint = "genNoizes", CallingConvention = CallingConvention.Cdecl)]
+        private extern static void GenNoizes(string file1, long fsHz, int tlenms, int Am);
         #endregion
 
         /// <summary>
-        /// 时频差信号文件仿真
+        /// 生成一组常规信号文件
         /// </summary>
         /// <param name="file1">输出文件1</param>
         /// <param name="file2">输出文件2</param>
         /// <param name="fsHz">采样率Hz</param>
-        /// <param name="sigLenMs">信号时长秒</param>
+        /// <param name="sigTimeLenMs">信号时长(毫)</param>
         /// <param name="dt">时差秒</param>
         /// <param name="df">频差Hz</param>
         /// <param name="snr1">文件1信噪比</param>
         /// <param name="snr2">文件2信噪比</param>
-        public static void GenSignalsWithDtDf(string file1, string file2, long fsHz, int sigLenMs, double dt, double df, int snr1, int snr2)
+        public static void GenSignalsFile(string file1, string file2, long fsHz, int sigTimeLenMs, double dt, double df, int snr1, int snr2)
+        {
+            GenSignalsWithDtDfCore(file1, file2, fsHz, sigTimeLenMs, dt, df, snr2, snr1);
+        }
+
+        /// <summary>
+        /// 生成单个噪声文件
+        /// </summary>
+        /// <param name="file1"></param>
+        /// <param name="fsHz"></param>
+        /// <param name="timeLenMs"></param>
+        /// <param name="am"></param>
+        public static void GenNoizesFile(string file1, long fsHz, int timeLenMs, int am)
         {
-            GenSignalsWithDtDfCore(file1, file2, fsHz, sigLenMs, dt, df, snr2, snr1);
+            GenNoizes(file1, fsHz, timeLenMs, am); 
         }
     }
 }

+ 2 - 1
XdCxRhDW.DataEmulation/Form1.cs

@@ -71,7 +71,8 @@ namespace XdCxRhDW.DataEmulation
             btnBuilder.Enabled = false;
             await Task.Run(() =>
             {
-                DataEmulationHelper.GenSignalsWithDtDf(file1, file2, fsHz, (int)(sigTimeLen * 1000), dt / 1e6, df, (int)snr1, (int)snr2);
+                DataEmulationHelper.GenSignalsFile(file1, file2, fsHz, (int)(sigTimeLen * 1000), dt / 1e6, df, (int)snr1, (int)snr2);
+                DataEmulationHelper.GenNoizesFile(Path.GetFileNameWithoutExtension(file1) + "_Noize.dat", fsHz, (int)(sigTimeLen * 1000), 400);
             });
             btnBuilder.Enabled = true;
         }

+ 1 - 0
XdCxRhDW.DataEmulation/XdCxRhDW.DataEmulation.csproj

@@ -76,6 +76,7 @@
     <EmbeddedResource Include="Form1.resx">
       <DependentUpon>Form1.cs</DependentUpon>
     </EmbeddedResource>
+    <None Include="Properties\licenses.licx" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>