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/Common/Application.cs | 86 +++++++++---------------------------------- 1 files changed, 18 insertions(+), 68 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs index ec0ce95..f2f87b9 100755 --- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs +++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs @@ -13,7 +13,6 @@ public static class Application { public static bool isInited; - static bool isEncry; /// <summary> /// 鏄惁姝e湪鎼滅储缃戝叧 /// </summary> @@ -84,12 +83,12 @@ 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); } } @@ -144,7 +143,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") @@ -193,19 +192,16 @@ var pubKey = Encoding.UTF8.GetString(bytes, 49 + gwNameLength + 1 + gwIdLength + 2 + 1, pubKeyLength); var zbGateWay = new ZbGateway { - getGatewayBaseInfo = new ZbGateway.GatewayBaseInfo - { - IpAddress = ipAddress, - 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) @@ -224,7 +220,7 @@ //} } //缃戝叧鍒楄〃瀛樺偍澶勭悊 - 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); @@ -236,7 +232,7 @@ gateWay.IsVirtual = false; //灏嗚缃戝叧鏍囪瘑涓恒�愬彲鎼滅储鍒帮紝鍗筹細鍦ㄧ嚎銆� gateWay.GatewayOnlineFlage = true; - if (gateWay.getGatewayBaseInfo.IpAddress != ipAddress) + if (gateWay.GwIP != ipAddress) { await gateWay.DisConnectLocalMqttClient("2"); ZbGateway.GateWayList.Remove(gateWay); @@ -247,25 +243,25 @@ else { gateWay.PubKey = pubKey; - 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; } } @@ -334,10 +330,6 @@ { //鏈湴Socket public static Socket busSocket; - /// <summary> - /// 璁℃椂鍣� - /// </summary> - private static int timeCount = 0; /// <summary> /// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳� @@ -395,52 +387,10 @@ { try { - //妫�娴嬭繛鎺ョ姸鎬� - CheckConnectiton(); - Start(7624); busSocket.BeginSendTo(bytes, 0, bytes.Length, SocketFlags.None, iPEndPoint, new AsyncCallback(asyncEndSend), null); } catch { } - } - - /// <summary> - /// 妫�娴嬭繛鎺ョ姸鎬� - /// </summary> - private static void CheckConnectiton() - { - if (busSocket == null) { return; } - timeCount++; - if (timeCount < 20) - { - //姣�10绉掓娴嬩竴娆� - return; - } - timeCount = 0; - - bool blockingState = busSocket.Blocking; - try - { - byte[] tmp = new byte[1]; - - busSocket.Blocking = false; - busSocket.Send(tmp, 0, 0); - //tcp杩樺湪杩炴帴鐫� - busSocket.Blocking = blockingState; - } - catch (SocketException e) - { - // 10035 == WSAEWOULDBLOCK - if (e.NativeErrorCode.Equals(10035)) - { - //Still Connected, but the Send would block - } - else - { - //tcp宸茬粡鏂紑浜嗚繛鎺� - Stop(); - } - } } /// <summary> -- Gitblit v1.8.0