CcsActionDeviceSourceCheckService.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using HslCommunication.Profinet.Siemens;
  2. using IMCS.CCS;
  3. using IMCS.CCS.Entitys;
  4. using IMCS.CCS.Models.vo;
  5. using IMCS.CCS.Repository;
  6. using IMCS_CCS.Entitys;
  7. using IMCS_CCS.Repository;
  8. using IMCS_CCS.Utils;
  9. using Newtonsoft.Json;
  10. using Org.BouncyCastle.Asn1.Ocsp;
  11. using Org.BouncyCastle.Ocsp;
  12. using System.Collections.Generic;
  13. namespace IMCS_CCS.Service.Impl
  14. {
  15. public class CcsActionDeviceSourceCheckService : ICcsActionDeviceSourceCheckService
  16. {
  17. private ICcsActionDeviceSourceCheckRepository _repository;
  18. public CcsActionDeviceSourceCheckService(ICcsActionDeviceSourceCheckRepository repository)
  19. {
  20. _repository = repository;
  21. }
  22. public ResponseECSCallbackData checkDataAddress(CcsActionDeviceSourceCheck vo, SiemensS7Net s7)
  23. {
  24. List<CcsActionDeviceSourceCheck> data = _repository.GetList(vo);
  25. ResponseECSCallbackData responseECSCallbackData = new ResponseECSCallbackData(0, true, "默认通过");
  26. if (data == null || data.Count == 0)
  27. {
  28. responseECSCallbackData.msg = "没有匹配到数据,默认通过";
  29. return responseECSCallbackData;
  30. }
  31. foreach (CcsActionDeviceSourceCheck actionAddress in data)
  32. {
  33. if (!string.IsNullOrEmpty(actionAddress.CheckAddress) && !string.IsNullOrEmpty(actionAddress.CheckValue))
  34. {
  35. string operateResult = "";
  36. if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.BOOL.ToString()))
  37. {
  38. operateResult = s7.ReadBool(actionAddress.CheckAddress).Content.ToString();
  39. }
  40. else if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.SHORT.ToString()))
  41. {
  42. operateResult = s7.ReadInt16(actionAddress.CheckAddress).Content.ToString();
  43. }
  44. else if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.String.ToString()))
  45. {
  46. operateResult = s7.ReadString(actionAddress.CheckAddress).Content.ToString();
  47. }
  48. else if (actionAddress.CheckAddressType.Equals(TagValueReadTypeEnum.Byte.ToString()))
  49. {
  50. operateResult = s7.ReadByte(actionAddress.CheckAddress).Content.ToString();
  51. }
  52. if (actionAddress.CheckType ? operateResult != actionAddress.CheckValue : operateResult == actionAddress.CheckValue)
  53. {
  54. Log.Instance.WriteLogAdd(ActionTypeEnum.ThreeDimensionalPutStatus + "异常===>>" + "条件不满足" + actionAddress.CheckAddress + "值应为:" + actionAddress.CheckValue + "====实际为:",
  55. EnumHelper.GetDescription(ActionTypeEnum.ThreeDimensionalPutStatus));
  56. responseECSCallbackData.isSuccess = false;
  57. responseECSCallbackData.msg = "异常===>>" + "条件不满足,"+actionAddress.CheckName+","+actionAddress.CheckDescription+";" + actionAddress.CheckAddress + "值应为:" + actionAddress.CheckValue + "==实际为:" + operateResult;
  58. return responseECSCallbackData;
  59. }
  60. }
  61. }
  62. responseECSCallbackData.msg = "校验通过";
  63. return responseECSCallbackData;
  64. }
  65. }
  66. }