Переглянути джерело

优化相邻键盘格差值判断功能

zly 4 місяців тому
батько
коміт
71f2eb2e80

+ 1 - 1
TeamAAS-VM/Core/Cameras/IKapCamera.cs

@@ -480,7 +480,7 @@ namespace TeamAAS_VP.Core.Cameras
 
 
         // 注意:需要更新 Grab 方法中的图像获取部分
-        public ICogImage Grab2(bool isRealtime = true)
+        public  ICogImage Grab2(bool isRealtime = true)
         {
             _operationSemaphore.Wait();
             try

+ 156 - 87
TeamAAS-VM/Core/Management.cs

@@ -8,6 +8,7 @@ using Prism.Events;
 using Prism.Ioc;
 using Prism.Mvvm;
 using Prism.Regions;
+using SqlSugar;
 using SqlSugar.SplitTableExtensions;
 using System;
 using System.Collections.Generic;
@@ -100,6 +101,8 @@ namespace TeamAAS_VP.Core
         private readonly ManualResetEventSlim _scanDoneEvent = new ManualResetEventSlim(false);
         //键盘数据
         public Dictionary<string, double> keyData = new Dictionary<string, double>{};
+        //键盘单独数据
+        public Dictionary<string, double> keyData1 = new Dictionary<string, double> { };
         //键盘差值
         public bool isValueOk;
 
@@ -2309,7 +2312,7 @@ namespace TeamAAS_VP.Core
                                     await _remoteCommandService.SetLightBeforePhoto(selectedProcedure);
                                 }
                                
-                               if(sysConfig.PhotosUse==true)
+                                if(sysConfig.PhotosUse==true)
                                 {
                                     bool Is3dPhoto = Is3D(prcId);
                                     var tt=await GrabImageEx(cameraIndex, prcId, Is3dPhoto);
@@ -2320,7 +2323,7 @@ namespace TeamAAS_VP.Core
                                     }
                                     await ExecuteProcedureAsync(cameraIndex, prcId, tt.imges, Is3dPhoto);
                                 }
