From cf0bffdf072bae11bdb8c780d0a355818700f713 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 18 五月 2020 15:42:45 +0800
Subject: [PATCH] 请合并代码,优化面板问题
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAlarmsLogic.cs | 635 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 635 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 100755
index 0000000..88b24d8
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAlarmsLogic.cs
@@ -0,0 +1,635 @@
+锘縰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 = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory, fileName);
+ if (System.IO.File.Exists(fullName) == true)
+ {
+ lock (listSafetyAlarmInfo)
+ {
+ string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
+ var data = Global.ReadFileByDirectory(dir, fileName);
+ this.listSafetyAlarmInfo = JsonConvert.DeserializeObject<List<SafeguardAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
+ if (this.listSafetyAlarmInfo == null)
+ {
+ this.listSafetyAlarmInfo = new List<SafeguardAlarmInfo>();
+ }
+ }
+ }
+ //闂ㄩ攣璁板綍
+ fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory, fileName);
+ if (System.IO.File.Exists(fullName) == true)
+ {
+ lock (listDoorLockAlarmInfo)
+ {
+ string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
+ var data = Global.ReadFileByDirectory(dir, fileName);
+ this.listDoorLockAlarmInfo = JsonConvert.DeserializeObject<List<DeviceAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
+ 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);
+ }
+
+ //淇濆瓨鍒版湰鍦�
+ var saveData = JsonConvert.SerializeObject(this.listSafetyAlarmInfo);
+ var byteData = System.Text.Encoding.UTF8.GetBytes(saveData);
+ string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
+ Global.WriteFileToDirectoryByBytes(dir, fileName, byteData);
+
+ 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);
+ }
+
+ //淇濆瓨鍒版湰鍦�
+ var saveData = JsonConvert.SerializeObject(this.listSafetyAlarmInfo);
+ var byteData = System.Text.Encoding.UTF8.GetBytes(saveData);
+ string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
+ Global.WriteFileToDirectoryByBytes(dir, fileName, byteData);
+ }
+ }
+
+ /// <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 = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
+ //鍊熺敤涓�涓嬭嚜鍔ㄥ浠借幏鍙栨寚瀹氱洰褰曚笅闈㈢殑鏂囦欢鐨勫嚱鏁�
+ List<string> listFile = HdlAutoBackupLogic.GetFileFromDirectory(fullPath);
+ //鍗囧簭
+ listFile.Sort();
+ var dic = new Dictionary<string, List<SafeguardAlarmInfo>>();
+ string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
+ for (int i = listFile.Count - 1; i >= 0; i--)
+ {
+ var data = Global.ReadFileByDirectory(dir, 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;
+
+ 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)
+ {
+ 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);
+ }
+
+ //淇濆瓨鍒版湰鍦�
+ var saveData = JsonConvert.SerializeObject(this.listDoorLockAlarmInfo);
+ var byteData = System.Text.Encoding.UTF8.GetBytes(saveData);
+ string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
+ Global.WriteFileToDirectoryByBytes(dir, fileName, byteData);
+ return true;
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鏈湴璁板綍鐨勯棬閿佹姤璀︿俊鎭�
+ /// </summary>
+ /// <returns></returns>
+ public Dictionary<string, List<DeviceAlarmInfo>> GetAllDoorLockAlarmInfo()
+ {
+ lock (listDoorLockAlarmInfo)
+ {
+ string fullPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
+ //鍊熺敤涓�涓嬭嚜鍔ㄥ浠借幏鍙栨寚瀹氱洰褰曚笅闈㈢殑鏂囦欢鐨勫嚱鏁�
+ List<string> listFile = HdlAutoBackupLogic.GetFileFromDirectory(fullPath);
+ //鍗囧簭
+ listFile.Sort();
+ var dic = new Dictionary<string, List<DeviceAlarmInfo>>();
+ string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
+ for (int i = listFile.Count - 1; i >= 0; i--)
+ {
+ var data = Global.ReadFileByDirectory(dir, 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