PrewetPumpEnableRoutine.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Aitex.Core.RT.Routine;
  2. using MECF.Framework.Common.Persistent.Prewet;
  3. using MECF.Framework.Common.Routine;
  4. using CyberX8_Core;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace CyberX8_RT.Devices.Prewet
  11. {
  12. public class PrewetPumpEnableRoutine : RoutineBase, IRoutine
  13. {
  14. private enum PumpEnableStep
  15. {
  16. PumpValve,
  17. Delay,
  18. PumpEnable,
  19. WritePumpSpeed,
  20. LastDelay,
  21. End
  22. }
  23. #region 内部变量
  24. PrewetDevice _device;
  25. PrewetPersistentValue _prewetPersistentValue;
  26. #endregion
  27. /// <summary>
  28. /// 构造函数
  29. /// </summary>
  30. /// <param name="module"></param>
  31. public PrewetPumpEnableRoutine(string module,PrewetDevice prewetDevice,PrewetPersistentValue prewetPersistentValue) : base(module)
  32. {
  33. _device = prewetDevice;
  34. _prewetPersistentValue = prewetPersistentValue;
  35. }
  36. /// <summary>
  37. /// 中止
  38. /// </summary>
  39. public void Abort()
  40. {
  41. Runner.Stop("Manual Abort");
  42. }
  43. /// <summary>
  44. /// 监控
  45. /// </summary>
  46. /// <returns></returns>
  47. public RState Monitor()
  48. {
  49. Runner.Run(PumpEnableStep.PumpValve, _device.PumpValveOpen, () => { return _device.PrewetPumpData.PumpValve; }, _delay_1s)
  50. .Delay(PumpEnableStep.Delay, 200)
  51. .Run(PumpEnableStep.PumpEnable, _device.PumpEnable, () => { return _device.PrewetPumpData.PumpEnable; }, _delay_1s)
  52. .Run(PumpEnableStep.WritePumpSpeed, () => { return _device.PumpSpeed(); }, _delay_1ms)
  53. .Delay(PumpEnableStep.LastDelay, 500)
  54. .End(PumpEnableStep.End, NullFun, _delay_1ms);
  55. return Runner.Status;
  56. }
  57. /// <summary>
  58. /// 启动
  59. /// </summary>
  60. /// <param name="objs"></param>
  61. /// <returns></returns>
  62. public RState Start(params object[] objs)
  63. {
  64. return Runner.Start(Module, "Pump Enable");
  65. }
  66. }
  67. }