From 48ba446936b51fffafa7c3600c0dadc6ac0e8c20 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 10 七月 2020 10:52:13 +0800 Subject: [PATCH] 2020-07-10-01 --- ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs | 72 +++++++++++++----------------------- 1 files changed, 26 insertions(+), 46 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs index f8b36df..9810450 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs @@ -31,19 +31,7 @@ { get { - return GateWayList.Find((obj) => { return obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId && obj.getGatewayBaseInfo.IsMainGateWay; }); - } - } - - /// <summary> - /// 涓荤綉鍏� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public bool IsMainGateWay - { - get - { - return getGatewayBaseInfo != null && getGatewayBaseInfo.IsMainGateWay; + return GateWayList.Find((obj) => { return obj.HomeId == Shared.Common.Config.Instance.HomeId && obj.IsMainGateWay; }); } } @@ -68,7 +56,7 @@ { get { - var fileName = "Gateway_" + DeviceType.ZbGateway.ToString() + "_" + this.getGatewayBaseInfo?.gwID; + var fileName = "Gateway_" + DeviceType.ZbGateway.ToString() + "_" + this.GwId; return fileName; } } @@ -551,7 +539,6 @@ { await System.Threading.Tasks.Task.Run(async () => { - CommonDevice commonDev = null; Action<string, string> action1 = (topic, message) => { }; Actions += action1; var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 94 } }; @@ -2462,17 +2449,10 @@ }); } - class GateWayBaseInfomation - { - //public string GatewayUniqueId;//"Emq缃戝叧1", <!-- 缃戝叧Mac --> - public bool MqttOnlineStatus;//: true, <!-- 缃戝叧鍦ㄤ簯绔疎mq鏄惁鍦ㄧ嚎 --> - public string AesKey;// : "a5d8da8a-ddea-48", <!-- 涓庢缃戝叧鍦ㄤ簯绔疎mq閫氫俊鏃讹紝璐熻浇鍔犺В鐨�16浣岮es瀵嗛挜 --> - public string MacMark;//: "61eaa0ea-4812-4a7a-86d6-3098c61e64ed" <!-- 缃戝叧瀵瑰簲鐨勫敮涓�鐮� --> - } /// <summary> /// 褰撳墠鏈夊笎鍙蜂笅鎵�鏈夌殑缃戝叧鍒楄〃鍙婁俊鎭� /// </summary> - static Dictionary<string, GateWayBaseInfomation> GateWayBaseInfomations = new Dictionary<string, GateWayBaseInfomation> { }; + public static Dictionary<string, Shared.Phone.UserCenter.GatewayResult> GateWayBaseInfomations = new Dictionary<string, Shared.Phone.UserCenter.GatewayResult> { }; /// <summary> /// 鑾峰彇褰撳墠甯愬彿鎵�鏈夌殑缃戝叧淇℃伅 /// </summary> @@ -2543,7 +2523,7 @@ var list = JArray.Parse(responseData["PageData"].ToString()); foreach (var v in list) { - GateWayBaseInfomations[v["GatewayUniqueId"].ToString()] = new GateWayBaseInfomation { AesKey = v["AesKey"].ToString(), MacMark = v["MacMark"].ToString(), MqttOnlineStatus = bool.Parse(v["MqttOnlineStatus"].ToString()) }; + GateWayBaseInfomations[v["GatewayUniqueId"].ToString()] = new Shared.Phone.UserCenter.GatewayResult { AesKey = v["AesKey"].ToString(), MacMark = v["MacMark"].ToString(), MqttOnlineStatus = bool.Parse(v["MqttOnlineStatus"].ToString()) }; //if (RemoteMqttClient.IsConnected) { await RemoteMqttClient.SubscribeAsync($"/ZigbeeGateWayToClient/{v["MacMark"].ToString()}/#", MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce); @@ -2652,12 +2632,12 @@ await initGateWayBaseInfomation(); //娌℃湁涓荤綉鍏虫椂涓诲姩璇诲彇锛岃幏鍙栦富缃戝叧淇℃伅 - var gateWayList = GateWayList.FindAll(obj => obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId); - if (gateWayList.Find(obj => obj.getGatewayBaseInfo.IsMainGateWay == true) == null) + var gateWayList = GateWayList.FindAll(obj => obj.HomeId == Shared.Common.Config.Instance.HomeId); + if (gateWayList.Find(obj => obj.IsMainGateWay == true) == null) { if (gateWayList.Count == 1) { - gateWayList[0].getGatewayBaseInfo.IsMainGateWay = true; + gateWayList[0].IsMainGateWay = true; } else { @@ -2673,13 +2653,13 @@ { for (int j = 0; j < gateWayList.Count; j++) { - if (gateWayList[i].getGatewayBaseInfo.gwID == info.getGwData.GwId) + if (gateWayList[i].GwId == info.getGwData.GwId) { - gateWayList[i].getGatewayBaseInfo.IsMainGateWay = true; + gateWayList[i].IsMainGateWay = true; } else { - gateWayList[i].getGatewayBaseInfo.IsMainGateWay = false; + gateWayList[i].IsMainGateWay = false; } } break; @@ -2858,11 +2838,11 @@ { try { - if (this.getGatewayBaseInfo?.gwID == null || !GateWayBaseInfomations.ContainsKey(this.getGatewayBaseInfo?.gwID)) + if (this.GwId == string.Empty || !GateWayBaseInfomations.ContainsKey(this.GwId)) { return; } - var gateWayBaseInfomation = GateWayBaseInfomations[this.getGatewayBaseInfo?.gwID]; + var gateWayBaseInfomation = GateWayBaseInfomations[this.GwId]; message = SecuritySet.AesEncryptBytes(message, gateWayBaseInfomation.AesKey); var topicEncStr = $"/ClientToZigbeeGateWay/{gateWayBaseInfomation.MacMark}/Common/{topicName}"; //(6)鏋勫缓Mqtt闇�瑕佸彂甯冪殑鏁版嵁鍖�,鍙戝竷缁欎簯绔殑MqttBroker @@ -3155,7 +3135,7 @@ //鍏ㄥ眬鎺ユ敹缃戝叧鎺ㄩ�佺殑鐨勯�昏緫(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�) Shared.Phone.UserCenter.HdlGatewayReceiveLogic.Current.GatewayOverallMsgReceive(gatewayID, topic, reportStatus, message); - var gwa = GateWayList.Find(obj => obj.getGatewayBaseInfo.gwID == gatewayID); + var gwa = GateWayList.Find(obj => obj.GwId == gatewayID); if (gwa == null) { return; @@ -3193,16 +3173,16 @@ var gwData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.GetGwData>(jobject["Data"].ToString()); if (gwData != null) { - var gwList = GateWayList.FindAll(obj => obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId); + var gwList = GateWayList.FindAll(obj => obj.HomeId == Shared.Common.Config.Instance.HomeId); for (int i = 0; i < gwList.Count; i++) { - if (gwList[i].getGatewayBaseInfo.gwID == gatewayID) + if (gwList[i].GwId == gatewayID) { - gwList[i].getGatewayBaseInfo.IsMainGateWay = true; + gwList[i].IsMainGateWay = true; } else { - gwList[i].getGatewayBaseInfo.IsMainGateWay = false; + gwList[i].IsMainGateWay = false; } } } @@ -3237,7 +3217,7 @@ switch ((DeviceType)(deviceID)) { case DeviceType.DoorLock: - var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID }; + var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), CurrentGateWayId = gwa.GwId }; var OperatingEventNotificationDatad = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockOperatingEventNotificationCommand>(jobject["Data"].ToString()); if (OperatingEventNotificationDatad != null) { @@ -3260,7 +3240,7 @@ switch ((DeviceType)(deviceID)) { case DeviceType.DoorLock: - var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), CurrentGateWayId = gwa.getGatewayBaseInfo.gwID }; + var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), CurrentGateWayId = gwa.GwId }; var ProgrammingEventNotificationData = Newtonsoft.Json.JsonConvert.DeserializeObject<ZigBee.Device.DoorLock.DoorLockProgrammingEventNotificationCommand>(jobject["Data"].ToString()); if (ProgrammingEventNotificationData != null) { @@ -3362,7 +3342,7 @@ #region 闃插尯琚Е鍙戞椂鎶ュ憡 else if (topic == gatewayID + "/" + "Security/ZoneTriggerReport") { - var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID }; + var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.GwId }; ias.zoneTriggerReportData = Newtonsoft.Json.JsonConvert.DeserializeObject<Safeguard.ZoneTriggerReportData>(jobject["Data"].ToString()); if (ias.zoneTriggerReportData == null) @@ -3380,7 +3360,7 @@ #region 閫昏緫琚皟鐢ㄥ弽棣� else if (topic == gatewayID + "/" + "Logic/Execute_Respon") { - //var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID }; + //var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.GwId }; //logic.logicExecuteRespo = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.ExecuteResponse>(jobject["Data"].ToString()); //if (logic.logicExecuteRespo == null) @@ -3398,7 +3378,7 @@ #region 鏃堕棿鐐规潯浠舵帹杩熸墽琛� else if (topic == gatewayID + "/" + "Logic/TimingWillArrive") { - //var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID }; + //var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.GwId }; //logic.timingWillArriveData = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.TimingWillArriveData>(jobject["Data"].ToString()); //if (logic.timingWillArriveData == null) @@ -3416,7 +3396,7 @@ #region 妯″紡瀹夐槻鍔ㄤ綔琚渶缁堟縺娲绘椂鍙戦�佹姤璀︿俊鎭� else if (topic == gatewayID + "/" + "Security/ModeTriggerReport") { - var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID }; + var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.GwId }; ias.modeTriggerReportData = Newtonsoft.Json.JsonConvert.DeserializeObject<Safeguard.ModeTriggerReportData>(jobject["Data"].ToString()); if (ias.modeTriggerReportData == null) { @@ -3433,7 +3413,7 @@ #region 閫氳繃澶栭儴鏂瑰紡甯冮槻鎾ら槻鎴愬姛鏃舵姤鍛婃伅 else if (topic == gatewayID + "/" + "Security/EnOrWithdrawSucceedReport") { - var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID }; + var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.GwId }; ias.enOrWithdrawSucceedReportData = Newtonsoft.Json.JsonConvert.DeserializeObject<Safeguard.EnOrWithdrawSucceedReportData>(jobject["Data"].ToString()); if (ias.enOrWithdrawSucceedReportData == null) { @@ -3450,7 +3430,7 @@ #region 鑳佽揩瀵嗙爜鎾ら槻鏃剁煭淇℃帹閫� else if (topic == gatewayID + "/" + "Security/PushTargetInfo") { - var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID }; + var ias = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.GwId }; ias.coercedPWDWithdrawReportData = Newtonsoft.Json.JsonConvert.DeserializeObject<Safeguard.CoercedPWDWithdrawReportData>(jobject["Data"].ToString()); if (ias.coercedPWDWithdrawReportData == null) { @@ -3513,7 +3493,7 @@ #if DEBUG if (flage == true) { - if (msg.Contains("DeviceStatusReport") == false) + //if (msg.Contains("DeviceStatusReport") == false) { System.Console.WriteLine(msg + " " + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond); } -- Gitblit v1.8.0