| | |
| | | using AutoMapper; |
| | | using HslCommunication; |
| | | using Newtonsoft.Json; |
| | | using SixLabors.ImageSharp.ColorSpaces; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode); |
| | | return content.OK("忢æå"); |
| | | return content.OK("éåæå"); |
| | | } |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(4), stationManager.stationChildCode); |
| | | return content.OK("忢æå"); |
| | | return content.OK("åæ¶æå"); |
| | | } |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(6), stationManager.stationChildCode); |
| | | return content.OK("忢æå"); |
| | | return content.OK("åå§åæå"); |
| | | } |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | |
| | | #endregion |
| | | |
| | | #region RGVæå¨å½ä»¤ |
| | | public WebResponseContent RGVHandTask(HandTask RGVhand) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (RGVhand == null || RGVhand.TaskType == "") |
| | | { |
| | | return content.Error("请è¾å
¥ä»»å¡å½ä»¤"); |
| | | } |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == RGVhand.DeviceCode); |
| | | if (device != null) |
| | | { |
| | | if (RGVhand.DeviceCode == "RGV01" || RGVhand.DeviceCode == "RGV02") |
| | | { |
| | | CommonRGV_FirstFloor RGVcommand = (CommonRGV_FirstFloor)device; |
| | | if (RGVhand.TaskType == "1") |
| | | { |
| | | 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 == "2") |
| | | { |
| | | 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 == "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(RGVhand.TaskType), |
| | | }; |
| | | SendCommandFirstFloor(RGVcommand, command); |
| | | return content.OK($"{device.DeviceName}éå½ä»¤ä¸åæå"); |
| | | } |
| | | else |
| | | { |
| | | return content.Error($"{device.DeviceName}éåå½ä»¤æ¾è´§ä½ä¸è½ä¸ºç©º"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return content.Error($"{device.DeviceName}æªç¥ä»»å¡å½ä»¤"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | CommonRGV RGVcommand = (CommonRGV)device; |
| | | if (RGVhand.TaskType == "1") |
| | | { |
| | | 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 == "2") |
| | | { |
| | | 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 == "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}æªç¥ä»»å¡å½ä»¤"); |
| | | } |
| | | } |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent RGVReset(string DeviceCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode); |
| | | if (device != null) |
| | | { |
| | | if (DeviceCode == "RGV01" || DeviceCode == "RGV02") |
| | | { |
| | | CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); |
| | | } |
| | | else |
| | | { |
| | | CommonRGV commonRGV = (CommonRGV)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); |
| | | } |
| | | return content.OK($"{device.DeviceName}å¤ä½æå"); |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent RGVEmergencyStop(string DeviceCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode); |
| | | if (device != null) |
| | | { |
| | | if (DeviceCode == "RGV01" || DeviceCode == "RGV02") |
| | | { |
| | | CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(11)); |
| | | } |
| | | else |
| | | { |
| | | CommonRGV commonRGV = (CommonRGV)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(11)); |
| | | } |
| | | return content.OK($"{device.DeviceName}忢æå"); |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | public WebResponseContent RGVCancel(string DeviceCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode); |
| | | if (device != null) |
| | | { |
| | | if (DeviceCode == "RGV01" || DeviceCode == "RGV02") |
| | | { |
| | | CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); |
| | | } |
| | | else |
| | | { |
| | | CommonRGV commonRGV = (CommonRGV)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); |
| | | } |
| | | return content.OK($"{device.DeviceName}䏿æå"); |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | public WebResponseContent RGVInitialize(string DeviceCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode); |
| | | if (device != null) |
| | | { |
| | | if (DeviceCode == "RGV01" || DeviceCode == "RGV02") |
| | | { |
| | | CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); |
| | | } |
| | | else |
| | | { |
| | | CommonRGV commonRGV = (CommonRGV)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(9)); |
| | | } |
| | | return content.OK($"{device.DeviceName}åå§åæå"); |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent RGVPause(string DeviceCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode); |
| | | if (device != null) |
| | | { |
| | | if (DeviceCode == "RGV01" || DeviceCode == "RGV02") |
| | | { |
| | | CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(10)); |
| | | } |
| | | else |
| | | { |
| | | CommonRGV commonRGV = (CommonRGV)device; |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(10)); |
| | | } |
| | | return content.OK($"{device.DeviceName}æåæå"); |
| | | } |
| | | return content.Error("æªæ¾å°è®¾å¤ä¿¡æ¯è¯·èç³»IT"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | public void SendCommandFirstFloor(CommonRGV_FirstFloor commonRGV, RGVTaskCommand? rgvTaskCommand) |
| | | { |
| | | commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(1)); |
| | | Thread.Sleep(100); |
| | | commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, (byte)Convert.ToSByte(rgvTaskCommand.PutcargoLocation)); |
| | | Thread.Sleep(100); |
| | | commonRGV.SetValue(StackerCraneDBName.PickupLocation, (byte)Convert.ToSByte(rgvTaskCommand.PickupLocation)); |
| | | Thread.Sleep(100); |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(rgvTaskCommand.TaskType)); |
| | | |
| | | } |
| | | public void SendCommandSecondFloor(CommonRGV commonRGV, RGVTaskCommand? rgvTaskCommand) |
| | | { |
| | | commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(1)); |
| | | Thread.Sleep(100); |
| | | commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, (byte)Convert.ToSByte(rgvTaskCommand.PutcargoLocation)); |
| | | Thread.Sleep(100); |
| | | commonRGV.SetValue(StackerCraneDBName.PickupLocation, (byte)Convert.ToSByte(rgvTaskCommand.PickupLocation)); |
| | | Thread.Sleep(100); |
| | | commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(rgvTaskCommand.TaskType)); |
| | | |
| | | } |
| | | |
| | | public class RGVTaskCommand |
| | | { |
| | | #region <Public Menber> |
| | | |
| | | /// <summary> |
| | | /// åè´§ä½ |
| | | /// </summary> |
| | | public byte PickupLocation { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¾è´§ä½ |
| | | /// </summary> |
| | | public byte PutcargoLocation { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public byte TaskType { get; set; } |
| | | |
| | | /// <summary> |
| | | /// é¢ç |
| | | /// </summary> |
| | | public byte Spare { get; set; } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public short TaskNum { get; set; } |
| | | |
| | | |
| | | #endregion <Public Menber> |
| | | } |
| | | |
| | | #endregion |
| | | } |