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);
}
}
}