From 9137222ece9b978eb97b5598f2eee6e070bcf9d6 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期五, 28 二月 2020 15:22:16 +0800 Subject: [PATCH] 2020-02-28 更新 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs | 120 ++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 69 insertions(+), 51 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs index ed675ad..79e4a78 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideSettingGateway.cs @@ -6,6 +6,7 @@ { public class GuideSettingGateway : FrameLayout { + static byte TYPEStandardMQTT = 5; static byte TYPEHdlMQTT = 4; static GuideSettingGateway curView; @@ -247,6 +248,8 @@ this.AddChidren (myLoading); //myLoading.Start ("鐐瑰嚮灞忓箷鍏抽棴閰嶉妯″紡"); myLoading.Start ("Searching, Please touch the here to exit the searching mode."); + //myLoading.Start ("Waiting for new device, Please touch the here to exit the waiting mode."); + this.AddChidren (btnCloseLoading); } }); @@ -526,6 +529,11 @@ }) { IsBackground = true }.Start (); } + ///// <summary> + ///// 2020-02-11 + ///// 鎼滅储閲嶅娆℃暟 鐢�4娆″鍔犱负6娆� + ///// </summary> + //static readonly int READ_COUNT = 6; /// <summary> /// 璇诲彇璁惧 /// </summary> @@ -539,7 +547,8 @@ CommonPage.DeviceList.Clear (); CommonPage.searchTotal = 0; //濡傛灉涓ゆ閮芥病鏈夋暟鎹弽棣堬紝灏变笉璇诲彇 - int readCount = 4; + //2020 - 02 - 11鎼滅储閲嶅娆℃暟 鐢�4娆″鍔犱负6娆� + int readCount = 6; while (0 < readCount) { readCount--; var ms = new System.IO.MemoryStream (); @@ -574,7 +583,7 @@ System.Threading.Thread.Sleep (1000); //濡傛灉鏁伴噺涓嶇浉绛夛紝灏遍噸缃鏁� if (tempCount != CommonPage.DeviceList.Count) { - readCount = 4; + readCount = 6; } } CommonPage.DeviceList = CommonPage.DeviceList.FindAll ((obj) => { return obj != null && obj.SubnetID == gatewayDeicve.SubnetID; }); @@ -671,7 +680,7 @@ var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, serverIPBytes); if (mobytes == null) { Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), + new Alert ("", ErrorCode.GatewayNoResponse, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); } else if (mobytes [0] == 0xF5) { @@ -684,7 +693,7 @@ var bindReginIdStatus = Control.ControlBytesSendHasReturn (Command.Write_APP_Data_STORE_1D5E_CMD, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, currentRegionIdBytes); if (bindReginIdStatus == null) { Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show (); + new Alert ("", ErrorCode.GatewayNoResponse, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); return; } else if (bindReginIdStatus [0] != 0xF8) { @@ -723,55 +732,25 @@ byte [] gatewayBytes = null; string [] strServerIP = (MainPage.SeviceIP).Split ('.'); string [] strServerIP1 = (MainPage.SeviceIP).Split ('.'); - MainPage.Loading.Start ("Configuring device..."); + MainPage.Loading.Start ("Configuring gateway..."); System.Threading.Tasks.Task.Run (() => { try { - //璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅 - gatewayBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { }); - - gatewayDeicve.Remote_GroupName = MainPage.LoginUser.AccountString;//UserConfig.Instance.CurrentRegion.RegionName; - gatewayDeicve.Remote_ProjectName = gatewayDeicve.MAC.Replace (".", "");//UserConfig.Instance.CurrentRegion.RegionName; - gatewayDeicve.Remote_UserName = "Admin"; - gatewayDeicve.Remote_Password = "c" + MainPage.LoginUser.ID; - //gatewayDeicve.Remote_Password = "85521566"; - byte [] ggn = new byte [20]; - byte [] b1 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_GroupName); - gatewayDeicve.Remote_GroupName = CommonPage.MyEncodingGB2312.GetString (b1); - Array.Copy (b1, 0, ggn, 0, 20 < b1.Length ? 20 : b1.Length); - - byte [] gpn = new byte [20]; - byte [] b2 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_ProjectName); - Array.Copy (b2, 0, gpn, 0, 20 < b2.Length ? 20 : b2.Length); - - byte [] gun = new byte [8]; - byte [] b3 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_UserName); - Array.Copy (b3, 0, gun, 0, 8 < b3.Length ? 8 : b3.Length); - - byte [] gpw = new byte [8]; - byte [] b4 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_Password); - Array.Copy (b4, 0, gpw, 0, 8 < b4.Length ? 8 : b4.Length); - - - gatewayBytes [0] = TYPEHdlMQTT;//HDL MQTT - Array.Copy (ggn, 0, gatewayBytes, 1, 20); - Array.Copy (gpn, 0, gatewayBytes, 21, 20); - Array.Copy (gun, 0, gatewayBytes, 41, 8); - Array.Copy (gpw, 0, gatewayBytes, 49, 8); - //1.淇敼鐢ㄦ埛鍚嶄俊鎭� - Control.ControlBytesSend (Command.SetGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, gatewayBytes); - ////2.璇诲彇涓�娆$鐞嗕俊鎭� - //byte [] adminBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayAdminInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { }); - ////3.淇敼绠$悊淇℃伅 - //if (SetGateWayAdminInfo (adminBytes)) { - // //4.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣� - // GatewaySettingSucceeded (); + ////璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅 + //gatewayBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, new byte [] { }); + //if (gatewayBytes == null) { + // //璇诲彇涓�绔彛浜ゆ崲鏈恒�佹棤绾跨綉鍏崇殑閰嶇疆淇℃伅澶辫触 + // new Alert ("", "Read gateway configuration failed!", "Close").Show (); + // return; //} - - //2.淇敼绠$悊淇℃伅 - if (SetGateWayAdminInfo ()) { - //3.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣� - GatewaySettingSucceeded (); + + //1.淇敼鐢ㄦ埛鍚嶄俊鎭� 鍜屼慨鏀硅繛鎺ユā寮� + if (SetGateWayModelInfo()) { + //2.淇敼绠$悊淇℃伅 + if (SetGateWayAdminInfo ()) { + //3.鍐欓厤缃垚鍔熷悗涓嬩竴姝ユ搷浣� + GatewaySettingSucceeded (); + } } } catch (Exception ex) { @@ -789,6 +768,40 @@ } }); //Room.InitAllRoom (); + } + + bool SetGateWayModelInfo () { + byte [] gatewayBytes = new byte [60]; + gatewayDeicve.Remote_GroupName = MainPage.LoginUser.AccountString;//UserConfig.Instance.CurrentRegion.RegionName; + gatewayDeicve.Remote_ProjectName = gatewayDeicve.MAC.Replace (".", "");//UserConfig.Instance.CurrentRegion.RegionName; + gatewayDeicve.Remote_UserName = "Admin"; + gatewayDeicve.Remote_Password = "c" + MainPage.LoginUser.ID; + //gatewayDeicve.Remote_Password = "85521566"; + byte [] ggn = new byte [20]; + byte [] b1 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_GroupName); + gatewayDeicve.Remote_GroupName = CommonPage.MyEncodingGB2312.GetString (b1); + Array.Copy (b1, 0, ggn, 0, 20 < b1.Length ? 20 : b1.Length); + + byte [] gpn = new byte [20]; + byte [] b2 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_ProjectName); + Array.Copy (b2, 0, gpn, 0, 20 < b2.Length ? 20 : b2.Length); + + byte [] gun = new byte [8]; + byte [] b3 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_UserName); + Array.Copy (b3, 0, gun, 0, 8 < b3.Length ? 8 : b3.Length); + + byte [] gpw = new byte [8]; + byte [] b4 = CommonPage.MyEncodingGB2312.GetBytes (gatewayDeicve.Remote_Password); + Array.Copy (b4, 0, gpw, 0, 8 < b4.Length ? 8 : b4.Length); + + + gatewayBytes [0] = TYPEHdlMQTT;//HDL MQTT + Array.Copy (ggn, 0, gatewayBytes, 1, 20); + Array.Copy (gpn, 0, gatewayBytes, 21, 20); + Array.Copy (gun, 0, gatewayBytes, 41, 8); + Array.Copy (gpw, 0, gatewayBytes, 49, 8); + byte [] backBytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInfo, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, gatewayBytes); + return CheckIsSuccessfulWithBytes (backBytes, "Failed to modify gateway connection mode."); } /// <summary> @@ -847,7 +860,7 @@ { if (backBytes == null) { Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), + new Alert ("", ErrorCode.GatewayNoResponse, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); return false; @@ -880,7 +893,7 @@ var bindReginIdStatus = Control.ControlBytesSendHasReturn (Command.Write_APP_Data_STORE_1D5E_CMD, gatewayDeicve.SubnetID, gatewayDeicve.DeviceID, sendBytes); if (bindReginIdStatus == null) { Application.RunOnMainThread (() => { - new Alert ("", Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show (); + new Alert ("", ErrorCode.GatewayNoResponse, Language.StringByID (R.MyInternationalizationString.Close)).Show (); }); return; } else if (bindReginIdStatus [0] != 0xF8) { @@ -955,9 +968,14 @@ MainPage.LoginUser.LastTime = DateTime.Now; Application.RunOnMainThread (() => { bodyView.RemoveAll (); + //MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png"; UserMiddle.Init (true); + MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png"; + UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus; }); + //Utlis.ShowAppLinkStatus (AppLinkStatus.WiFi); + } -- Gitblit v1.8.0