123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using Aitex.Common.Util;
- using Aitex.Core.Util;
- using MECF.Framework.Common.Simulator;
- using System.Collections.Generic;
- using System.IO;
- namespace Aitex.Core.RT.Device
- {
- public class SimulatorCommManager:Singleton<SimulatorCommManager>
- {
- #region 内部变量
- /// <summary>
- /// 关联变量字典
- /// </summary>
- private Dictionary<string, string> _relatedDictionary = new Dictionary<string, string>();
- #endregion
- //delegate
- #region Delegate
- public delegate void UpdateVariableValueChanged(string name,bool value);
- #endregion
- #region 事件
- /// <summary>
- /// 变量变更事件
- /// </summary>
- public event UpdateVariableValueChanged OnUpdateVariableValueChanged;
- #endregion
- public void Initialize()
- {
- //加载相关联的IO映射配置文件
- string xmlPath = PathManager.GetCfgDir() + "SimulatorIOMapCfg.xml";
- SimulatorIOMapConfig cfg = CustomXmlSerializer.Deserialize<SimulatorIOMapConfig>(new FileInfo(xmlPath));
- foreach (var item in cfg.SimulatorIOMapConfigs)
- {
- _relatedDictionary[item.SourceIOName] = item.TargetIONameA;
- }
- }
- /// <summary>
- /// 通知受关联模块变化的变量以及变化的值
- /// </summary>
- /// <param name="data"></param>
- private void UpdateVariableValue(string name, bool value)
- {
- if (OnUpdateVariableValueChanged != null)
- {
- OnUpdateVariableValueChanged(name, value);
- }
- }
- /// <summary>
- /// 检查变化的值是否影响别的模块
- /// </summary>
- /// <param name="name"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- public void CheckDataChanged(string name, bool value)
- {
- if (_relatedDictionary.ContainsKey(name))
- {
- UpdateVariableValue(_relatedDictionary[name], value);
- }
-
- }
- }
- }
|