فهرست منبع

异步化PLC连接事件并增强日志记录

将PLC连接状态事件处理改为异步,连接成功时异步写入系统参数和点位信息,并增加异常捕获与错误日志。点位文件导入成功后补充调试日志,便于追踪操作状态。
徐孝锋 7 ماه پیش
والد
کامیت
23d26747d5
2فایلهای تغییر یافته به همراه12 افزوده شده و 2 حذف شده
  1. 10 1
      TeamAAS-VM/Core/Management.cs
  2. 2 1
      TeamAAS-VM/ViewModels/Product/PlcPointParamsViewModel.cs

+ 10 - 1
TeamAAS-VM/Core/Management.cs

@@ -960,7 +960,7 @@ namespace TeamAAS_VP.Core
         /// </summary>
         /// <param name="plc"></param>
         /// <param name="isconnected"></param>
-        private void Management_PlcConnectChangedEvent(object sender, bool isconnected)
+        private async void Management_PlcConnectChangedEvent(object sender, bool isconnected)
         {
             IPlc plc = sender as IPlc;
             var sta = Status.FirstOrDefault(s => s.ID == plc.Id);
@@ -974,6 +974,15 @@ namespace TeamAAS_VP.Core
                              sta.Message = $"{plc.Name}{Lang.已连接}";
                              sta.Background = new SolidColorBrush(Colors.Green);
                          }));
+                try
+                {
+                    await WriteSystemParameterToPlcAsync(_configService.GetSystemConfiguration());
+                    await WritePositionToPlcAsync();
+                }
+                catch (Exception ex)
+                {
+                    LogHelper.WriteLogError("PLC连接成功时,写入系统参数和点位信息时出错!", ex);
+                }
             }
             else
             {

+ 2 - 1
TeamAAS-VM/ViewModels/Product/PlcPointParamsViewModel.cs

@@ -1872,7 +1872,8 @@ namespace TeamAAS_VP.ViewModels.Product
                         Points = SelectProduct.PickCameraPoints;
                         break;
                 }
-
+                
+                LogHelper.WriteLogDebug("导入点位文件成功");
                 _eventAggregator.GetEvent<SnackbarMessageNotification>().Publish(new MessageParameter() { Msg = "导入完成", Duration = 1 });
             }
             catch (Exception ex)