No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

62 líneas
2.4 KiB

  1. // ********************************************************************************
  2. // 文件名字: S2F16Handler
  3. // 文件描述: S2F16Handler
  4. // 开发人员: Michael
  5. // 创建时间: 2019/11/8 0:08
  6. //
  7. // 更新历史:
  8. // + 创建 S2F16Handler.cs 文件. by Michael @2019/11/8 0:08
  9. // ********************************************************************************
  10. using Glorysoft.SECS.EQP.Common;
  11. using Glorysoft.SECS.EQP.Message;
  12. using Glorysoft.SECS.EQP.Utilities;
  13. using Glorysoft.SECSwell;
  14. using System.Linq;
  15. using System.Threading;
  16. using System;
  17. using ARI.EAP.HOST;
  18. using Glorysoft.SECS.EQP.Commands;
  19. using ARI.EAP.HOST.MQ.body;
  20. using ARI.EAP.HOST.MQ;
  21. using System.Threading.Tasks;
  22. using ARI.EAP.HOST.Common;
  23. namespace Glorysoft.SECS.EQP.Handlers
  24. {
  25. public class S2F16Handler : ISECSMessageHandler
  26. {
  27. public void Execute(SECSContext context, SECSTransaction trans, SECSErrors err, string errmsg)
  28. {
  29. Global.MF.addlog(trans, LoggerService.Receive, "New Equipment Constants Send", 1);
  30. LoggerService.SECSLogger.Info(trans.Secondary);
  31. SECSMessage reply = trans.Secondary;
  32. S2F16Item item = new S2F16Item();
  33. item.EAC = reply.Root.Value.To<byte[]>().FirstOrDefault();
  34. if (trans.Tag != null)
  35. {
  36. if (trans.Tag.GetType() == typeof(ECChangeBody))
  37. {
  38. if(item.EAC == 00)
  39. {
  40. MQMessage mQMessage = new MQMessage();
  41. mQMessage.header.messageName = "ECChange";
  42. ECChangeBody eCChangeBody = trans.Tag as ECChangeBody;
  43. eCChangeBody.spoolingFlag = EquipmentStatus.SpoolingFlag.ToString();
  44. eCChangeBody.eventTimestamp = System.DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff");
  45. mQMessage.body = eCChangeBody;
  46. Task.Run(() => MainForm.mq.EAPRequest(mQMessage));
  47. Command.S1F15Command();
  48. Thread.Sleep(500);
  49. Command.S1F17Command();
  50. }
  51. }
  52. else
  53. {
  54. var scenario = trans.Tag as Scenario;
  55. Thread.Sleep(500);
  56. scenario.ExecuteNextStep();
  57. }
  58. }
  59. }
  60. }
  61. }