From 5d14fa61f9f859a921fbe3ba6226a53a6954f9f7 Mon Sep 17 00:00:00 2001 From: lhiven Date: Thu, 19 Jun 2025 09:34:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rs.DeweyTester/Commom/BarCodeHelper.cs | 24 ++++++ .../Flow/NormalFlow/DischargeFlow.cs | 73 +++++++++++++------ Rs.DeweyTester/Flow/NormalFlow/GrrFlow.cs | 11 +-- Rs.DeweyTester/Properties/AssemblyInfo.cs | 2 +- Rs.DeweyTester/Rs.DeweyTester.csproj | 1 + 5 files changed, 82 insertions(+), 29 deletions(-) create mode 100644 Rs.DeweyTester/Commom/BarCodeHelper.cs diff --git a/Rs.DeweyTester/Commom/BarCodeHelper.cs b/Rs.DeweyTester/Commom/BarCodeHelper.cs new file mode 100644 index 0000000..f021b39 --- /dev/null +++ b/Rs.DeweyTester/Commom/BarCodeHelper.cs @@ -0,0 +1,24 @@ +using Rs.Framework; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Rs.MotionPlat.Commom +{ + public static class BarCodeHelper + { + public static bool CheckSnLength(string sn) + { + //string reg = "^[ABCDEFGHJKLMNPQRSTUVWXYZ 0-9 + -]+$"; + string reg = "^[A-Z 0-9 + -]+$"; + if (Regex.IsMatch(sn, reg)) + { + return true; + } + return false; + } + } +} diff --git a/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs b/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs index a4d4ebe..4f083eb 100644 --- a/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs +++ b/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs @@ -21,6 +21,7 @@ using System.Linq; using System.Net.Http; using System.Runtime.CompilerServices; using System.Text; +using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; @@ -383,9 +384,25 @@ namespace Rs.MotionPlat.Flow { if((ret!= null && ret.Result== EOneGrabSixteenResult.Ok) ||(ret!=null &&ret.Result== EOneGrabSixteenResult.LocationOkScanBarcodeFail && GlobalVar.EnableVirtualBarCode) || GlobalVar.RunSpace) { - StockTakeFlow.Instance.Take( ETrayType.Input, takeSlotIndex, NozzleManager.GetIdelNozzle().NozzleIndex); - takeSlotIndex++; - flowStep = EDischargeFlowStep.判断是否需要从料仓取料; + if(BarCodeHelper.CheckSnLength(ret.SN)|| GlobalVar.RunSpace || (ret != null && ret.Result == EOneGrabSixteenResult.LocationOkScanBarcodeFail && GlobalVar.EnableVirtualBarCode)) + { + StockTakeFlow.Instance.Take(ETrayType.Input, takeSlotIndex, NozzleManager.GetIdelNozzle().NozzleIndex); + takeSlotIndex++; + flowStep = EDischargeFlowStep.判断是否需要从料仓取料; + } + else + { + LogHelper.Debug(GetClassName() + $"检测到二维码={ret.SN}长度和设置的长度={GlobalVar.BarcodeLength}不一致"); + Nozzle idleNozzle = NozzleManager.GetIdelNozzle(); + StockTakeFlow.Instance.Take(ETrayType.Input, ret.SlotIndex, idleNozzle.NozzleIndex); + if (NozzleManager.GetNozzle(idleNozzle.NozzleIndex).Product != null) + { + //NozzleManager.GetNozzle(idleNozzle.NozzleIndex).Product.SN = "SLK11111111PNK60X"; + NozzleManager.GetNozzle(idleNozzle.NozzleIndex).Product.SN = ScanFailNGHelper.GetSn(); + } + takeSlotIndex++; + flowStep = EDischargeFlowStep.判断是否需要从料仓取料; + } } else { @@ -412,6 +429,7 @@ namespace Rs.MotionPlat.Flow { LogHelper.Debug(GetClassName() + $"{JsonConvert.SerializeObject(fixtureret)}"); //if (fixtureret.SN.Length == GlobalVar.BarcodeLength) + if(BarCodeHelper.CheckSnLength(fixtureret.SN)) { try { @@ -429,25 +447,35 @@ namespace Rs.MotionPlat.Flow Msg.ShowError(ex.Message); } } - //else - //{ - // try - // { - // LogHelper.Debug(GetClassName() + "检测到二维码长度和设置的长度不一致,弹框报警"); - // //报警弹框 - // alarmEntity = AlarmCollection.Get(AlarmConstID.二维码长度异常报警).Transform(ret.SlotIndex); - // EButtonType buttonSelect = Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true); - // if (buttonSelect == EButtonType.Retry) - // { - // logInfo = GetClassName() + "选择了重试"; - // MessageQueue.Instance.Insert(logInfo); - // } - // } - // catch (Exception ex) - // { - // Msg.ShowError(ex.Message); - // } - //} + else + { + try + { + LogHelper.Debug(GetClassName() + $"检测到二维码={fixtureret.SN}长度和设置的长度={GlobalVar.BarcodeLength}不一致"); + Nozzle idleNozzle = NozzleManager.GetIdelNozzle(); + StockTakeFlow.Instance.Take(ETrayType.Input, ret.SlotIndex, idleNozzle.NozzleIndex); + if (NozzleManager.GetNozzle(idleNozzle.NozzleIndex).Product != null) + { + //NozzleManager.GetNozzle(idleNozzle.NozzleIndex).Product.SN = "SLK11111111PNK60X"; + NozzleManager.GetNozzle(idleNozzle.NozzleIndex).Product.SN = ScanFailNGHelper.GetSn(); + } + takeSlotIndex++; + exit = true; + flowStep = EDischargeFlowStep.判断是否需要从料仓取料; + ////报警弹框 + //alarmEntity = AlarmCollection.Get(AlarmConstID.二维码长度异常报警).Transform(ret.SlotIndex); + //EButtonType buttonSelect = Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true); + //if (buttonSelect == EButtonType.Retry) + //{ + // logInfo = GetClassName() + "选择了重试"; + // MessageQueue.Instance.Insert(logInfo); + //} + } + catch (Exception ex) + { + Msg.ShowError(ex.Message); + } + } } else if (fixtureret != null && fixtureret.Result == EOneGrabSixteenResult.LocationOkScanBarcodeFail) { @@ -1198,5 +1226,4 @@ namespace Rs.MotionPlat.Flow } } } - } diff --git a/Rs.DeweyTester/Flow/NormalFlow/GrrFlow.cs b/Rs.DeweyTester/Flow/NormalFlow/GrrFlow.cs index 97357f4..997b6fc 100644 --- a/Rs.DeweyTester/Flow/NormalFlow/GrrFlow.cs +++ b/Rs.DeweyTester/Flow/NormalFlow/GrrFlow.cs @@ -278,14 +278,15 @@ namespace Rs.MotionPlat.Flow if ((vProductResult != null && vProductResult.Result == EOneGrabSixteenResult.Ok) || GlobalVar.RunSpace) { //if(vProductResult.SN.Length==GlobalVar.BarcodeLength) + if(BarCodeHelper.CheckSnLength(vProductResult.SN) || GlobalVar.RunSpace) { flowStep = EGrrFlowStep.到料仓取料位上方; } - //else - //{ - // alarmEntity = AlarmCollection.Get(AlarmConstID.二维码长度异常报警); - // Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true); - //} + else + { + alarmEntity = AlarmCollection.Get(AlarmConstID.二维码长度异常报警); + Msgbox.ShowDialog(alarmEntity, EButtonType.Retry, true); + } } else if (vProductResult != null && vProductResult.Result == EOneGrabSixteenResult.LocationOkScanBarcodeFail) { diff --git a/Rs.DeweyTester/Properties/AssemblyInfo.cs b/Rs.DeweyTester/Properties/AssemblyInfo.cs index 86be4aa..385fcaa 100644 --- a/Rs.DeweyTester/Properties/AssemblyInfo.cs +++ b/Rs.DeweyTester/Properties/AssemblyInfo.cs @@ -31,6 +31,6 @@ using System.Runtime.InteropServices; // //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 //通过使用 "*",如下所示: - [assembly: AssemblyVersion("20.25.38.1")] + [assembly: AssemblyVersion("20.25.39.1")] //[assembly: AssemblyVersion("1.0.0.0")] //[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Rs.DeweyTester/Rs.DeweyTester.csproj b/Rs.DeweyTester/Rs.DeweyTester.csproj index e4c10cc..6f9bb25 100644 --- a/Rs.DeweyTester/Rs.DeweyTester.csproj +++ b/Rs.DeweyTester/Rs.DeweyTester.csproj @@ -135,6 +135,7 @@ +