using HslCommunication.Profinet.Siemens; using IMCS.CCS; using IMCS.CCS.Entitys; using IMCS.CCS.Models.vo; using IMCS.CCS.Repository; using IMCS_CCS.Entitys; using IMCS_CCS.Repository; using IMCS_CCS.Utils; using Newtonsoft.Json; using Org.BouncyCastle.Asn1.Ocsp; using Org.BouncyCastle.Ocsp; using System.Collections.Generic; namespace IMCS_CCS.Service.Impl { public class CcsActionDeviceSourceCheckService : ICcsActionDeviceSourceCheckService { private ICcsActionDeviceSourceCheckRepository _repository; public CcsActionDeviceSourceCheckService(ICcsActionDeviceSourceCheckRepository repository) { _repository = repository; } public ResponseECSCallbackData checkDataAddress(CcsActionDeviceSourceCheck vo, SiemensS7Net s7) { List data = _repository.GetList(vo); ResponseECSCallbackData responseECSCallbackData = new ResponseECSCallbackData(0, true, "默认通过"); if (data == null || data.Count == 0) { responseECSCallbackData.msg = "没有匹配到数据,默认通过"; return responseECSCallbackData; } foreach (CcsActionDeviceSourceCheck actionAddress in data) { if (!string.IsNullOrEmpty(actionAddress.CheckAddress) && !string.IsNullOrEmpty(actionAddress.CheckValue)) { string operateResult = ""; if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.BOOL.ToString())) { operateResult = s7.ReadBool(actionAddress.CheckAddress).Content.ToString(); } else if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.SHORT.ToString())) { operateResult = s7.ReadInt16(actionAddress.CheckAddress).Content.ToString(); } else if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.String.ToString())) { operateResult = s7.ReadString(actionAddress.CheckAddress).Content.ToString(); } else if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.Byte.ToString())) { operateResult = s7.ReadByte(actionAddress.CheckAddress).Content.ToString(); } if (actionAddress.CheckType ? operateResult != actionAddress.CheckValue : operateResult == actionAddress.CheckValue) { Log.Instance.WriteLogAdd(ActionTypeEnum.ThreeDimensionalPutStatus + "异常===>>" + "条件不满足" + actionAddress.CheckAddress + "值应为:" + actionAddress.CheckValue + "====实际为:", EnumHelper.GetDescription(ActionTypeEnum.ThreeDimensionalPutStatus)); responseECSCallbackData.isSuccess = false; responseECSCallbackData.msg = "异常===>>" + "条件不满足,"+actionAddress.CheckName+","+actionAddress.CheckDescription+";" + actionAddress.CheckAddress + "值应为:" + actionAddress.CheckValue + "==实际为:" + operateResult; return responseECSCallbackData; } } } responseECSCallbackData.msg = "校验通过"; return responseECSCallbackData; } } }