AlarmDefineService.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using Aitex.Common.Util;
  2. using Aitex.Core.RT.Event;
  3. using Aitex.Core.RT.Log;
  4. using Aitex.Core.Util;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Xml;
  11. using System.Runtime.Serialization;
  12. using System.Runtime.Serialization.Json;
  13. using System.IO;
  14. namespace MECF.Framework.Common.Alarms
  15. {
  16. class AlarmDefineService : IAlarmDefineService
  17. {
  18. public Dictionary<string, Dictionary<string, EventItem>> GetAlarmDefineTemplate()
  19. {
  20. Dictionary<string, Dictionary<string, EventItem>> result = new Dictionary<string, Dictionary<string, EventItem>>();
  21. foreach (var key in Singleton<EventManager>.Instance.AlarmDic.Keys)
  22. {
  23. Dictionary<string, EventItem> temp = new Dictionary<string, EventItem>();
  24. foreach (var name in Singleton<EventManager>.Instance.AlarmDic[key].Keys)
  25. {
  26. var item = Singleton<EventManager>.Instance.AlarmDic[key][name].Clone();
  27. temp[name] = item;
  28. }
  29. result[key] = temp;
  30. }
  31. return result;
  32. }
  33. private AlarmDefine CreateAlarmDefine(XmlNode alarm)
  34. {
  35. AlarmDefine alarmDefine = new AlarmDefine();
  36. if (alarm != null)
  37. {
  38. if (alarm.Attributes["Number"] != null)
  39. {
  40. int numberValue = 0;
  41. if (alarm.Attributes["Number"].Value.Length > 2 && alarm.Attributes["Number"].Value.Substring(0, 2) == "0x")
  42. { numberValue = Convert.ToInt32(alarm.Attributes["Number"].Value, 16); }
  43. else
  44. { int.TryParse(alarm.Attributes["Number"].Value, out numberValue); }
  45. alarmDefine.Number = numberValue;
  46. }
  47. if (alarm.Attributes["Message"] != null)
  48. alarmDefine.Message = alarm.Attributes["Message"].Value;
  49. if (alarm.Attributes["Action"] != null)
  50. alarmDefine.Action = alarm.Attributes["Action"].Value;
  51. if (alarm.Attributes["Recovery"] != null)
  52. alarmDefine.Recovery = alarm.Attributes["Recovery"].Value;
  53. if (alarm.Attributes["Cause"] != null)
  54. alarmDefine.Cause = alarm.Attributes["Cause"].Value;
  55. return alarmDefine;
  56. }
  57. return null;
  58. }
  59. public string GetStringAlarmDefineTemplate()
  60. {
  61. try
  62. {
  63. string recipeSchema = PathManager.GetCfgDir() + @"\AlarmDefine.xml";
  64. XmlDocument xmlDom = new XmlDocument();
  65. xmlDom.Load(recipeSchema);
  66. return xmlDom.OuterXml;
  67. }
  68. catch (Exception ex)
  69. {
  70. LOG.Write(ex);
  71. return "";
  72. }
  73. }
  74. }
  75. }