-                               else
+                                else
                                 {
                                     bool Is3dPhoto = Is3D(prcId);
                                     _ImageTaskList.Add(GrabImageEx(cameraIndex, prcId, Is3dPhoto));
@@ -2658,6 +2661,8 @@ namespace TeamAAS_VP.Core
                                     //读取产品结果
 
                                     Int16 resultIndex = plc.ReadNode<Int16>(string.Format(addressConfig.In_Result.Address, i));
+                                    SendTaskMessage($"读取plc结果{resultIndex}", MessageLevel.Debug);
+                                    ShowMes_Result = resultIndex == 1 ? true : false;
                                     if (homeview.IsResultTrue == false)
                                     {
                                         resultIndex = 1;
@@ -2726,27 +2731,39 @@ namespace TeamAAS_VP.Core
 
                                     }
                                     bool allSuccess = true;
-                                    bool ok=false;
-                                    if (keyData != null)
+                                    bool ok = false;
+                                    if (stationConfig.SaveCsvkeyData)
                                     {
-                                         ok = CheckKeyBoardValue(keyData, out string msg);
+                                       
+                                        if (keyData != null)
+                                        {
+                                            ok = CheckKeyBoardValue(keyData, out string msg);
+                                        }
+
+                                        if (ok && resultIndex == 1 ? true : false && isValueOk)
+                                        {
+                                            ShowMes_Result = true;
+                                        }
+                                        else
+                                        {
+                                            ShowMes_Result = false;
+                                        }
+                                        if (homeview.IsResultTrue == false)
+                                        {
+                                            ShowMes_Result = true;
+                                        }
                                     }
                                     
-                                    if (ok && resultIndex == 1 ? true : false && isValueOk)
-                                    {
-                                        ShowMes_Result = true;
-                                    }
-                                    else
-                                    {
-                                        ShowMes_Result = false;
-                                    }
-                                    if (homeview.IsResultTrue == false)
-                                    {
-                                        ShowMes_Result = true;
-                                    }
-                                    keyData.Clear();
+                                    //StringBuilder submitDataError2 = new StringBuilder();
+                                    //foreach (var item in keyData)
+                                    //{
+
+                                    //    submitData.Append($"{item.Key}={item.Value}");
+
+                                    //}
+                                    //keyData.Clear();
                                     // ShowMes_Result = resultIndex == 1 ? true : false;
-                                    
+
                                     //(bool isSuccess, string response) = await _mesService.SubmitGetAsync(ProductMainSN, "", submitData.ToString(), resultIndex == 1 ? true : false, _LastMesCheckTime[i], serverTimeResult.Now);
                                     if (submitData.Length > 0)
                                     {
@@ -2793,7 +2810,7 @@ namespace TeamAAS_VP.Core
                                         string saveppid = "NA";
                                         if (stationConfig.SaveCsvPPID) saveppid = ppid;
                                         Dictionary<string, double> adjacentDiffDict = GetAdjacentDiffDict(keyData);
-
+                                       // Dictionary<string, double> adjacentDiffDict1 = GetAdjacentDiffDict(keyData1);
                                         //判断锁付路径字符串是否为空,如果不为空则保存,否则不保存
                                         if (!string.IsNullOrEmpty(stationConfig.SaveCsvPath))
                                         {
@@ -2809,6 +2826,10 @@ namespace TeamAAS_VP.Core
                                                     {
                                                         item.PhotoName = "'=" + "_" + k.ToString();
                                                     }
+                                                    //if (item.PhotoName=="-"+k.ToString())
+                                                    //{
+                                                    //    item.PhotoName = "_" + k.ToString();
+                                                    //}
                                                 }                                               
                                                 DFC.Add(new DataFormCtq
                                                 {
@@ -2817,6 +2838,7 @@ namespace TeamAAS_VP.Core
                                                     PROCESS_START_TIME = _LastMesCheckTime[i].ToString("o"),
                                                     CTQ_NAME = item.PhotoName,
                                                     CTQ_VALUE = item.ResultData.Replace(",", ";"),
+                                                    //CTQ_VALUEE=item.ResultData1,
                                                     CTQ_LSL = item.DownLimit,
                                                     CTQ_USL = item.UpLimit,
                                                     PROCESS_END_TIME = serverTimeResult.Now.ToString("o"),
@@ -2837,39 +2859,74 @@ namespace TeamAAS_VP.Core
                                                     PD_ATTR_05 = "",
                                                 });                                      
                                             }
-                                            foreach (var items in adjacentDiffDict)
+                                            if (stationConfig.SaveCsvkeyData)
                                             {
-                                                string pairkey = items.Key;
-                                                string diffvalue = items.Value.ToString("F3");
-
-                                                DFC.Add(new DataFormCtq
+                                                foreach (var items in adjacentDiffDict)
                                                 {
-                                                    PPID = saveppid,
-                                                    PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
-                                                    PROCESS_START_TIME = _LastMesCheckTime[i].ToString("o"),
-                                                    CTQ_NAME = pairkey,
-                                                    CTQ_VALUE = diffvalue,
-                                                    CTQ_LSL = "0",
-                                                    CTQ_USL = "0.3",
-                                                    PROCESS_END_TIME = serverTimeResult.Now.ToString("o"),
-                                                    SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
-                                                    COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                                    REVISION = stage,//
-                                                    WO = wo,//
-                                                    MFG_LOT = stationConfig.DataInfo.MFG_LOT,//
-                                                    MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
-                                                    PROCESS_OUTCOME = ok ? "Pass":"FAIL",
-                                                    PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
-                                                    CTQ_UNIT_OF_MEASURE = "mm",
-                                                    ERROR_MESSAGE = ok ? "":$"{diffvalue}",
-                                                    PD_ATTR_01 = ProductMainSN,//
-                                                    PD_ATTR_02 = "",
-                                                    PD_ATTR_03 = "",
-                                                    PD_ATTR_04 = code,
-                                                    PD_ATTR_05 = "",
-                                                });
+                                                    string pairkey = items.Key;
+                                                    string diffvalue = items.Value.ToString("F3");
+                                                    DFC.Add(new DataFormCtq
+                                                    {
+                                                        PPID = saveppid,
+                                                        PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
+                                                        PROCESS_START_TIME = _LastMesCheckTime[i].ToString("o"),
+                                                        CTQ_NAME = pairkey,
+                                                        CTQ_VALUE = diffvalue,
+                                                        CTQ_LSL = "-0.3",
+                                                        CTQ_USL = "0.3",
+                                                        PROCESS_END_TIME = serverTimeResult.Now.ToString("o"),
+                                                        SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
+                                                        COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
+                                                        REVISION = stage,//
+                                                        WO = wo,//
+                                                        MFG_LOT = stationConfig.DataInfo.MFG_LOT,//
+                                                        MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
+                                                        PROCESS_OUTCOME = ok ? "Pass" : "FAIL",
+                                                        PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
+                                                        CTQ_UNIT_OF_MEASURE = "mm",
+                                                        ERROR_MESSAGE = ok ? "" : $"{diffvalue}",
+                                                        PD_ATTR_01 = ProductMainSN,//
+                                                        PD_ATTR_02 = "",
+                                                        PD_ATTR_03 = "",
+                                                        PD_ATTR_04 = code,
+                                                        PD_ATTR_05 = "",
+                                                    });
+                                                }
+                                                foreach (var items in keyData1)
+                                                {
+                                                    string pairkey1 = items.Key;
+                                                    string diffvalue1 = items.Value.ToString("F3");
+                                                    DFC.Add(new DataFormCtq
+                                                    {
+                                                        PPID = saveppid,
+                                                        PROCESS_NAME = stationConfig.DataInfo.PROCESS_NAME,
+                                                        PROCESS_START_TIME = _LastMesCheckTime[i].ToString("o"),
+                                                        CTQ_NAME = pairkey1,
+                                                        CTQ_VALUE = diffvalue1,
+                                                        CTQ_LSL = "0",
+                                                        CTQ_USL = "0.3",
+                                                        PROCESS_END_TIME = serverTimeResult.Now.ToString("o"),
+                                                        SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
+                                                        COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
+                                                        REVISION = stage,//
+                                                        WO = wo,//
+                                                        MFG_LOT = stationConfig.DataInfo.MFG_LOT,//
+                                                        MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
+                                                        PROCESS_OUTCOME = ok ? "Pass" : "FAIL",
+                                                        PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
+                                                        CTQ_UNIT_OF_MEASURE = "mm",
+                                                        ERROR_MESSAGE = ok ? "" : $"{diffvalue1}",
+                                                        PD_ATTR_01 = ProductMainSN,//
+                                                        PD_ATTR_02 = "0.15",
+                                                        PD_ATTR_03 = "",
+                                                        PD_ATTR_04 = code,
+                                                        PD_ATTR_05 = "",
+                                                    });
+                                                }
                                             }
