using ServiceCenter.Logs; using System.ComponentModel; using WCS.Core; using WCS.WorkEngineering.Extensions; using WCS.WorkEngineering.Protocol.RGV; using WCS.WorkEngineering.Worlds; namespace WCS.WorkEngineering.Systems { /// /// Agv交互系统 /// [BelongTo(typeof(MainWorld))] [Description("RGV交互系统")] public class RGVSystems : DeviceSystem { protected override bool ParallelDo => true; protected override bool SaveLogsToFile => true; public RGVSystems() { } public override void Do(RGV obj) { //if (obj.Data.VoucherNo != obj.Data2.VoucherNo) throw new KnownException($"凭证号不一致,DB520:{obj.Data.VoucherNo}-DB521:{obj.Data2.VoucherNo}", LogLevelEnum.High); //if (!obj.Data2.WorkMode.HasFlag(RGVWorkMode.Automatic)) return; //if (!obj.Data2.SystemStatus.HasFlag(RGVSystemStatus.空闲)) return; //if (obj.Data2.Status.HasFlag(RGVStatus.PH_Status)) throw new KnownException($"有光电", LogLevelEnum.High); //obj.Data.TaskNumber = 12345; //obj.Data.CmdType = RGVCmdType.PickPutGoods; //obj.Data.StartPosition = 1663; //obj.Data.DestPosition = 1672; //obj.Data.VoucherNo++; } public override bool Select(Device dev) { return dev.Code == "RGV1"; //return dev.HasFlag(Extensions.DeviceFlags.RGV); } } }