AGVAnalysis.cs 1.47 KB
using HHECS.BllModel;
using HHECS.DAQHandle.Common.Enums;
using HHECS.DAQHandle.Common.Utils;
using HHECS.DAQHandle.Models;
using HHECS.EquipmentModel;

namespace HHECS.DAQHandle.EquipmentHandle
{
    /// <summary>
    /// AGV数据解析
    /// </summary>
    internal class AGVAnalysis : BaseAnalysis
    {
        public AGVAnalysis(EquipmentType equipmentType) : base(equipmentType) { }




        public override EquipmentStatusRecordStatus? GetEquipmentStatus(EquipmentDataRecord equipmentInfo)
        {


            EquipmentStatusRecordStatus? equipmentStatus = null;



            var equipment = Program.EquipmentInfos[equipmentInfo.EquipmentCode];
            var address = equipment.EquipmentPropTemps.FindAll(x => x.PropCode.Contains("Abnormal")).Select(x => x.Address);
            var totalError = equipmentInfo.Props.Any(x => address.Contains(x.Key) && x.Value == "1");
            //故障

            if (totalError)
            {
                equipmentStatus = EquipmentStatusRecordStatus.Error;
            }
            else
            {
                //运行
                if (GetPropValue(equipmentInfo, AGVProp.TravelStatus) == "1")
                {
                    equipmentStatus = EquipmentStatusRecordStatus.Running;
                }
                //待机
                else
                {
                    equipmentStatus = EquipmentStatusRecordStatus.Free;
                }
            }
            return equipmentStatus;

        }
    }
}