RGVAnalysis.cs 2.34 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 RGVAnalysis : BaseAnalysis
    {
        public RGVAnalysis(EquipmentType equipmentType) : base(equipmentType) { }




        public override EquipmentStatusRecordStatus? GetEquipmentStatus(EquipmentDataRecord equipmentInfo)
        {


            EquipmentStatusRecordStatus? equipmentStatus = null;
            var totalError = GetPropValue(equipmentInfo, RGVProps.Fault);
            //故障
            if (string.IsNullOrWhiteSpace(totalError))
            {
                SystemLog.PrintError($"记录{equipmentInfo.Id}的totalError属性无有效数据");
            }
            else if (totalError == "True")
            {
                equipmentStatus = EquipmentStatusRecordStatus.Error;
            }
            else
            {
          
                ////维修
                //if (GetPropValue(equipmentInfo, RGVProps.Maintain) == "True")
                //{
                //    equipmentStatus = EquipmentStatusRecordStatus.Maintain;
                //}
                ////手动模式
                //else if (GetPropValue(equipmentInfo, RGVProps.Manual) == "True"
                //    || GetPropValue(equipmentInfo, RGVProps.Airborne) == "True")
                //{
                //    equipmentStatus = EquipmentStatusRecordStatus.Manual;
                //}
                //运行
                 if (GetPropValue(equipmentInfo, RGVProps.AutoMode) == "True"
                    && GetPropValue(equipmentInfo, RGVProps.Running) == "True")
                {
                    equipmentStatus = EquipmentStatusRecordStatus.Running;
                }
                //待机
                else if (GetPropValue(equipmentInfo, RGVProps.Stop) == "True"
                    || GetPropValue(equipmentInfo, RGVProps.Manual) == "True" 
                    || GetPropValue(equipmentInfo, RGVProps.Airborne) == "True"
                    || GetPropValue(equipmentInfo, RGVProps.Maintain) == "True")
                {
                    equipmentStatus = EquipmentStatusRecordStatus.Free;
                }
            }
            return equipmentStatus;

        }
    }
}