From 7f42a3ef9bc83bdc199317d12c1905d8696dac4f Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期三, 20 八月 2025 17:23:05 +0800 Subject: [PATCH] 代码提交 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs | 574 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 350 insertions(+), 224 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs" index cb98ede..fe706e0 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs" @@ -20,10 +20,13 @@ using Newtonsoft.Json; using SixLabors.ImageSharp.ColorSpaces; using System; +using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Security.Claims; using System.Text; using System.Threading.Tasks; +using WIDESEA_Common.Log; using WIDESEAWCS_BasicInfoRepository; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; @@ -73,6 +76,7 @@ public WebResponseContent StackerHandTask(HandTask stackerhand) { + WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write(JsonConvert.SerializeObject(stackerhand), "鍫嗗灈鏈烘墜鍔ㄤ换鍔�"); WebResponseContent content = new WebResponseContent(); try { @@ -90,8 +94,8 @@ if (sourceCodes.Length == 3) { stackerCraneTaskCommand.StartRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(sourceCodes[0]))); - stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[1]); - stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[1]); } else { @@ -102,8 +106,8 @@ if (targetCodes.Length == 3) { stackerCraneTaskCommand.EndRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(targetCodes[0]))); - stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[1]); - stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[1]); } else { @@ -117,8 +121,8 @@ if (sourceCodes.Length == 3) { stackerCraneTaskCommand.StartRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(sourceCodes[0]))); - stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[1]); - stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[1]); } else { @@ -128,8 +132,8 @@ if (targetCodes.Length == 3) { stackerCraneTaskCommand.EndRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(targetCodes[0]))); - stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[1]); - stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[1]); } else { @@ -143,8 +147,8 @@ if (sourceCodes.Length == 3) { stackerCraneTaskCommand.StartRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(sourceCodes[0]))); - stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[1]); - stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[1]); } else { @@ -155,8 +159,8 @@ if (targetCodes.Length == 3) { stackerCraneTaskCommand.EndRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(targetCodes[0]))); - stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[1]); - stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[1]); } else { @@ -170,8 +174,8 @@ if (sourceCodes.Length == 3) { stackerCraneTaskCommand.StartRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(sourceCodes[0]))); - stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[1]); - stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartColumn = (byte)Convert.ToSByte(sourceCodes[2]); + stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(sourceCodes[1]); stackerCraneTaskCommand.EndRow = (byte)Convert.ToSByte(0); stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(0); @@ -193,8 +197,8 @@ stackerCraneTaskCommand.StartLayer = (byte)Convert.ToSByte(0); stackerCraneTaskCommand.EndRow = (byte)Convert.ToSByte(GetRowCode(Convert.ToInt32(targetCodes[0]))); - stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[1]); - stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndColumn = (byte)Convert.ToSByte(targetCodes[2]); + stackerCraneTaskCommand.EndLayer = (byte)Convert.ToSByte(targetCodes[1]); } else { @@ -205,8 +209,10 @@ { return content.Error("鏈壘鍒颁换鍔″懡浠�"); } + StackerSendCommand(stackerCraneTaskCommand, stackerhand.DeviceCode); - return content; + + return content.OK("鍛戒护涓嬪彂鎴愬姛锛�"); } catch (Exception ex) { @@ -216,6 +222,7 @@ public WebResponseContent StackerReset(string DeviceCode) { + WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write($"銆愬浣嶅懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "鍫嗗灈鏈烘墜鍔ㄤ换鍔�"); WebResponseContent content = new WebResponseContent(); try { @@ -225,7 +232,14 @@ { CommonStackerCrane commonStackerCrane = (CommonStackerCrane)device; - commonStackerCrane.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(2)); + //commonStackerCrane.SetValue(StackerCraneDBName.WorkType, Convert.ToSByte(2)); + DeviceProDTO? devicePro = commonStackerCrane.DeviceProDTOs.Where(x => x.DeviceChildCode == commonStackerCrane.DeviceCode && x.DeviceProParamName == "WorkType").FirstOrDefault(); + + byte valueToWrite = 2; + + byte[] buffer = new byte[] { valueToWrite }; + + commonStackerCrane.Communicator.Write(devicePro.DeviceProAddress, buffer); return content.OK(); } else @@ -241,6 +255,7 @@ public WebResponseContent StackerEmergencyStop(string DeviceCode) { + WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write($"銆愭�ュ仠鍛戒护銆憑JsonConvert.SerializeObject(DeviceCode)}", "鍫嗗灈鏈烘墜鍔ㄤ换鍔�"); WebResponseContent content = new WebResponseContent(); try { @@ -250,7 +265,45 @@ { CommonStackerCrane commonStackerCrane = (CommonStackerCrane)device; - commonStackerCrane.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(2)); + //commonStackerCrane.SetValue(StackerCraneDBName.WorkType, Convert.ToSByte(4)); + DeviceProDTO? devicePro = commonStackerCrane.DeviceProDTOs.Where(x => x.DeviceChildCode == commonStackerCrane.DeviceCode && x.DeviceProParamName == "WorkType").FirstOrDefault(); + + byte valueToWrite = 4; + + byte[] buffer = new byte[] { valueToWrite }; + + commonStackerCrane.Communicator.Write(devicePro.DeviceProAddress, buffer); + return content.OK(); + } + else + { + return content.Error("鏈壘鍒拌澶囦俊鎭鑱旂郴IT"); + } + } + catch (Exception ex) + { + return content.Error(ex.Message); + } + } + public WebResponseContent StackerDisconnected(string DeviceCode) + { + WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write($"銆愪腑鏂懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "鍫嗗灈鏈烘墜鍔ㄤ换鍔�"); + WebResponseContent content = new WebResponseContent(); + try + { + IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode); + + if (device != null) + { + CommonStackerCrane commonStackerCrane = (CommonStackerCrane)device; + DeviceProDTO? devicePro = commonStackerCrane.DeviceProDTOs.Where(x => x.DeviceChildCode == commonStackerCrane.DeviceCode && x.DeviceProParamName == "WorkType").FirstOrDefault(); + + byte valueToWrite = 1; + + byte[] buffer = new byte[] { valueToWrite }; + + commonStackerCrane.Communicator.Write(devicePro.DeviceProAddress, buffer); + return content.OK(); } else @@ -282,7 +335,7 @@ commonStackerCrane.SetValue(StackerCraneDBName.StartColumn, command.StartColumn); Thread.Sleep(100); - commonStackerCrane.SetValue(StackerCraneDBName.StartColumn, command.StartLayer); + commonStackerCrane.SetValue(StackerCraneDBName.StartLayer, command.StartLayer); Thread.Sleep(100); commonStackerCrane.SetValue(StackerCraneDBName.EndRow, command.EndRow); @@ -292,11 +345,11 @@ Thread.Sleep(100); commonStackerCrane.SetValue(StackerCraneDBName.EndLayer, command.EndLayer); Thread.Sleep(100); - commonStackerCrane.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(command.WorkType)); + commonStackerCrane.SetValue(StackerCraneDBName.WorkType, Convert.ToSByte(command.WorkType)); } else { - throw new Exception("璇峰湪鍫嗗灈鏈鸿仈鏈烘ā寮忋�佸緟鏈虹姸鎬併�佹棤鏁呴殰鐨勬儏鍐典笅涓嬪彂浠诲姟"); + throw new Exception($"璇峰湪{commonStackerCrane.DeviceName}鑱旀満妯″紡銆佸緟鏈虹姸鎬併�佹棤鏁呴殰鐨勬儏鍐典笅涓嬪彂浠诲姟"); } } else @@ -307,19 +360,19 @@ public int GetRowCode(int number) { - if (number == 1 || number == 15 || number == 11 || number == 19) + if (number == 1 || number == 15 || number == 11 || number == 18) { return 1; } - else if (number == 2 || number == 5 || number == 8 || number == 12 || number == 16 || number == 20) + else if (number == 2 || number == 5 || number == 8 || number == 12 || number == 16 || number == 19) { return 2; } - else if (number == 3 || number == 6 || number == 9 || number == 13 || number == 17 || number == 21) + else if (number == 3 || number == 6 || number == 9 || number == 13 || number == 17 || number == 20) { return 3; } - else if (number == 4 || number == 7 || number == 10 || number == 14 || number == 18 || number == 22) + else if (number == 4 || number == 7 || number == 10 || number == 14 || number == 21) { return 4; } @@ -525,7 +578,7 @@ { InStock = structs[2] == true ? "鏈夎揣" : "绌洪棽", TaskNum = ConveyorLineTaskNum.ToString(), - Alarm = AlarmInfo(ConveyorLineAlarm) + Alarm = GetAlarm(ConveyorLineAlarm) }; return content.OK(data:obj); } @@ -540,6 +593,7 @@ public WebResponseContent ConveyorLineHandTask(HandTask ConveyorLinehand) { + WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write(JsonConvert.SerializeObject(ConveyorLinehand), "杈撻�佺嚎鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -554,6 +608,12 @@ if (device != null) { CommonConveyorLine conveyorLine = (CommonConveyorLine)device; + short x = conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.InteractiveSignal, stationManager.stationChildCode); + var structs = BitConverter.GetBytes(x).ToArray().ToBoolArray(); + if (!structs[2]) + { + return content.Error($"璇峰湪{stationManager.stationChildCode}杈撻�佺嚎灏辩华鎯呭喌涓嬩笅鍙戝懡浠�"); + } //鍏ュ簱 if (ConveyorLinehand.TaskType == "1") { @@ -590,6 +650,7 @@ public WebResponseContent ConveyorLineReset(string DeviceChildCode) { + WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愬浣嶅懡浠ゃ�憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -614,6 +675,7 @@ public WebResponseContent ConveyorLineEmergencyStop(string DeviceChildCode) { + WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愭�ュ仠鍛戒护銆憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -637,6 +699,7 @@ } public WebResponseContent ConveyorLineReturn(string DeviceChildCode) { + WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愰��鍥炲懡浠ゃ�憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -660,6 +723,7 @@ } public WebResponseContent ConveyorLineCancel(string DeviceChildCode) { + WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愬彇娑堝懡浠ゃ�憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -683,6 +747,7 @@ } public WebResponseContent ConveyorLineInitialize(string DeviceChildCode) { + WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愬垵濮嬪寲鍛戒护銆憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -705,7 +770,22 @@ } } - string AlarmInfo(uint Alarm) => Alarm switch + public string GetAlarm(uint value) + { + byte[] bytes = BitConverter.GetBytes(value); + BitArray bits = new BitArray(bytes); + + for (int i = 0; i < bits.Length; i++) + { + if (bits[i]) + { + return AlarmInfo(i); + } + } + return ""; + } + + string AlarmInfo(int Alarm) => Alarm switch { 0 => "鎬ュ仠", 1 => "鍙橀鍣ㄦ姤璀�1", @@ -723,6 +803,7 @@ 13 => "棰勭暀4", 14 => "棰勭暀5", 15 => "棰勭暀6", + _ => $"鏈煡鎶ヨ({Alarm})" }; public enum ConveyorLineDBName @@ -750,6 +831,7 @@ #region RGV鎵嬪姩鍛戒护 public WebResponseContent RGVHandTask(HandTask RGVhand) { + WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write(JsonConvert.SerializeObject(RGVhand), "RGV鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -763,227 +845,241 @@ if (RGVhand.DeviceCode == "RGV01" || RGVhand.DeviceCode == "RGV02") { CommonRGV_FirstFloor RGVcommand = (CommonRGV_FirstFloor)device; - if (RGVhand.TaskType == "1") + if (RGVcommand.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !RGVcommand.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !RGVcommand.GetValue<RGVDBName, bool>(RGVDBName.Running)) { - if (RGVhand.SourceAddress != null) + if (RGVhand.TaskType == "1") { - RGVTaskCommand command = new RGVTaskCommand() + if (RGVhand.SourceAddress != null) { - PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandFirstFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鍙栧畾浣嶅懡浠や笅鍙戞垚鍔�"); - } - else - { - return content.Error($"{device.DeviceName}鍙栧畾浣嶅懡浠ゅ彇璐т綅涓嶈兘涓虹┖"); - } + RGVTaskCommand command = new RGVTaskCommand() + { + PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandFirstFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鍙栧畾浣嶅懡浠や笅鍙戞垚鍔�"); + } + else + { + return content.Error($"{device.DeviceName}鍙栧畾浣嶅懡浠ゅ彇璐т綅涓嶈兘涓虹┖"); + } - } - else if (RGVhand.TaskType == "2") - { - if (RGVhand.TargetAddress != null) + } + else if (RGVhand.TaskType == "2") { - RGVTaskCommand command = new RGVTaskCommand() + if (RGVhand.TargetAddress != null) { - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandFirstFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鏀惧畾浣嶅懡浠や笅鍙戞垚鍔�"); + RGVTaskCommand command = new RGVTaskCommand() + { + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandFirstFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鏀惧畾浣嶅懡浠や笅鍙戞垚鍔�"); + } + else + { + return content.Error($"{device.DeviceName}鏀惧畾浣嶅懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); + } + } + else if (RGVhand.TaskType == "3") + { + if (RGVhand.SourceAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandFirstFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鍙栬揣鍛戒护涓嬪彂鎴愬姛"); + } + else + { + return content.Error($"{device.DeviceName}鍙栬揣鍛戒护鍙栬揣浣嶄笉鑳戒负绌�"); + } + } + else if (RGVhand.TaskType == "4") + { + if (RGVhand.TargetAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandFirstFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鏀捐揣鍛戒护涓嬪彂鎴愬姛"); + } + else + { + return content.Error($"{device.DeviceName}鏀捐揣鍛戒护鏀捐揣浣嶄笉鑳戒负绌�"); + } + } + else if (RGVhand.TaskType == "5") + { + if (RGVhand.TargetAddress != null && RGVhand.TargetAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandFirstFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鍙栨斁璐у懡浠や笅鍙戞垚鍔�"); + } + else + { + return content.Error($"{device.DeviceName}鍙栨斁璐у懡浠ゆ斁璐т綅鍜屽彇璐т綅涓嶈兘涓虹┖"); + } + } + else if (RGVhand.TaskType == "6") + { + if (RGVhand.TargetAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(4), + }; + SendCommandFirstFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}閫�鍛戒护涓嬪彂鎴愬姛"); + } + else + { + return content.Error($"{device.DeviceName}閫�鍥炲懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); + } } else { - return content.Error($"{device.DeviceName}鏀惧畾浣嶅懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); - } - } - else if (RGVhand.TaskType == "3") - { - if (RGVhand.SourceAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandFirstFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鍙栬揣鍛戒护涓嬪彂鎴愬姛"); - } - else - { - return content.Error($"{device.DeviceName}鍙栬揣鍛戒护鍙栬揣浣嶄笉鑳戒负绌�"); - } - } - else if (RGVhand.TaskType == "4") - { - if (RGVhand.TargetAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandFirstFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鏀捐揣鍛戒护涓嬪彂鎴愬姛"); - } - else - { - return content.Error($"{device.DeviceName}鏀捐揣鍛戒护鏀捐揣浣嶄笉鑳戒负绌�"); - } - } - else if (RGVhand.TaskType == "5") - { - if (RGVhand.TargetAddress != null && RGVhand.TargetAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandFirstFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鍙栨斁璐у懡浠や笅鍙戞垚鍔�"); - } - else - { - return content.Error($"{device.DeviceName}鍙栨斁璐у懡浠ゆ斁璐т綅鍜屽彇璐т綅涓嶈兘涓虹┖"); - } - } - else if (RGVhand.TaskType == "6") - { - if (RGVhand.TargetAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(4), - }; - SendCommandFirstFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}閫�鍛戒护涓嬪彂鎴愬姛"); - } - else - { - return content.Error($"{device.DeviceName}閫�鍥炲懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); + return content.Error($"{device.DeviceName}鏈煡浠诲姟鍛戒护"); } } else { - return content.Error($"{device.DeviceName}鏈煡浠诲姟鍛戒护"); + return content.Error($"璇峰湪鑱旀満妯″紡銆佹棤鏁呴殰銆佸緟鏈虹姸鎬佹椂鍐嶄笅鍙憑RGVcommand.DeviceName}鍛戒护"); } } else { CommonRGV RGVcommand = (CommonRGV)device; - if (RGVhand.TaskType == "1") + if (RGVcommand.GetValue<RGVDBName, bool>(RGVDBName.Automatic) && !RGVcommand.GetValue<RGVDBName, bool>(RGVDBName.Fault) && !RGVcommand.GetValue<RGVDBName, bool>(RGVDBName.Running)) { - if (RGVhand.SourceAddress != null) + if (RGVhand.TaskType == "1") { - RGVTaskCommand command = new RGVTaskCommand() + if (RGVhand.SourceAddress != null) { - PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandSecondFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鍙栧畾浣嶅懡浠や笅鍙戞垚鍔�"); - } - else - { - return content.Error($"{device.DeviceName}鍙栧畾浣嶅懡浠ゅ彇璐т綅涓嶈兘涓虹┖"); - } + RGVTaskCommand command = new RGVTaskCommand() + { + PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandSecondFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鍙栧畾浣嶅懡浠や笅鍙戞垚鍔�"); + } + else + { + return content.Error($"{device.DeviceName}鍙栧畾浣嶅懡浠ゅ彇璐т綅涓嶈兘涓虹┖"); + } - } - else if (RGVhand.TaskType == "2") - { - if (RGVhand.TargetAddress != null) + } + else if (RGVhand.TaskType == "2") { - RGVTaskCommand command = new RGVTaskCommand() + if (RGVhand.TargetAddress != null) { - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandSecondFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鏀惧畾浣嶅懡浠や笅鍙戞垚鍔�"); + RGVTaskCommand command = new RGVTaskCommand() + { + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandSecondFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鏀惧畾浣嶅懡浠や笅鍙戞垚鍔�"); + } + else + { + return content.Error($"{device.DeviceName}鏀惧畾浣嶅懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); + } + } + else if (RGVhand.TaskType == "3") + { + if (RGVhand.SourceAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandSecondFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鍙栬揣鍛戒护涓嬪彂鎴愬姛"); + } + else + { + return content.Error($"{device.DeviceName}鍙栬揣鍛戒护鍙栬揣浣嶄笉鑳戒负绌�"); + } + } + else if (RGVhand.TaskType == "4") + { + if (RGVhand.TargetAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandSecondFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鏀捐揣鍛戒护涓嬪彂鎴愬姛"); + } + else + { + return content.Error($"{device.DeviceName}鏀捐揣鍛戒护鏀捐揣浣嶄笉鑳戒负绌�"); + } + } + else if (RGVhand.TaskType == "5") + { + if (RGVhand.TargetAddress != null && RGVhand.TargetAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandSecondFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}鍙栨斁璐у懡浠や笅鍙戞垚鍔�"); + } + else + { + return content.Error("鍙栨斁璐у懡浠ゆ斁璐т綅鍜屽彇璐т綅涓嶈兘涓虹┖"); + } + } + else if (RGVhand.TaskType == "6") + { + if (RGVhand.TargetAddress != null) + { + RGVTaskCommand command = new RGVTaskCommand() + { + PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), + TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), + }; + SendCommandSecondFloor(RGVcommand, command); + return content.OK($"{device.DeviceName}閫�鍥炲懡浠や笅鍙戞垚鍔�"); + } + else + { + return content.Error($"{device.DeviceName}閫�鍥炲懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); + } } else { - return content.Error($"{device.DeviceName}鏀惧畾浣嶅懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); - } - } - else if (RGVhand.TaskType == "3") - { - if (RGVhand.SourceAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandSecondFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鍙栬揣鍛戒护涓嬪彂鎴愬姛"); - } - else - { - return content.Error($"{device.DeviceName}鍙栬揣鍛戒护鍙栬揣浣嶄笉鑳戒负绌�"); - } - } - else if (RGVhand.TaskType == "4") - { - if (RGVhand.TargetAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandSecondFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鏀捐揣鍛戒护涓嬪彂鎴愬姛"); - } - else - { - return content.Error($"{device.DeviceName}鏀捐揣鍛戒护鏀捐揣浣嶄笉鑳戒负绌�"); - } - } - else if (RGVhand.TaskType == "5") - { - if (RGVhand.TargetAddress != null && RGVhand.TargetAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PickupLocation = (byte)Convert.ToSByte(RGVhand.SourceAddress), - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandSecondFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}鍙栨斁璐у懡浠や笅鍙戞垚鍔�"); - } - else - { - return content.Error("鍙栨斁璐у懡浠ゆ斁璐т綅鍜屽彇璐т綅涓嶈兘涓虹┖"); - } - } - else if (RGVhand.TaskType == "6") - { - if (RGVhand.TargetAddress != null) - { - RGVTaskCommand command = new RGVTaskCommand() - { - PutcargoLocation = (byte)Convert.ToSByte(RGVhand.TargetAddress), - TaskType = (byte)Convert.ToSByte(RGVhand.TaskType), - }; - SendCommandSecondFloor(RGVcommand, command); - return content.OK($"{device.DeviceName}閫�鍥炲懡浠や笅鍙戞垚鍔�"); - } - else - { - return content.Error($"{device.DeviceName}閫�鍥炲懡浠ゆ斁璐т綅涓嶈兘涓虹┖"); + return content.Error($"{device.DeviceName}鏈煡浠诲姟鍛戒护"); } } else { - return content.Error($"{device.DeviceName}鏈煡浠诲姟鍛戒护"); + return content.Error($"璇峰湪鑱旀満妯″紡銆佹棤鏁呴殰銆佸緟鏈虹姸鎬佹椂鍐嶄笅鍙憑RGVcommand.DeviceName}鍛戒护"); } - } + } } return content.Error("鏈壘鍒拌澶囦俊鎭鑱旂郴IT"); } @@ -995,6 +1091,7 @@ public WebResponseContent RGVReset(string DeviceCode) { + WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬浣嶅懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -1004,12 +1101,12 @@ if (DeviceCode == "RGV01" || DeviceCode == "RGV02") { CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; - commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); + commonRGV.SetValue(RGVDBName.TaskType, Convert.ToSByte(9)); } else { CommonRGV commonRGV = (CommonRGV)device; - commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); + commonRGV.SetValue(RGVDBName.TaskType, Convert.ToSByte(9)); } return content.OK($"{device.DeviceName}澶嶄綅鎴愬姛"); } @@ -1023,6 +1120,7 @@ public WebResponseContent RGVEmergencyStop(string DeviceCode) { + WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愭�ュ仠鍛戒护銆憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -1050,6 +1148,7 @@ } public WebResponseContent RGVCancel(string DeviceCode) { + WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬彇娑堜换鍔″懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -1077,6 +1176,7 @@ } public WebResponseContent RGVInitialize(string DeviceCode) { + WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬垵濮嬪寲鍛戒护銆憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -1088,15 +1188,21 @@ { CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; DeviceProDTO? devicePro = commonRGV.DeviceProDTOs.Where(x => x.DeviceChildCode == commonRGV.DeviceCode && x.DeviceProParamName == "TaskType").FirstOrDefault(); - byte[] byt = Encoding.UTF8.GetBytes("08"); - commonRGV.Communicator.Write(devicePro.DeviceProAddress, byt); + //byte[] byt = Encoding.UTF8.GetBytes("08"); + byte valueToWrite = 8; + + byte[] buffer = new byte[] { valueToWrite }; + + commonRGV.Communicator.Write(devicePro.DeviceProAddress, buffer); } else { CommonRGV commonRGV = (CommonRGV)device; DeviceProDTO? devicePro = commonRGV.DeviceProDTOs.Where(x => x.DeviceChildCode == commonRGV.DeviceCode && x.DeviceProParamName == "TaskType").FirstOrDefault(); - byte[] byt = Encoding.UTF8.GetBytes("8"); - commonRGV.Communicator.Write(devicePro.DeviceProAddress, byt); + byte valueToWrite = 8; + + byte[] buffer = new byte[] { valueToWrite }; + commonRGV.Communicator.Write(devicePro.DeviceProAddress, buffer); } return content.OK($"{device.DeviceName}鍒濆鍖栨垚鍔�"); } @@ -1110,6 +1216,7 @@ public WebResponseContent RGVPause(string DeviceCode) { + WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬仠姝㈠懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟"); WebResponseContent content = new WebResponseContent(); try { @@ -1140,7 +1247,7 @@ public void SendCommandFirstFloor(CommonRGV_FirstFloor commonRGV, RGVTaskCommand? rgvTaskCommand) { - commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(1)); + commonRGV.SetValue(RGVDBName.TaskNum, Convert.ToInt16(1)); Thread.Sleep(100); commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, (byte)Convert.ToSByte(rgvTaskCommand.PutcargoLocation)); Thread.Sleep(100); @@ -1194,6 +1301,25 @@ #endregion <Public Menber> } + public enum RGVDBName + { + SendTask, + Automatic, + WorkCompleted, + Running, + Fault, + InStock, + RGVTargetAddress, + RGVTaskNum, + PickupLocation, + PutcargoLocation, + TaskType, + TaskNum, + LevelPoint, + CurrentTaskNum, + RGVAlarm, + } + #endregion } } -- Gitblit v1.9.3