using Aitex.Core.RT.Device; using Aitex.Core.RT.Log; using Aitex.Core.RT.Routine; using Aitex.Core.RT.SCCore; using PunkHPX8_Core; using PunkHPX8_RT.Devices.Reservoir; using MECF.Framework.Common.Persistent.Reservoirs; using MECF.Framework.Common.Routine; using System; using System.Collections.Generic; namespace PunkHPX8_RT.Modules.Reservoir { public class DosingSystemInitializeRoutine : RoutineBase, IRoutine { private enum InitializeStep { CheckState, InitData, End } #region 内部变量 /// /// 模块名称 /// private string _moduleName; /// /// Replen Persistent Value /// private Dictionary _replenPersistentValue = new Dictionary(); #endregion #region 属性 /// /// 当前子状态机 /// public string CurrentStateMachine { get { return Runner.CurrentStep.ToString(); } } #endregion /// /// 构造函数 /// /// public DosingSystemInitializeRoutine(string module) : base(module) { _moduleName = module; } public void Abort() { Runner.Stop("Manual Abort"); } public RState Monitor() { Runner.Run(InitializeStep.CheckState, CheckState, NullFun, _delay_1ms) .Run(InitializeStep.InitData, InitData, NullFun, _delay_1ms) .End(InitializeStep.End, NullFun); return Runner.Status; } /// /// CheckState /// /// private bool CheckState() { return true; } /// /// Clear Data /// /// private bool InitData() { return true; } /// /// 启动 /// /// /// public RState Start(params object[] objs) { return Runner.Start(Module, "DosingSystem Initialize"); } } }