| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | 
							- using Aitex.Core.RT.Device;
 
- using Aitex.Core.RT.Log;
 
- using PunkHPX8_Core;
 
- using PunkHPX8_RT.Devices.Reservoir;
 
- using PunkHPX8_RT.Modules.Reservoir;
 
- using MECF.Framework.Common.Persistent.Reservoirs;
 
- using MECF.Framework.Common.Persistent.Temperature;
 
- using MECF.Framework.Common.RecipeCenter;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Reflection;
 
- using static PunkHPX8_RT.Devices.Reservoir.DosingSystemHelper;
 
- namespace PunkHPX8_RT.Devices.Dose
 
- {
 
-     public class DosingCommonHelper
 
-     {
 
-         public enum DoseState
 
-         {
 
-             Init,
 
-             Idle,
 
-             Error,
 
-             Initializing
 
-         }
 
-         #region 内部变量
 
-         /// <summary>
 
-         /// ModuleName
 
-         /// </summary>
 
-         private string _moduleName;
 
-         /// <summary>
 
-         /// ReplenID
 
-         /// </summary>
 
-         private int _replenNum;
 
-         /// <summary>
 
-         /// 当前操作
 
-         /// </summary>
 
-         private List<DosingOperation> _currentDosingOperation;
 
-         /// <summary>
 
-         /// Replen Persistent Value
 
-         /// </summary>
 
-         private Dictionary<string, ReplenPersistentValue> _persistentValue = new Dictionary<string, ReplenPersistentValue>();
 
-         /// <summary>
 
-         /// DosingSystem初始化状态
 
-         /// </summary>
 
-         private RState _initializeRState;
 
-         /// <summary>
 
-         /// DosingSystemState
 
-         /// </summary>
 
-         private string _dosingSystemState;
 
-         /// <summary>
 
-         /// DosingSystemInitializeRoutine
 
-         /// </summary>
 
-         private DosingSystemInitializeRoutine _dosingSystemInitializeRoutine;
 
-         /// <summary>
 
-         /// DosingSystem是否已初始化
 
-         /// </summary>
 
-         private bool _isDosingSystemInitialized;
 
-         #endregion
 
-         #region 属性
 
-         /// <summary>
 
-         /// DosingSystem是否已经Initialized
 
-         /// </summary>
 
-         public bool IsDosingSystemInitialized { get { return _isDosingSystemInitialized; } }
 
-         /// <summary>
 
-         /// DosingSystem State
 
-         /// </summary>
 
-         public string DosingSystemState { get { return _dosingSystemState; } }
 
-         /// <summary>
 
-         /// DosingSystem Initialize State
 
-         /// </summary>
 
-         public RState InitializeState { get { return _initializeRState; } }
 
-         #endregion
 
-         /// <summary>
 
-         /// 构造函数
 
-         /// </summary>
 
-         /// <param name="moduleName"></param>
 
-         public DosingCommonHelper(string moduleName, int replenNum)
 
-         {
 
-             _moduleName = moduleName;
 
-             _replenNum = replenNum;
 
-             for (int i = 0; i < _replenNum; i++)
 
-             {
 
-                 string replenName = "Replen" + (i + 1).ToString();
 
-                 _currentDosingOperation.Add(DosingOperation.None);
 
-                 _persistentValue[replenName] = ReplenPersistentManager.Instance.GetReplenPersistentValue(_moduleName, replenName);
 
-             }
 
-             _dosingSystemInitializeRoutine = new DosingSystemInitializeRoutine(_moduleName);
 
-             _dosingSystemState = DoseState.Init.ToString();
 
-         }
 
-         /// <summary>
 
-         /// ManualDose监控
 
-         /// </summary>
 
-         public void ManualDoseSystemMonitor()
 
-         {
 
-             for (int i = 0; i < _replenNum; i++)
 
-             {
 
-                 string replenName = "Replen" + (i + 1).ToString();
 
-                 if (_currentDosingOperation[i] == DosingOperation.ManualDosing && !_persistentValue[replenName].IsDosingRunning)
 
-                 {
 
-                     _currentDosingOperation[i] = DosingOperation.None;
 
-                 }
 
-                 else if (_currentDosingOperation[i] == DosingOperation.ManualDosing && _persistentValue[replenName].IsDosingRunning)
 
-                 {
 
-                     continue;
 
-                 }
 
-             }
 
-         }
 
-         public void CheckDoseOperation()
 
-         {
 
-             for (int i = 0; i < _replenNum; i++)
 
-             {
 
-                 if (_currentDosingOperation[i] == DosingOperation.AutoDosing)
 
-                 {
 
-                     _currentDosingOperation[i] = DosingOperation.None;
 
-                 }
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Dose状态监控
 
-         /// </summary>
 
-         public void DoseStatusMonitor()
 
-         {
 
-             //DosingSystem Initialize监控
 
-             if (_initializeRState == RState.Running)
 
-             {
 
-                 DosingInitializingMonitor();
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 监控DosingSystem初始化
 
-         /// </summary>
 
-         /// <returns></returns>
 
-         public void DosingInitializingMonitor()
 
-         {
 
-             _initializeRState = _dosingSystemInitializeRoutine.Monitor();
 
-             if (_initializeRState == RState.Failed || _initializeRState == RState.Timeout)
 
-             {
 
-                 _dosingSystemState = DoseState.Error.ToString();
 
-             }
 
-             if (_initializeRState == RState.End)
 
-             {
 
-                 _isDosingSystemInitialized = true;
 
-                 _dosingSystemState = DoseState.Idle.ToString();
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// DosingSystem初始化
 
-         /// </summary>
 
-         /// <param name="cmd"></param>
 
-         /// <param name="args"></param>
 
-         /// <returns></returns>
 
-         public bool DosingInitialize()
 
-         {
 
-             _dosingSystemState = DoseState.Initializing.ToString();
 
-             _isDosingSystemInitialized = false;
 
-             _initializeRState = _dosingSystemInitializeRoutine.Start();
 
-             if (_initializeRState == RState.Running) return true;
 
-             return false;
 
-         }
 
-         /// <summary>
 
-         /// Enetr Init State
 
-         /// </summary>
 
-         /// <param name="cmd"></param>
 
-         /// <param name="args"></param>
 
-         /// <returns></returns>
 
-         public bool DosingEnterInit()
 
-         {
 
-             if (_dosingSystemState == DoseState.Idle.ToString())
 
-             {
 
-                 _dosingSystemState = DoseState.Init.ToString();
 
-             }
 
-             _isDosingSystemInitialized = false;
 
-             return true;
 
-         }
 
-     }
 
- }
 
 
  |