From 412e0af11df2b1d7986adf002e7997d82344ab3e Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 13 七月 2020 09:47:40 +0800
Subject: [PATCH] 请合并最新版代码
---
ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs | 142 ++++++++++++++++++++--------------------------
1 files changed, 62 insertions(+), 80 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
old mode 100755
new mode 100644
index 31d21c8..e229871
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
@@ -7,13 +7,11 @@
using Shared.Common;
using ZigBee.Device;
-
namespace ZigBee.Common
{
public static class Application
{
public static bool isInited;
- static bool isEncry;
/// <summary>
/// 鏄惁姝e湪鎼滅储缃戝叧
/// </summary>
@@ -84,41 +82,47 @@
if (paths.Length < 3)
continue;
- var gateWay = ZbGateway.GateWayList.Find(obj => (obj != null) && (obj.getGatewayBaseInfo != null) && (obj.getGatewayBaseInfo.gwID == paths[2]));
+ var gateWay = ZbGateway.GateWayList.Find(obj => (obj != null) && (obj.GwId == paths[2]));
if (gateWay == null)
{
gateWay = new ZbGateway { IsVirtual = true };
- gateWay.getGatewayBaseInfo.gwID = paths[2];
- gateWay.getGatewayBaseInfo.HomeId = Shared.Common.Config.Instance.HomeId;
+ gateWay.GwId = paths[2];
+ gateWay.HomeId = Shared.Common.Config.Instance.HomeId;
ZbGateway.GateWayList.Add(gateWay);
}
}
}
- var broadcastIpAddress = new Shared.Net.NetWiFi().BroadcastIpAddress;
-
-
+ var broadcastIpAddress = new Shared.Net.NetWiFi().BroadcastIpAddress;
+
if (Shared.Application.IsWifi)
{
if (0 < gateWayList.Count)
{
searchCount = 6;
ZbGateway.IsRemote = false;
+ //褰撶綉鍏崇殑杩炴帴鏂瑰紡鏀瑰彉鏃�,璁板綍褰撳墠鐨勮繛鎺ユ柟寮�
+ Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.WIFI);
}
else
{
if (searchCount < 0)
{
ZbGateway.IsRemote = true;
+ //褰撶綉鍏崇殑杩炴帴鏂瑰紡鏀瑰彉鏃�,璁板綍褰撳墠鐨勮繛鎺ユ柟寮�
+ Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.Remote);
}
}
}
else
{
ZbGateway.IsRemote = true;
+ //褰撶綉鍏崇殑杩炴帴鏂瑰紡鏀瑰彉鏃�,璁板綍褰撳墠鐨勮繛鎺ユ柟寮�
+ Shared.Phone.UserCenter.HdlGatewayLogic.Current.CheckGatewayByConnectChanged(Shared.Phone.UserCenter.GatewayConnectMode.Remote);
+
for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
{
- ZbGateway.GateWayList[i].DisConnectLocalMqttClient("1");
+ ZbGateway.GateWayList[i].DisConnectLocalMqttClient("1");
}
}
@@ -137,7 +141,7 @@
//鐐瑰鐐瑰彂閫�(鍏堝彂涓�鏉″凡鏈夌殑鐐规挱锛屽洖澶嶅嚑鐜囬珮涓�鐐癸級
for (int i = 0; i < gateWayList.Count; i++)
{
- FindGateWaySocket.BeginSend(new System.Net.IPEndPoint(System.Net.IPAddress.Parse(gateWayList[i].getGatewayBaseInfo.IpAddress), 7624), broadBytes);
+ FindGateWaySocket.BeginSend(new System.Net.IPEndPoint(System.Net.IPAddress.Parse(gateWayList[i].GwIP), 7624), broadBytes);
}
//骞挎挱鍙戦��
if (broadcastIpAddress.ToString() != "0.0.0.0")
@@ -145,7 +149,11 @@
FindGateWaySocket.BeginSend(new System.Net.IPEndPoint(broadcastIpAddress, 7624), broadBytes);
}
}
- catch { }
+ catch
+ {
+ //鍏抽棴Socket,涓嬫鍙戦�佷細鑷姩杩炴帴
+ FindGateWaySocket.Stop();
+ }
System.Threading.Thread.Sleep(500);
}
})
@@ -182,20 +190,16 @@
var pubKey = Encoding.UTF8.GetString(bytes, 49 + gwNameLength + 1 + gwIdLength + 2 + 1, pubKeyLength);
var zbGateWay = new ZbGateway
{
- getGatewayBaseInfo = new ZbGateway.GatewayBaseInfo
- {
- IpAddress = ipAddress,
- Time = time,
- GwName = gwName,
- HomeId = homeID,
- IsMainGateWay = isMainGateWay,
- gwID = id,
- },
+ GwIP = ipAddress,
+ GwName = gwName,
+ HomeId = homeID,
+ IsMainGateWay = isMainGateWay,
+ GwId = id,
GatewayOnlineFlage = true,
PubKey = pubKey
};
//閫氳鍒扮綉鍏冲垪琛�
- if (gateWayList.Find(obj => obj.getGatewayBaseInfo.gwID == zbGateWay.getGatewayBaseInfo.gwID) == null)
+ if (gateWayList.Find(obj => obj.GwId == zbGateWay.GwId) == null)
{
//缃戝叧鍖归厤褰撳墠浣忓畢涓埌缃戝叧
if (Shared.Common.Config.Instance.HomeId == homeID)
@@ -207,14 +211,14 @@
{
gateWayList.Add(zbGateWay);
}
- //缃戝叧涓埌浣忓畢ID涓虹┖姝ゆ椂涔熼�氳
- else if (homeID == string.Empty)
- {
- gateWayList.Add(zbGateWay);
- }
+ //缃戝叧涓埌浣忓畢ID涓虹┖姝ゆ椂涔熼�氳 2020.01.14鍙樻洿锛氭病杩欎釜蹇呰,涓婇潰閭d釜鍙橀噺灏辫兘澶勭悊
+ //else if (homeID == string.Empty)
+ //{
+ // gateWayList.Add(zbGateWay);
+ //}
}
//缃戝叧鍒楄〃瀛樺偍澶勭悊
- var gateWay = ZbGateway.GateWayList.Find(obj => obj.getGatewayBaseInfo != null && obj.getGatewayBaseInfo.gwID == zbGateWay.getGatewayBaseInfo.gwID);
+ var gateWay = ZbGateway.GateWayList.Find(obj => obj.GwId == zbGateWay.GwId);
if (gateWay == null)
{
ZbGateway.GateWayList.Add(zbGateWay);
@@ -226,7 +230,7 @@
gateWay.IsVirtual = false;
//灏嗚缃戝叧鏍囪瘑涓恒�愬彲鎼滅储鍒帮紝鍗筹細鍦ㄧ嚎銆�
gateWay.GatewayOnlineFlage = true;
- if (gateWay.getGatewayBaseInfo.IpAddress != ipAddress)
+ if (gateWay.GwIP != ipAddress)
{
await gateWay.DisConnectLocalMqttClient("2");
ZbGateway.GateWayList.Remove(gateWay);
@@ -237,31 +241,50 @@
else
{
gateWay.PubKey = pubKey;
- gateWay.getGatewayBaseInfo.Time = time;
- gateWay.getGatewayBaseInfo.GwName = gwName;
- gateWay.getGatewayBaseInfo.HomeId = homeID;
+ gateWay.GwName = gwName;
+ gateWay.HomeId = homeID;
await gateWay.StartLocalMqtt(ipAddress);
}
//涓荤綉鍏宠缃�
- if (isMainGateWay && oldHomeID == gateWay.getGatewayBaseInfo.HomeId)
+ if (isMainGateWay && oldHomeID == gateWay.HomeId)
{
for (int i = 0; i < ZbGateway.GateWayList.Count; i++)
{
var gw = ZbGateway.GateWayList[i];
//缃戝叧ID涓嶆槸褰撳墠鐨勭綉鍏筹紝鍒欐妸缃戝叧鍒楄〃涓叾浠栫綉鍏虫爣璁颁负涓嶆槸涓荤綉鍏�
- if (gw.getGatewayBaseInfo.gwID != id && oldHomeID == gw.getGatewayBaseInfo.HomeId)
+ if (gw.GwId != id && oldHomeID == gw.HomeId)
{
- gw.getGatewayBaseInfo.IsMainGateWay = false;
+ gw.IsMainGateWay = false;
}
}
//鏍囪褰撳墠缃戝叧鏄富缃戝叧
- gateWay.getGatewayBaseInfo.IsMainGateWay = true;
+ gateWay.IsMainGateWay = true;
}
+ }
+
+ //娴嬭瘯鑳藉惁骞挎挱寰楀埌缃戝叧,閫氬父鎯呭喌涓嬩笉妫�娴�
+ if (Shared.Phone.UserCenter.UserCenterResourse.HideOption.CheckCanReceiveGateway == 1)
+ {
+ if (Shared.Phone.UserCenter.UserCenterResourse.DicReceiveGatewayTest.ContainsKey(id) == false)
+ {
+ if (gateWay == null)
+ {
+ Shared.Phone.UserCenter.UserCenterResourse.DicReceiveGatewayTest[id] = zbGateWay;
+ }
+ else
+ {
+ Shared.Phone.UserCenter.UserCenterResourse.DicReceiveGatewayTest[id] = gateWay;
+ }
+ }
}
}
}
- catch { }
+ catch
+ {
+ //鍏抽棴Socket,涓嬫鍙戦�佷細鑷姩杩炴帴
+ FindGateWaySocket.Stop();
+ }
}
#endregion
}
@@ -279,48 +302,7 @@
try
{
//瀹氭椂妫�娴嬭繙绋嬭繛鎺ユ儏鍐�
- await ZbGateway.StartRemoteMqtt();
- if (!ZbGateway.IsRemote)
- {
- System.Threading.Thread.Sleep(500);
- continue;
- }
- var gateWayList =ZbGateway.GateWayList.FindAll(obj => obj.getGatewayBaseInfo.HomeId == Shared.Common.Config.Instance.HomeId);
-
- if (gateWayList.Count == 1)
- {
- gateWayList[0].getGatewayBaseInfo.IsMainGateWay = true;
- }
- else
- {
- if (gateWayList.Find((obj) => obj.getGatewayBaseInfo.IsMainGateWay) == null)
- {
- for (int i = 0; i < gateWayList.Count; i++)
- {
- var gateWay = gateWayList[i];
- var info = await gateWay.GetZbGwInfoAsync();
- if (info == null || info.getGwData == null)
- {
- continue;
- }
- if (info.getGwData.IsDominant == 1)
- {
- for (int j = 0; j < gateWayList.Count; j++)
- {
- if (gateWayList[i].getGatewayBaseInfo.gwID == info.getGwData.GwId)
- {
- gateWayList[i].getGatewayBaseInfo.IsMainGateWay = true;
- }
- else
- {
- gateWayList[i].getGatewayBaseInfo.IsMainGateWay = false;
- }
- }
- break;
- }
- }
- }
- }
+ await ZbGateway.StartRemoteMqtt();
}
catch { }
System.Threading.Thread.Sleep(2000);
@@ -345,7 +327,7 @@
public static class FindGateWaySocket
{
//鏈湴Socket
- public static System.Net.Sockets.Socket busSocket;
+ public static Socket busSocket;
/// <summary>
/// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳�
@@ -391,7 +373,7 @@
{
get
{
- return null == busSocket ? false : true;
+ return busSocket == null ? false : true;
}
}
--
Gitblit v1.8.0