+
                                             bool recordResult = RecordStationResult(i, DFC, ProductMainSN, serverTimeResult.Now.Subtract(_LastMesCheckTime[i]).TotalSeconds, _LastMesCheckTime[i], stationConfig.SaveCsvPath);
+                                            //keyData.Clear();
                                             if (recordResult)
                                             {
                                                 SendTaskMessage($"{i}:{stationConfig.DeviceName}产品记录保存成功", MessageLevel.Debug);
@@ -2963,8 +3020,10 @@ namespace TeamAAS_VP.Core
                                     lock (_stateLock)
                                     {
                                         lockResultsAll.Clear();
+                                        keyData.Clear();
+                                        keyData1.Clear();
                                     }
-
+                                    
                                     ProductMainSN = "";
                                     LogHelper.WriteLogMes($"【mes结束ADD】");
                                     SendTaskMessage($"mes结束ADD", MessageLevel.Info);
@@ -3222,6 +3281,7 @@ namespace TeamAAS_VP.Core
                         //2. 结果分析
                         lock (_stateLock)
                         {
+                            var stationConfig = _configService.GetDeviceInfo(0);
                             for (int i = 1; i <= visionResult.Count; i++)
                             {
 
@@ -3237,56 +3297,65 @@ namespace TeamAAS_VP.Core
                                 //}
                                 try
                                 {
+                                    
                                     string[] strpoints1 = visionResult.Items[i].Split(',');
                                     string[] body1 = strpoints1[1].Split(";");
 
-                                    if (body1.Length >= 5)
-                                    {                                        
-                                        string keyName = strpoints1[0].Split('-').Last().Trim();
-                                        List<double> list = new List<double>();
-
-                                        foreach (string v in body1)
+                                    if (stationConfig.SaveCsvkeyData)
+                                    {
+                                        if (body1.Length >= 5)
                                         {
-                                            if (double.TryParse(v.Trim(), out double num))
+                                            string keyName = strpoints1[0].Split('-').Last().Trim();
+                                            List<double> list = new List<double>();
+
+                                            foreach (string v in body1)
                                             {
-                                                if (num == 999)
+                                                if (double.TryParse(v.Trim(), out double num))
                                                 {
-                                                    continue;
+                                                    if (num == 999)
+                                                    {
+                                                        continue;
+                                                    }
+                                                    list.Add(num);
                                                 }
-                                                list.Add(num);
                                             }
-                                        }
-                                        if (list.Count == 0)
-                                        {
-                                            continue;
-                                        }
+                                            if (list.Count == 0)
+                                            {
+                                                continue;
+                                            }
 
-                                        double max = list.Max();
-                                        double min = list.Min();
+                                            double max = list.Max();
+                                            double min = list.Min();
+                                            double chazhi = max - min;
+                                            double average = list.Average();
+                                            if (max - min <= 0.3)
+                                            {
+                                                isValueOk = true;
+                                            }
+                                            else
+                                            {
+                                                SendTaskMessage($"键盘格{keyName}最大值{max}与最小值{min}相差大于0.3!", MessageLevel.Error);
+                                            }
+                                            if (keyData != null)
+                                            {
+                                                if (!keyData.ContainsKey(keyName))
+                                                {
+                                                    keyData.Add(keyName, average);
 
-                                        if (max - min <= 0.3)
-                                        {
-                                            isValueOk = true;
-                                        }
-                                        else
-                                        {
-                                            SendTaskMessage($"键盘格{keyName}最大值{max}与最小值{min}相差大于0.3!", MessageLevel.Error);
-                                        }
-                                        double average = list.Average();
-                                        if (keyData != null)
-                                        {
-                                            if (!keyData.ContainsKey(keyName))
+                                                }
+                                                if (!keyData1.ContainsKey(keyName))
+                                                {
+                                                    keyData1.Add(keyName, chazhi);
+                                                }
+                                            }
+                                            else
                                             {
                                                 keyData.Add(keyName, average);
+                                                keyData1.Add(keyName, chazhi);
                                             }
-                                        }
-                                        else
-                                        {
-                                            keyData.Add(keyName, average);
-                                        }
+                                        }                                      
                                     }
-                                    
-                                       
+                                                         
                                     if (body1.Length > 1)
                                     {
                                         for (int j = 1; j <= body1.Length; j++)
@@ -3861,7 +3930,7 @@ namespace TeamAAS_VP.Core
                     if (!keyData.TryGetValue(key2, out double val2)) continue;
 
                     // 去重核心:保证 A-S 和 S-A 只存一次
-                    string pairKey = string.Compare(key1, key2) < 0 ? $"{key1}-{key2}" : $"{key2}-{key1}";
+                    string pairKey = string.Compare(key1, key2) < 0 ? $"_{key1}_{key2}" : $"_{key2}_{key1}";
 
                     if (diffDict.ContainsKey(pairKey)) continue; // 跳过已存的
 

+ 1 - 1
TeamAAS-VM/Models/DataFormCtq.cs

@@ -38,7 +38,7 @@ namespace TeamAAS_VP.Models
         /// 检测值
         /// </summary>
         public string CTQ_VALUE { get => _CTQ_VALUE; set => SetProperty(ref _CTQ_VALUE, value); }
-
+     
         private string _CTQ_LSL;
         /// <summary>
         /// 下限

+ 7 - 0
TeamAAS-VM/Models/DeviceInfo.cs

@@ -91,6 +91,13 @@ namespace TeamAAS_VP.Models
         /// </summary>
         public bool SaveCsvPPID { get => _saveCsvPPID; set => SetProperty(ref _saveCsvPPID, value); }
 
+
+        private bool _SaveCsvkeyData;
+        /// <summary>
+        /// 是否保存键盘相邻键差值,默认不保存
+        /// </summary>
+        public bool SaveCsvkeyData { get => _SaveCsvkeyData; set => SetProperty(ref _SaveCsvkeyData, value); }
+
         private string _saveCsvPath;
         /// <summary>
         /// 保存的CSV文件路径

+ 10 - 0
TeamAAS-VM/Models/LockResult.cs

@@ -188,6 +188,16 @@ namespace TeamAAS_VP.Models
             set { SetProperty(ref _ResultData, value); }
         }
 
+        private string _ResultData1;
+        /// <summary>
+        /// 测量结果
+        /// </summary>
+        public string ResultData1
+        {
+            get { return _ResultData1; }
+            set { SetProperty(ref _ResultData1, value); }
+        }
+
         private string _UpLimit;
         /// <summary>
         /// 测量项的上限

+ 5 - 5
TeamAAS-VM/Services/MesService.cs

@@ -286,11 +286,11 @@ namespace TeamAAS_VP.Services
             }
 
             string res = isSuccess ? "PASS" : "FAIL";
-            if (res == "FAIL")
-            {
-                res = ErrorData;
-                //res = "A1-gap-Ctrl2_4_Fail";
-            }
+            //if (res == "FAIL")
+            //{
+            //    res = ErrorData;
+            //    //res = "A1-gap-Ctrl2_4_Fail";
+            //}
             string url = "";
             if (device.F == "PTL")
             {

+ 66 - 63
TeamAAS-VM/Services/RemoteCommandService.cs

@@ -1631,7 +1631,7 @@ namespace TeamAAS_VP.Services
         /// 执行相机拍照并运行 ToolBlock,返回是否成功并通过 out 参数返回 Outputs。
         /// 该方法会发布 RenderUpdateNotification 以更新 UI。
         /// </summary>
-        public bool ExecutePhoto2(ProcedureModel procedure, Dictionary<string, string> InputTerminal, out CogToolBlockTerminalCollection outputCollection)
+        public  bool  ExecutePhoto2(ProcedureModel procedure, Dictionary<string, string> InputTerminal, out CogToolBlockTerminalCollection outputCollection)
         {
             try
             {
@@ -1665,6 +1665,7 @@ namespace TeamAAS_VP.Services
                 // 2. 为ToolBlock传入其他输入终端
                 if (InputTerminal != null)
                 {
+                    
                     LogHelper.WriteLogInfo($"为ToolBlock传入输入终端");
                     foreach (var item in InputTerminal)
                     {
@@ -2210,22 +2211,22 @@ namespace TeamAAS_VP.Services
                     {
                         if (i == 1)
                         {
-                            bool isSucceed = false;
-                            isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(0, procedure.Photo1Light1);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道1亮度{procedure.Photo1Light1}失败!");
-                            }
-                            isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(1, procedure.Photo1Light2);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道2亮度{procedure.Photo1Light2}失败!");
-                            }
-                            isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(2, procedure.Photo1Light3);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道3亮度{procedure.Photo1Light3}失败!");
-                            }
+                            //bool isSucceed = false;
+                            //isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(0, procedure.Photo1Light1);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道1亮度{procedure.Photo1Light1}失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(1, procedure.Photo1Light2);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道2亮度{procedure.Photo1Light2}失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(2, procedure.Photo1Light3);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道3亮度{procedure.Photo1Light3}失败!");
+                            //}
                             bool succed = camera.SetExposureTime(procedure.ExposureTime);
                             if (!succed)
                             {
@@ -2237,46 +2238,48 @@ namespace TeamAAS_VP.Services
                                 SendTaskMessage($"相机增益设置失败!", MessageLevel.Error);
                             }
                             image = camera.Grab();
-                            isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(0);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道0关闭失败!");
-                            }
-                            isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(1);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道1关闭失败!");
-                            }
-                            isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(2);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道2关闭失败!");
-                            }
+                            //isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(0);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道0关闭失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(1);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道1关闭失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(2);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道2关闭失败!");
+                            //}
 
                         }
                         else if (i == 2)
                         {
-                            bool isSucceed = false;
-                            isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(0, procedure.Photo2Light1);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道1亮度{procedure.Photo2Light1}失败!");
-                            }
-                            isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(1, procedure.Photo2Light2);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道2亮度{procedure.Photo2Light2}失败!");
-                            }
-                            isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(2, procedure.Photo2Light3);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道3亮度{procedure.Photo2Light3}失败!");
-                            }
+                            //bool isSucceed = false;
+                            //isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(0, procedure.Photo2Light1);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道1亮度{procedure.Photo2Light1}失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(1, procedure.Photo2Light2);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道2亮度{procedure.Photo2Light2}失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(2, procedure.Photo2Light3);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道3亮度{procedure.Photo2Light3}失败!");
+                            //}
+                            SendTaskMessage($"开始设置相机曝光!", MessageLevel.Info);
                             bool succed = camera.SetExposureTime(procedure.ExposureTime2);
                             if (!succed)
                             {
                                 SendTaskMessage($"相机曝光设置失败!", MessageLevel.Error);
                             }
+                            SendTaskMessage($"开始设置相机增益!", MessageLevel.Info);
                             succed = camera.SetGain(procedure.Gain2);
                             if (!succed)
                             {
@@ -2284,21 +2287,21 @@ namespace TeamAAS_VP.Services
                             }
                             image2 = camera.Grab();
                             
-                            isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(0);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道0关闭失败!");
-                            }
-                            isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(1);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道1关闭失败!");
-                            }
-                            isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(2);
-                            if (!isSucceed)
-                            {
-                                LogHelper.WriteLogInfo($"设置光源通道2关闭失败!");
-                            }
+                            //isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(0);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道0关闭失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(1);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道1关闭失败!");
+                            //}
+                            //isSucceed = await _lightManagerService.TurnOffGlobalChannelAsync(2);
+                            //if (!isSucceed)
+                            //{
+                            //    LogHelper.WriteLogInfo($"设置光源通道2关闭失败!");
+                            //}
                         }
 
                     }

+ 1 - 1
TeamAAS-VM/Views/HomeView.xaml

@@ -472,7 +472,7 @@
                                FontWeight="Bold"
                                FontSize="{DynamicResource Font.Size.Body2}"
                                VerticalAlignment="Center" />
-                    <TextBlock Text="{Binding CTTotalSeconds,StringFormat={}{0:F2} s}"
+                    <TextBlock Text="{Binding management.CTtime,StringFormat={}{0:F2} s}"
                                FontSize="{DynamicResource Font.Size.Body3}"
                                VerticalAlignment="Center"
                                Margin="10,0" />

+ 3 - 0
TeamAAS-VM/Views/SettingView.xaml

@@ -777,6 +777,9 @@
                                     <CheckBox Content="是否保存ppid"
                                   IsChecked="{Binding SelectDeviceInfo.SaveCsvPPID, Mode=TwoWay}"
                                   Margin="6,2" />
+                                    <CheckBox Content="是否启用键盘相邻键保存差值"
+                                  IsChecked="{Binding SelectDeviceInfo.SaveCsvkeyData, Mode=TwoWay}"
+                                  Margin="6,2"/>
                                 </StackPanel>
                                 <TextBlock Grid.Row="14"
                                Grid.Column="0"