From 78f476ec9ce7770326dbfdb5ab2a70c800219870 Mon Sep 17 00:00:00 2001 From: hehaibing-1996 Date: Wed, 16 Apr 2025 18:48:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E7=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WCS.BLL/HardWare/SingleLightShelf.cs | 29 ++++++++------ WCS.BLL/Tool/Helper.cs | 39 ++++++++++--------- .../Controllers/SingleLightController.cs | 9 +++-- 3 files changed, 43 insertions(+), 34 deletions(-) diff --git a/WCS.BLL/HardWare/SingleLightShelf.cs b/WCS.BLL/HardWare/SingleLightShelf.cs index ff14c1b..177b251 100644 --- a/WCS.BLL/HardWare/SingleLightShelf.cs +++ b/WCS.BLL/HardWare/SingleLightShelf.cs @@ -219,8 +219,11 @@ namespace WCS.BLL.HardWare shelfModel.WarningBoardId = shelfInfo.LightId; shelfModel.ClientIp = ClientIp; shelfModel.StoreList = new List(); + + Logs.Write($"[单灯后台刷新线程]亮灯任务数量{currentTasks.Count}!"); currentTasks.ForEach(task => { + Logs.Write($"[单灯后台刷新线程]亮灯任务{task.ModuleCode}!"); var module = MXL4Modules.Where(t => t.ModuleCode == task.ModuleCode).First(); if (module != null) { @@ -406,19 +409,23 @@ namespace WCS.BLL.HardWare var tcpClient = TCPClientManager.Service.GetClients().Where(t => t.IP + ":" + t.Port.ToString() == ClientIp).FirstOrDefault(); if (tcpClient != null) { - try + lock (tcpClient) { - tcpClient.Send(sendData, 0, sendData.Length); - Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData)); - } - catch (Exception ex) - { - Logs.Write($"【单灯单独控制】{client}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData)); - return new ResponseCommon() + try { - Code = 201, - Message = $"【单灯单独控制】{client}指令发送中遇到异常{ex.Message}", - }; + tcpClient.Send(sendData, 0, sendData.Length); + Logs.Write("【单灯单独控制】发送指令" + BitConverter.ToString(sendData)); + } + catch (Exception ex) + { + Logs.Write($"【单灯单独控制】{client}以下指令发送中遇到异常{ex.Message}" + BitConverter.ToString(sendData)); + return new ResponseCommon() + { + Code = 201, + Message = $"【单灯单独控制】{client}指令发送中遇到异常{ex.Message}", + }; + } + Thread.Sleep(100); } } else diff --git a/WCS.BLL/Tool/Helper.cs b/WCS.BLL/Tool/Helper.cs index 305b571..4fcadae 100644 --- a/WCS.BLL/Tool/Helper.cs +++ b/WCS.BLL/Tool/Helper.cs @@ -352,25 +352,6 @@ namespace WCS.BLL.Tool var lightCount = 0; foreach (var shelf in shelfs) { - //6个报警灯需要发送指令 - - if (shelf.WarningLightMode != -1) - { - for (int i = 0; i < 6; i++) - { - var singleLightData = GenerateSingleLightData(shelf.WarningBoardId + i, shelf.WarningLightMode, shelf.WarningLightColor); - lightCount++; - dataBase = dataBase.Concat(singleLightData).ToArray(); - } - } - //蜂鸣器需要发送指令 - if (shelf.WarningLightMode == 3)//单灯短亮一次的情况下 蜂鸣器短鸣一次 - { - var singleLightData = GenerateSingleLightData(shelf.WarningBoardId + 6, 3, shelf.WarningLightColor); - lightCount++; - dataBase = dataBase.Concat(singleLightData).ToArray(); - } - //库位灯指令 if (shelf.StoreList != null && shelf.StoreList.Count > 0) { @@ -384,6 +365,26 @@ namespace WCS.BLL.Tool } } } + //6个报警灯需要发送指令 + + if (shelf.WarningLightMode != -1) + { + for (int i = 0; i < 6; i++) + { + var singleLightData = GenerateSingleLightData(shelf.WarningBoardId + i, shelf.WarningLightMode, shelf.WarningLightColor); + lightCount++; + dataBase = dataBase.Concat(singleLightData).ToArray(); + } + } + //蜂鸣器需要发送指令 + //if (shelf.WarningLightMode == 3)//单灯短亮一次的情况下 蜂鸣器短鸣一次 + //{ + // var singleLightData = GenerateSingleLightData(shelf.WarningBoardId + 6, 3, shelf.WarningLightColor); + // lightCount++; + // dataBase = dataBase.Concat(singleLightData).ToArray(); + //} + + } byte[] length_base = BitConverter.GetBytes(dataBase.Length + 2); diff --git a/WCS.WebApi/Controllers/SingleLightController.cs b/WCS.WebApi/Controllers/SingleLightController.cs index 7c9d494..ef2a0b6 100644 --- a/WCS.WebApi/Controllers/SingleLightController.cs +++ b/WCS.WebApi/Controllers/SingleLightController.cs @@ -124,7 +124,8 @@ namespace WCS.WebApi.Controllers if (row == 1) { //之前已经占用的id - var id = (shelf.Rowcounts - 1) * (shelf.Columncounts + 7); + var id = (shelf.Rowcounts - 1) * (shelf.Columncounts + 6); + //奇数行 灯Id是最后一个灯 for (int i = shelf.Columncounts; i > 0; i--) { @@ -177,11 +178,11 @@ namespace WCS.WebApi.Controllers else { //之前已经占用的id - var id = (shelf.Rowcounts - 1) * (shelf.Columncounts + 7); + var id = (shelf.Rowcounts - 1) * (shelf.Columncounts + 6); shelf.LightId = ++id; - //灯占7个ID - id = id + 6; + //灯占6个ID + id = id + 5; //奇数行 灯Id是最后一个灯 for (int i = 1; i <= shelf.Columncounts; i++) {