From dc0309e64f02227d8e1468b7326c07955f804612 Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期三, 22 六月 2022 11:22:18 +0800
Subject: [PATCH] 修改引用路径

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAlarmsLogic.cs |  625 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 625 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAlarmsLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAlarmsLogic.cs
new file mode 100644
index 0000000..f2a48fa
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAlarmsLogic.cs
@@ -0,0 +1,625 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using Shared.Common;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 鎶ヨ绫荤殑閫昏緫
+    /// </summary>
+    public class HdlAlarmsLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鏈湴瀹夐槻鏁版嵁
+        /// </summary>
+        private static HdlAlarmsLogic m_Current = null;
+        /// <summary>
+        /// 鏈湴瀹夐槻鏁版嵁
+        /// </summary>
+        public static HdlAlarmsLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlAlarmsLogic();
+                }
+                return m_Current;
+            }
+        }
+
+        /// <summary>
+        /// 瀹夐槻涓婃姤淇℃伅
+        /// </summary>
+        public List<SafeguardAlarmInfo> listSafetyAlarmInfo = new List<SafeguardAlarmInfo>();
+        /// <summary>
+        /// 闂ㄩ攣涓婃姤淇℃伅
+        /// </summary>
+        public List<DeviceAlarmInfo> listDoorLockAlarmInfo = new List<DeviceAlarmInfo>();
+        /// <summary>
+        /// 涓婁竴娆″畨闃蹭笂鎶ヤ俊鎭繚瀛樼殑鏂囦欢鍚嶅瓧(鑰冭檻鍒扮敤鎴锋湁鍙兘24鐐圭殑鏃跺�欙紝涓嶉��鍑篈PP)
+        /// </summary>
+        private string oldDeviceAlarmFile = string.Empty;
+
+        #endregion
+
+        #region 鈻� 閲嶆柊鍒锋柊鎶ヨ淇℃伅___________________
+
+        /// <summary>
+        /// 閲嶆柊鍒锋柊鎶ヨ淇℃伅
+        /// </summary>
+        public void RefreshAlarmInfo()
+        {
+            this.listSafetyAlarmInfo.Clear();
+            this.listDoorLockAlarmInfo.Clear();
+            string fileName = DateTime.Now.ToString("yyyyMMdd");
+
+            //瀹夐槻鎶ヨ
+            string fullName = System.IO.Path.Combine(DirNameResourse.SafeguardAlarmDirectory, fileName);
+            var data1 = HdlFileLogic.Current.ReadFileByteContent(fullName);
+            if (data1 != null)
+            {
+                this.listSafetyAlarmInfo = JsonConvert.DeserializeObject<List<SafeguardAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data1));
+                if (this.listSafetyAlarmInfo == null)
+                {
+                    this.listSafetyAlarmInfo = new List<SafeguardAlarmInfo>();
+                }
+            }
+
+            //闂ㄩ攣璁板綍
+            fullName = System.IO.Path.Combine(DirNameResourse.DoorLockAlarmDirectory, fileName);
+            var data2 = HdlFileLogic.Current.ReadFileByteContent(fullName);
+            if (data2 != null)
+            {
+                this.listDoorLockAlarmInfo = JsonConvert.DeserializeObject<List<DeviceAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data2));
+                if (this.listDoorLockAlarmInfo == null)
+                {
+                    this.listDoorLockAlarmInfo = new List<DeviceAlarmInfo>();
+                }
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 瀹夐槻鎶ヨ淇濆瓨_______________________
+
+        /// <summary>
+        /// 淇濆瓨瀹夐槻鎶ヨ淇℃伅鍒版湰鍦�
+        /// </summary>
+        /// <param name="device"></param>
+        public bool SaveSafeguardAlarmInfo(CommonDevice device)
+        {
+            int ZoneId = HdlSafeguardLogic.Current.GetZoneIdByIASZone(device);
+            if (ZoneId == -1)
+            {
+                //杩欎釜浼犳劅鍣ㄤ笉瀛樺湪浜庝换浣曢槻鍖�
+                return false;
+            }
+            var msgInfo = this.GetSensorAlarmInfo(device);
+            if (msgInfo == null)
+            {
+                //寮傚父锛燂紵
+                return false;
+            }
+
+            lock (listSafetyAlarmInfo)
+            {
+                //鑾峰彇淇濆瓨瀹夐槻淇℃伅鐨勬枃浠跺悕瀛�
+                string fileName = this.GetSafeguardAlarmFileName();
+
+                var data = new SafeguardAlarmInfo();
+                data.AlarmType = SafeguardAlarmType.Sensor;
+                data.ZoneId = ZoneId;
+                data.DeviceAddr = device.DeviceAddr;
+                data.DeviceEpoint = device.DeviceEpoint;
+                data.DeviceName = device.DeviceName;
+                data.Time = DateTime.Now.ToString("HH:mm:ss");
+                data.RoomName = HdlRoomLogic.Current.GetRoomNameByDevice(device);
+                //鎶ヨ缁撴潫
+                data.AlarmMsg = msgInfo.AlarmMsg != string.Empty ? msgInfo.AlarmMsg : Language.StringByID(R.MyInternationalizationString.uAlarmFinish);
+                //鐢垫睜鎶ヨ
+                data.BatteryMsg = msgInfo.BatteryMsg;
+                //琚媶鎶ヨ
+                data.DemolishmentMsg = msgInfo.DemolishmenMsg;
+
+                //闄愬埗瀹冪殑闀垮害
+                this.listSafetyAlarmInfo.Insert(0, data);
+                if (this.listSafetyAlarmInfo.Count > UserCenterResourse.ResidenceOption.SafetyOnedayMaxAlarmMsgCount)
+                {
+                    this.listSafetyAlarmInfo.RemoveAt(this.listSafetyAlarmInfo.Count - 1);
+                }
+
+                //淇濆瓨鍒版湰鍦�
+                string fullName = System.IO.Path.Combine(DirNameResourse.SafeguardAlarmDirectory, fileName);
+                HdlFileLogic.Current.SaveFileContent(fullName, this.listSafetyAlarmInfo);
+
+                if (UserCenterResourse.DicActionForm.ContainsKey("SafetyManagementMainForm") == true)
+                {
+                    var form = (Phone.UserCenter.Safety.SafetyManagementMainForm)UserCenterResourse.DicActionForm["SafetyManagementMainForm"];
+                    form?.AddSafeguardLogPushRow(device);
+                }
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// 淇濆瓨甯冮槻鎿嶄綔淇℃伅鍒版湰鍦�
+        /// </summary>
+        /// <param name="garrison">甯冮槻妯″紡</param>
+        /// <param name="appendText">闄勫姞鏂囨湰</param>
+        public void SaveSafeguardAlarmInfo(GarrisonMode garrison, string appendText = "")
+        {
+            if (garrison == GarrisonMode.None)
+            {
+                return;
+            }
+
+            lock (listSafetyAlarmInfo)
+            {
+                //鑾峰彇淇濆瓨瀹夐槻淇℃伅鐨勬枃浠跺悕瀛�
+                string fileName = this.GetSafeguardAlarmFileName();
+
+                var data = new SafeguardAlarmInfo();
+                data.Time = DateTime.Now.ToString("HH:mm:ss");
+                data.AlarmType = SafeguardAlarmType.None;
+                if (garrison == GarrisonMode.AtHome)
+                {
+                    data.AlarmType = SafeguardAlarmType.AtHome;
+                    //娌℃湁鍐呴儴闃插尯
+                    if (HdlSafeguardLogic.Current.IsHadInternalDefenseArea() == false)
+                    {
+                        //甯冮槻宸叉墽琛�
+                        data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uExecuteGarrison);
+                    }
+                    else
+                    {
+                        //鍦ㄥ甯冮槻宸叉墽琛�
+                        data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uExecuteAtHomeGarrison);
+                    }
+                }
+                else if (garrison == GarrisonMode.RemoveHome)
+                {
+                    //绂诲甯冮槻宸叉墽琛�
+                    data.AlarmType = SafeguardAlarmType.RemoveHome;
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uExecuteRemoveHomeGarrison);
+                }
+                else if (garrison == GarrisonMode.RemoveGarrison)
+                {
+                    //鎾ら槻宸叉墽琛�
+                    data.AlarmType = SafeguardAlarmType.RemoveGarrison;
+                    data.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uExecuteWithdrawGarrison);
+                }
+                else
+                {
+                    return;
+                }
+                //娣诲姞闄勫姞鏂囨湰
+                data.AlarmMsg = data.AlarmMsg + appendText;
+
+                //闄愬埗瀹冪殑闀垮害
+                this.listSafetyAlarmInfo.Insert(0, data);
+                if (this.listSafetyAlarmInfo.Count > UserCenterResourse.ResidenceOption.SafetyOnedayMaxAlarmMsgCount)
+                {
+                    this.listSafetyAlarmInfo.RemoveAt(this.listSafetyAlarmInfo.Count - 1);
+                }
+
+                //淇濆瓨鍒版湰鍦�
+                string fullName = System.IO.Path.Combine(DirNameResourse.SafeguardAlarmDirectory, fileName);
+                HdlFileLogic.Current.SaveFileContent(fullName, this.listSafetyAlarmInfo);
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇淇濆瓨瀹夐槻淇℃伅鐨勬枃浠跺悕瀛�
+        /// </summary>
+        /// <returns></returns>
+        private string GetSafeguardAlarmFileName()
+        {
+            string fileName = DateTime.Now.ToString("yyyyMMdd");
+            if (fileName != oldDeviceAlarmFile)
+            {
+                //鑰冭檻鍒扮敤鎴锋湁鍙兘24鐐圭殑鏃跺�欎笉閫�鍑篈PP,杩欎釜鏃跺�欑洿鎺ュ埛鏂�
+                this.RefreshAlarmInfo();
+            }
+            oldDeviceAlarmFile = fileName;
+            return fileName;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏈湴璁板綍鐨勫畨闃叉姤璀︿俊鎭�
+        /// </summary>
+        /// <returns></returns>
+        public Dictionary<string, List<SafeguardAlarmInfo>> GetSafeguardAlarmInfo()
+        {
+            lock (listSafetyAlarmInfo)
+            {
+                string fullPath = DirNameResourse.SafeguardAlarmDirectory;
+                //鑾峰彇鎸囧畾鐩綍涓嬮潰鐨勬枃浠�
+                List<string> listFile = HdlFileLogic.Current.GetFileFromDirectory(fullPath);
+                //鍗囧簭
+                listFile.Sort();
+                var dic = new Dictionary<string, List<SafeguardAlarmInfo>>();
+                for (int i = listFile.Count - 1; i >= 0; i--)
+                {
+                    var data = HdlFileLogic.Current.ReadFileByteContent(System.IO.Path.Combine(fullPath, listFile[i]));
+                    var info = JsonConvert.DeserializeObject<List<SafeguardAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
+                    if (info == null)
+                    {
+                        continue;
+                    }
+                    var listInfo = new List<SafeguardAlarmInfo>();
+                    for (int j = 0; j < info.Count; j++)
+                    {
+                        if (j == UserCenterResourse.ResidenceOption.SafetyOnedayMaxAlarmMsgCount)
+                        {
+                            //姣忓ぉ鏈�澶氫笁鍗佹潯鏁版嵁
+                            break;
+                        }
+                        listInfo.Add(info[j]);
+                    }
+                    dic[listFile[i]] = listInfo;
+
+                    if (dic.Count == UserCenterResourse.ResidenceOption.SafetyMaxAlarmMsgDay)
+                    {
+                        //鍙涓夊ぉ鐨勯噺
+                        break;
+                    }
+                }
+                return dic;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 浼犳劅鍣ㄦ姤璀︾殑淇℃伅缈昏瘧鏂囨湰___________
+
+        /// <summary>
+        /// 鑾峰彇浼犳劅鍣ㄦ姤璀︾殑淇℃伅缈昏瘧鏂囨湰(杩斿洖null鍒欒〃绀烘病鏈夎揪鎴愭姤璀︽潯浠�,鍋滄鎶ヨ鍒欒繑鍥炵┖瀛楃涓�)
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public IASZoneReportInfo GetSensorAlarmInfo(CommonDevice i_device)
+        {
+            //IAS瀹夐槻淇℃伅涓婃姤
+            if ((i_device is IASZone) == false)
+            {
+                return null;
+            }
+            string mainkey = Common.LocalDevice.Current.GetDeviceMainKeys(i_device);
+            //鍥犱负鎺ㄩ�佺殑鏄櫄鎷熺殑璁惧锛屾墍浠ュ幓鑾峰彇鐪熷疄鐗╃悊璁惧
+            CommonDevice device = Common.LocalDevice.Current.GetDevice(mainkey);
+            if (device == null)
+            {
+                return null;
+            }
+            IASZone iASZone = (IASZone)i_device;
+            if (iASZone.iASInfo == null)
+            {
+                return null;
+            }
+
+            var alarmInfo = new IASZoneReportInfo();
+            if (iASZone.iASInfo.Battery == 1)
+            {
+                //鐢垫睜鐢甸噺浣�
+                alarmInfo.BatteryMsg = Language.StringByID(R.MyInternationalizationString.uLowElectricityConsumption);
+            }
+            if (iASZone.iASInfo.Tamper == 1)
+            {
+                //璁惧琚媶闄�
+                alarmInfo.DemolishmenMsg = Language.StringByID(R.MyInternationalizationString.uDeviceWasDismantled);
+            }
+
+            //杩愬姩浼犳劅鍣�
+            if (device.IasDeviceType == 13 || device.IasDeviceType == 541)
+            {
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //鏈変汉缁忚繃
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uHadUnKnowObjectPassed);
+                }
+            }
+            //鐑熼浘浼犳劅鍣�
+            else if (device.IasDeviceType == 40)
+            {
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //鐑熼浘鎶ヨ
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uSmogAlarm);
+                }
+            }
+            //姘翠镜浼犳劅鍣�
+            else if (device.IasDeviceType == 42)
+            {
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //妫�娴嬪埌婕忔按
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uWaterLeakageDetection);
+                }
+            }
+            //鐕冩皵浼犳劅鍣�
+            else if (device.IasDeviceType == 43)
+            {
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //鐕冩皵娉勬紡
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uCarbonMonoxideRevealed);
+                }
+            }
+            //绱ф�ユ寜閽�
+            else if (device.IasDeviceType == 44)
+            {
+                //绱ф�ユ寜閽�
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //绱ф�ユ寜閽鎸変笅
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uEmergencyButtonPressdown);
+                }
+            }
+            //閽ュ寵鎵�
+            else if (device.IasDeviceType == 277)
+            {
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //閽ュ寵鎵hЕ鍙戞姤璀�
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uKeyFobAlarm);
+                }
+            }
+            //闂ㄧ獥浼犳劅鍣�
+            else if (device.IasDeviceType == 21 || device.IasDeviceType == 22)
+            {
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //闂ㄧ獥琚墦寮�
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorOrWindowHadBeenOpen);
+                }
+                else
+                {
+                    //闂ㄧ獥宸插叧闂�
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorOrWindowHadClosed);
+                }
+            }
+            else
+            {
+                //浼犳劅鍣�
+                if (iASZone.iASInfo.Alarm1 == 1)
+                {
+                    //瑙﹀彂浼犳劅鍣ㄦ姤璀�
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uSensorAlarmHadTriggered);
+                }
+            }
+            return alarmInfo;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍗曚釜Json鏁版嵁閲岄潰,鍖呭惈鐨勫叏閮ㄦ姤璀︿俊鎭潯鏁�
+        /// </summary>
+        /// <param name="alarmInfo"></param>
+        /// <returns></returns>
+        public List<string> GetSensorListAlarmMsg(SafeguardAlarmInfo alarmInfo)
+        {
+            var listMsg = new List<string>();
+            //涓�鏉′俊鎭噷闈紝瀹冨彲鑳藉寘鍚涓姤璀�
+            if (string.IsNullOrEmpty(alarmInfo.AlarmMsg) == false)
+            {
+                //鎶ヨ淇℃伅
+                listMsg.Add(alarmInfo.AlarmMsg);
+            }
+            if (alarmInfo.BatteryMsg != null)
+            {
+                //鐢垫睜鐢甸噺
+                listMsg.Add(alarmInfo.BatteryMsg);
+            }
+            if (alarmInfo.DemolishmentMsg != null)
+            {
+                //琚媶鎶ヨ
+                listMsg.Add(alarmInfo.DemolishmentMsg);
+            }
+
+            return listMsg;
+        }
+
+        #endregion
+
+
+
+        #region 鈻� 闂ㄩ攣鎶ヨ淇濆瓨_______________________
+
+        /// <summary>
+        /// 淇濆瓨闂ㄩ攣鎶ヨ淇℃伅鍒版湰鍦�
+        /// </summary>
+        /// <param name="jobject"></param>
+        public bool SaveDoorLockAlarmInfo(Newtonsoft.Json.Linq.JObject jobject)
+        {
+            var device = Common.LocalDevice.Current.GetDevice(jobject.Value<string>("DeviceAddr"), jobject.Value<int>("Epoint"));
+            if ((device is ZigBee.Device.DoorLock) == false)
+            {
+                //瀹冧笉鏄棬閿�
+                return false;
+            }
+            var msgInfo = this.GetDoorLockAlarmInfo(jobject);
+            if (msgInfo == null)
+            {
+                //寮傚父锛燂紵
+                return false;
+            }
+
+            lock (listDoorLockAlarmInfo)
+            {
+                //鑾峰彇淇濆瓨瀹夐槻淇℃伅鐨勬枃浠跺悕瀛�
+                string fileName = this.GetSafeguardAlarmFileName();
+
+                msgInfo.DeviceAddr = device.DeviceAddr;
+                msgInfo.DeviceEpoint = device.DeviceEpoint;
+                msgInfo.DeviceName = device.DeviceName;
+                msgInfo.Time = DateTime.Now.ToString("HH:mm:ss");
+                msgInfo.RoomName = HdlRoomLogic.Current.GetRoomNameByDevice(device);
+
+                //闄愬埗瀹冪殑闀垮害
+                this.listDoorLockAlarmInfo.Insert(0, msgInfo);
+                if (this.listDoorLockAlarmInfo.Count > UserCenterResourse.ResidenceOption.DoorLockOnedayMaxAlarmMsgCount)
+                {
+                    this.listDoorLockAlarmInfo.RemoveAt(this.listDoorLockAlarmInfo.Count - 1);
+                }
+
+                //淇濆瓨鍒版湰鍦�
+                string fullName = System.IO.Path.Combine(DirNameResourse.DoorLockAlarmDirectory, fileName);
+                HdlFileLogic.Current.SaveFileContent(fullName, this.listDoorLockAlarmInfo);
+
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏈湴璁板綍鐨勯棬閿佹姤璀︿俊鎭�
+        /// </summary>
+        /// <returns></returns>
+        public Dictionary<string, List<DeviceAlarmInfo>> GetAllDoorLockAlarmInfo()
+        {
+            lock (listDoorLockAlarmInfo)
+            {
+                string fullPath = DirNameResourse.DoorLockAlarmDirectory;
+                //鑾峰彇鎸囧畾鐩綍涓嬮潰鐨勬枃浠�
+                List<string> listFile = HdlFileLogic.Current.GetFileFromDirectory(fullPath);
+                //鍗囧簭
+                listFile.Sort();
+                var dic = new Dictionary<string, List<DeviceAlarmInfo>>();
+                for (int i = listFile.Count - 1; i >= 0; i--)
+                {
+                    var data = HdlFileLogic.Current.ReadFileByteContent(System.IO.Path.Combine(fullPath, listFile[i]));
+                    var info = JsonConvert.DeserializeObject<List<DeviceAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
+                    if (info == null)
+                    {
+                        continue;
+                    }
+                    var listInfo = new List<DeviceAlarmInfo>();
+                    for (int j = 0; j < info.Count; j++)
+                    {
+                        if (j == UserCenterResourse.ResidenceOption.DoorLockOnedayMaxAlarmMsgCount)
+                        {
+                            //姣忓ぉ鏈�澶氫笁鍗佹潯鏁版嵁
+                            break;
+                        }
+                        listInfo.Add(info[j]);
+                    }
+                    dic[listFile[i]] = listInfo;
+
+                    if (dic.Count == UserCenterResourse.ResidenceOption.DoorLockMaxAlarmMsgDay)
+                    {
+                        //鍙涓夊ぉ鐨勯噺
+                        break;
+                    }
+                }
+                return dic;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 闂ㄩ攣鎶ヨ鐨勪俊鎭炕璇戞枃鏈琠____________
+
+        /// <summary>
+        /// 鑾峰彇闂ㄩ攣鎶ヨ鐨勪俊鎭炕璇戞枃鏈�(杩斿洖null鍒欒〃绀烘潯浠舵湭杈炬垚)
+        /// </summary>
+        /// <param name="jobject"></param>
+        /// <returns></returns>
+        public DeviceAlarmInfo GetDoorLockAlarmInfo(Newtonsoft.Json.Linq.JObject jobject)
+        {
+            var info = JsonConvert.DeserializeObject<DoorLockAlarmsResult>(jobject["Data"].ToString());
+            var alarmInfo = new DeviceAlarmInfo();
+
+            if (info.Clusterid == 1)
+            {
+                if (info.AlarmCode == 16)
+                {
+                    //鐢垫睜鐢甸噺浣�
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uLowElectricityConsumption);
+                }
+            }
+            else if(info.Clusterid == 257)
+            {
+                if (info.AlarmCode == 0)
+                {
+                    //闂ㄦ爴鍫靛
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg1);
+                }
+                else if (info.AlarmCode == 1)
+                {
+                    //闂ㄩ攣鎭㈠鍑哄巶璁剧疆
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg2);
+                }
+                else if (info.AlarmCode == 3)
+                {
+                    //妯″潡鏇存崲鐢垫睜
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg3);
+                }
+                else if (info.AlarmCode == 4)
+                {
+                    //閿欒灏濊瘯寮�閿佽鎶�
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg4);
+                }
+                else if (info.AlarmCode == 6)
+                {
+                    //鏆村姏寮�闂�
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg5);
+                }
+                else if (info.AlarmCode == 216)
+                {
+                    //甯稿紑妯″紡寮�鍚�(闂ㄩ攣瑙﹀彂)
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg6);
+                    alarmInfo.MsgDiv = 9000;
+                }
+                else if (info.AlarmCode == 217)
+                {
+                    //甯稿紑妯″紡缁撴潫(闂ㄩ攣瑙﹀彂)
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg7);
+                    alarmInfo.MsgDiv = 9000;
+                }
+                else if (info.AlarmCode == 218)
+                {
+                    //甯稿紑妯″紡寮�鍚�(缃戝叧瑙﹀彂)
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg9);
+                    alarmInfo.MsgDiv = 9000;
+                }
+                else if (info.AlarmCode == 219)
+                {
+                    //甯稿紑妯″紡缁撴潫(缃戝叧瑙﹀彂)
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg10);
+                    alarmInfo.MsgDiv = 9000;
+                }
+                else if (info.AlarmCode == 232)
+                {
+                    //鏈変汉璁块棶
+                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uDoorLockAlarmMsg8);
+                }
+            }
+            return alarmInfo.AlarmMsg == string.Empty ? null : alarmInfo;
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鑾峰彇鎶ヨ淇℃伅鐨勬枃浠跺悕瀛�
+        /// </summary>
+        /// <returns></returns>
+        private string GetAlarmFileName()
+        {
+            string fileName = DateTime.Now.ToString("yyyyMMdd");
+            if (fileName != oldDeviceAlarmFile)
+            {
+                //鑰冭檻鍒扮敤鎴锋湁鍙兘24鐐圭殑鏃跺�欎笉閫�鍑篈PP,杩欎釜鏃跺�欑洿鎺ュ埛鏂�
+                this.RefreshAlarmInfo();
+            }
+            oldDeviceAlarmFile = fileName;
+            return fileName;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0