diff --git a/WCS.BLL/HardWare/SmartShelfModule.cs b/WCS.BLL/HardWare/SmartShelfModule.cs index 5720228..e8a4810 100644 --- a/WCS.BLL/HardWare/SmartShelfModule.cs +++ b/WCS.BLL/HardWare/SmartShelfModule.cs @@ -122,12 +122,22 @@ namespace WCS.BLL.HardWare .OrderBy(t => t.LightNumber) .ToList(); char[] data = "0000000000000000".ToCharArray(); + + //禁用 + char[] dataBan = "0000000000000000".ToCharArray(); + var boardStoreNumber = storeInfos.Count(); foreach (var storeInfo in storeInfos) { if (!string.IsNullOrEmpty(storeInfo.CurrentMatSn) && storeInfo.LightNumber > 0 && storeInfo.LightNumber <= boardStoreNumber) { data[storeInfo.LightNumber - 1] = '1'; + + //禁用 + if (storeInfo.CurrentMatSn == "禁用") + { + dataBan[storeInfo.LightNumber - 1] = '1'; + } } } var dataStr = string.Join("", data.Reverse()); @@ -136,6 +146,13 @@ namespace WCS.BLL.HardWare GoInInstoreData[1] = Convert.ToByte(data1, 2); GoInInstoreData[2] = Convert.ToByte(data2, 2); + //禁用 + var dataBanStr = string.Join("", dataBan.Reverse()); + var data1Ban = dataBanStr.Substring(8, 8); + var data2Ban = dataBanStr.Substring(0, 8); + GoInInstoreData[6] = Convert.ToByte(data1Ban, 2); + GoInInstoreData[7] = Convert.ToByte(data2Ban, 2); + tcpClient.Send(tcpClient.GenerateMessage(BoardId, GoInInstoreData)); } @@ -187,12 +204,21 @@ namespace WCS.BLL.HardWare .OrderBy(t => t.LightNumber) .ToList(); char[] data = "0000000000000000".ToCharArray(); + //禁用功能 + char[] dataBan = "0000000000000000".ToCharArray(); + var boardStoreNumber = storeInfos.Count(); foreach (var storeInfo in storeInfos) { if (!string.IsNullOrEmpty(storeInfo.CurrentMatSn) && storeInfo.LightNumber > 0 && storeInfo.LightNumber <= boardStoreNumber) { data[storeInfo.LightNumber - 1] = '1'; + + //禁用功能 + if (storeInfo.CurrentMatSn == "禁用") + { + dataBan[storeInfo.LightNumber - 1] = '1'; + } } } var dataStr = string.Join("", data.Reverse()); @@ -201,6 +227,13 @@ namespace WCS.BLL.HardWare CheckModeData[1] = Convert.ToByte(data1, 2); CheckModeData[2] = Convert.ToByte(data2, 2); + //禁用功能 + var dataBanStr = string.Join("", dataBan.Reverse()); + var data1Ban = dataBanStr.Substring(8, 8); + var data2Ban = dataBanStr.Substring(0, 8); + CheckModeData[6] = Convert.ToByte(data1Ban, 2); + CheckModeData[7] = Convert.ToByte(data2Ban, 2); + tcpClient.Send(tcpClient.GenerateMessage(BoardId, CheckModeData)); } @@ -218,12 +251,21 @@ namespace WCS.BLL.HardWare .ToList(); //计算物料在库的库位 char[] data = "0000000000000000".ToCharArray(); + + //计算禁用的库位 + char[] dataBan = "0000000000000000".ToCharArray(); + var storeNumber = storeInfos.Count(); foreach (var storeInfo in storeInfos) { if (!string.IsNullOrEmpty(storeInfo.CurrentMatSn) && storeInfo.LightNumber > 0 && storeInfo.LightNumber <= storeNumber) { data[storeInfo.LightNumber - 1] = '1'; + //禁用 + if (storeInfo.CurrentMatSn == "禁用") + { + dataBan[storeInfo.LightNumber - 1] = '1'; + } } } var dataStr = string.Join("", data.Reverse()); @@ -232,6 +274,13 @@ namespace WCS.BLL.HardWare GoInOutstoreModeData[1] = Convert.ToByte(data1, 2); GoInOutstoreModeData[2] = Convert.ToByte(data2, 2); + //禁用 + var dataBanStr = string.Join("", dataBan.Reverse()); + var data1Ban = dataBanStr.Substring(8, 8); + var data2Ban = dataBanStr.Substring(0, 8); + GoInOutstoreModeData[6] = Convert.ToByte(data1Ban, 2); + GoInOutstoreModeData[7] = Convert.ToByte(data2Ban, 2); + //出库位置亮灯 if (outSns != null && outSns.Count > 0) {