DosingSystemInitializeRoutine.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Core.RT.Log;
  3. using Aitex.Core.RT.Routine;
  4. using Aitex.Core.RT.SCCore;
  5. using PunkHPX8_Core;
  6. using PunkHPX8_RT.Devices.Reservoir;
  7. using MECF.Framework.Common.Persistent.Reservoirs;
  8. using MECF.Framework.Common.Routine;
  9. using System;
  10. using System.Collections.Generic;
  11. namespace PunkHPX8_RT.Modules.Reservoir
  12. {
  13. public class DosingSystemInitializeRoutine : RoutineBase, IRoutine
  14. {
  15. private enum InitializeStep
  16. {
  17. CheckState,
  18. InitData,
  19. End
  20. }
  21. #region 内部变量
  22. /// <summary>
  23. /// 模块名称
  24. /// </summary>
  25. private string _moduleName;
  26. /// <summary>
  27. /// Replen Persistent Value
  28. /// </summary>
  29. private Dictionary<string, ReplenPersistentValue> _replenPersistentValue = new Dictionary<string, ReplenPersistentValue>();
  30. #endregion
  31. #region 属性
  32. /// <summary>
  33. /// 当前子状态机
  34. /// </summary>
  35. public string CurrentStateMachine
  36. {
  37. get { return Runner.CurrentStep.ToString(); }
  38. }
  39. #endregion
  40. /// <summary>
  41. /// 构造函数
  42. /// </summary>
  43. /// <param name="module"></param>
  44. public DosingSystemInitializeRoutine(string module) : base(module)
  45. {
  46. _moduleName = module;
  47. }
  48. public void Abort()
  49. {
  50. Runner.Stop("Manual Abort");
  51. }
  52. public RState Monitor()
  53. {
  54. Runner.Run(InitializeStep.CheckState, CheckState, NullFun, _delay_1ms)
  55. .Run(InitializeStep.InitData, InitData, NullFun, _delay_1ms)
  56. .End(InitializeStep.End, NullFun);
  57. return Runner.Status;
  58. }
  59. /// <summary>
  60. /// CheckState
  61. /// </summary>
  62. /// <returns></returns>
  63. private bool CheckState()
  64. {
  65. return true;
  66. }
  67. /// <summary>
  68. /// Clear Data
  69. /// </summary>
  70. /// <returns></returns>
  71. private bool InitData()
  72. {
  73. return true;
  74. }
  75. /// <summary>
  76. /// 启动
  77. /// </summary>
  78. /// <param name="objs"></param>
  79. /// <returns></returns>
  80. public RState Start(params object[] objs)
  81. {
  82. return Runner.Start(Module, "DosingSystem Initialize");
  83. }
  84. }
  85. }