SingleForkSRMAnalysis.cs 2.18 KB
using HHECS.BllModel;
using HHECS.DAQHandle.Dto;
using HHECS.DAQShared.Common.Enums;
using HHECS.DAQShared.Common.Utils;
using HHECS.DAQShared.Models;

namespace HHECS.DAQHandle.EquipmentHandle
{
    /// <summary>
    /// 单叉堆垛机数据解析
    /// </summary>
    internal class SingleForkSRMAnalysis : SRMAnalysisBase
    {
        public SingleForkSRMAnalysis(AnalysisParameter parameter) : base(parameter) { }

        protected override BllResult<EquipmentStatus> GetEquipmentStatus(EquipmentExtend equipment, EquipmentDataRecord record)
        {
            try
            {
                var tagResult = JsonConvertToTagList(record.Tags);
                if (!tagResult.Success)
                {
                    return BllResultFactory.Error<EquipmentStatus>(tagResult.Msg);
                }

                return EquipmentStatusHelper.GetEquipmentStatus(EquipmentTypeConst.SingleForkSRM, equipment.EquipmentProps, tagResult.Data);

            }
            catch (Exception ex)
            {
                return BllResultFactory.Error<EquipmentStatus>(ex.Message);
            }
        }

        protected override BllResult EquipmentAlarmCodeValidation(EquipmentExtend equipment, string equipmentPropCode)
        {
            var equipmentPropCodes = new List<string>
            {
                "Fork1TotalError",//货叉1总故障
                "Fork1TaskError",//货叉1任务错误
                "Fork1DoubleIn",//货叉1重入
                "Fork1EmptyOut",//货叉1空取
                "Fork1GetError",//货叉1取货错
                "F8312",// 等待对接站台放货允许
                "F8608",// 货叉1电机1:货叉伸出时,无伸叉就绪信号
                "F8708",// 货叉1电机2:货叉伸出时,无伸叉就绪信号
                "F8808",// 货叉2电机1:货叉伸出时,无伸叉就绪信号
                "F8908",// 货叉2电机2:货叉伸出时,无伸叉就绪信号
            };
            if (equipmentPropCodes.Contains(equipmentPropCode))
            {
                return BllResultFactory.Error($"{equipmentPropCode}报警需要忽略");
            }
            return BllResultFactory.Success();
        }
    }
}