From 627093aca723d4bfb971b97c828e8b3a22dbda78 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 17 七月 2020 17:26:19 +0800
Subject: [PATCH] 2020-07-17-1
---
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