From 9ebd6edb9beddf1a6881b2ca924ed43bf5cedfbe Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 30 十二月 2022 11:24:03 +0800 Subject: [PATCH] 1 --- SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs | 137 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 110 insertions(+), 27 deletions(-) diff --git a/SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs b/SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs index 9b7c4ab..eb37042 100644 --- a/SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs +++ b/SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs @@ -1,5 +1,6 @@ 锘� using System; +using System.Collections.Generic; using Shared; using Shared.SimpleControl; @@ -77,7 +78,7 @@ text_Upgraded = "Upgraded"; text_Upgrading = "Upgrading"; text_UpgradeFailed = "Upgrade failed"; - text_UnknownVersion = "Unknown version"; + text_UnknownVersion = "Other version"; text_readFailure = "Read failure"; text_back = "Back"; text_link = "Link"; @@ -229,10 +230,15 @@ CommonPage.IsRemote = true; var sendBytes = new byte [29]; - var b1 = System.Text.Encoding.UTF8.GetBytes (userName); + var b1 = CommonPage.MyEncodingGB2312.GetBytes (userName); byte [] ggn = new byte [20]; Array.Copy (b1, 0, ggn, 0, 20 < b1.Length ? 20 : b1.Length); Array.Copy (ggn, 0, sendBytes, 9, 20); + + string newIp = "118.31.3.103"; + if(Language.CurrentLanguage!= "Chinese") { + newIp = "157.175.231.123"; + } new System.Threading.Thread (() => { @@ -241,11 +247,12 @@ MainPage.Loading.Start (); }); try { + //璇诲彇鏃ф湇鍔″櫒涓婄殑宸ョ▼鍒楄〃 var sss = Control.ControlBytesSendHasReturn (Command.GetRemoteOnePortListInfo, 0xFB, 0xFB, sendBytes); + var oldGatewayList = new List<GatewayBase> (); if (sss != null) { try { if (sss [1] == 248) { - Application.RunOnMainThread (() => { MainPage.Loading.Start (); rightButton1.Text = txt_connectionSucceeded; @@ -253,6 +260,7 @@ }); var count = sss [2] * 256 + sss [3]; + for (int i = 1; i <= count; i++) { byte [] arayImp = new byte [23]; if (b1.Length <= 20) @@ -264,19 +272,20 @@ var oneProtData = Control.ControlBytesSendHasReturn (Command.GetRemoteOnePortInfo, 0xFB, 0xFB, arayImp); if (oneProtData != null) { try { - var groupName = System.Text.Encoding.UTF8.GetString (oneProtData, 1, 20).Trim ('\0');//============= - var projectName22 = System.Text.Encoding.UTF8.GetString (oneProtData, 23, 20).Trim ('\0');//============= - var userName22 = System.Text.Encoding.UTF8.GetString (oneProtData, 43, 8).Trim ('\0');//============= + var groupName = CommonPage.MyEncodingGB2312.GetString (oneProtData, 1, 20).Trim ('\0'); + var projectName22 = CommonPage.MyEncodingGB2312.GetString (oneProtData, 23, 20).Trim ('\0'); + var userName22 = CommonPage.MyEncodingGB2312.GetString (oneProtData, 43, 8).Trim ('\0'); var isOnline = oneProtData [57] == 1; - Application.RunOnMainThread (() => { - RowLayout wirelessView = new RowLayout () { - Height = Application.GetRealHeight (93), - BackgroundColor = SkinStyle.Current.ViewColor, - }; - listView.AddChidren (wirelessView); - showGatewayRow (userName22,projectName22, wirelessView,isOnline); - }); + GatewayBase gatewayBase = new GatewayBase () { + Remote_GroupName = groupName, + Remote_ProjectName = projectName22, + Remote_UserName = userName22, + isOnline = isOnline, + }; + oldGatewayList.Add (gatewayBase); + + }catch (Exception ex) { } @@ -284,8 +293,77 @@ } } - } - else if(sss[1] == 245) { + + + + + //璇诲彇鏂版湇鍔″櫒涓婄殑宸ョ▼鍒楄〃 + var sss2 = Control.ControlBytesSendHasReturn (Command.GetRemoteOnePortListInfo, 0xFB, 0xFB, sendBytes, newIp); + var newGatewayList = new List<GatewayBase> (); + try { + if (sss [1] == 248) { + var countNew = sss [2] * 256 + sss [3]; + + for (int i = 1; i <= countNew; i++) { + byte [] arayImp = new byte [23]; + if (b1.Length <= 20) + Array.Copy (b1, 0, arayImp, 1, b1.Length); + else + Array.Copy (b1, 0, arayImp, 1, 20); + arayImp [21] = (byte)(i / 256); + arayImp [22] = (byte)(i % 256); + var oneProtData = Control.ControlBytesSendHasReturn (Command.GetRemoteOnePortInfo, 0xFB, 0xFB, arayImp, newIp); + if (oneProtData != null) { + try { + var groupName = CommonPage.MyEncodingGB2312.GetString (oneProtData, 1, 20).Trim ('\0'); + var projectName22 = CommonPage.MyEncodingGB2312.GetString (oneProtData, 23, 20).Trim ('\0'); + var userName22 = CommonPage.MyEncodingGB2312.GetString (oneProtData, 43, 8).Trim ('\0'); + + var oldGateway = oldGatewayList.Find ((obj) => obj.Remote_GroupName == groupName && + obj.Remote_ProjectName == projectName22 && obj.Remote_UserName == userName22); + if (oldGateway != null) { + oldGateway.isMoveToNewServer = true; + } + } catch (Exception ex) { + + } + } else { + + } + } + } else if (sss [1] == 245) { + Application.RunOnMainThread (() => { + rightButton1.Text = txt_NoData; + rightButton1.TextColor = 0x99FF0000; + }); + } else { + Application.RunOnMainThread (() => { + rightButton1.Text = txt_QueryFailed; + rightButton1.TextColor = 0x99FF0000; + }); + } + } catch (Exception ex) { + Application.RunOnMainThread (() => { + rightButton1.Text = txt_DataError; + rightButton1.TextColor = 0x99FF0000; + }); + } finally { + + } + + + Application.RunOnMainThread (() => { + foreach (var one in oldGatewayList) { + RowLayout wirelessView = new RowLayout () { + Height = Application.GetRealHeight (93), + BackgroundColor = SkinStyle.Current.ViewColor, + }; + listView.AddChidren (wirelessView); + showGatewayRow (one,wirelessView); + } + }); + + } else if(sss[1] == 245) { Application.RunOnMainThread (() => { rightButton1.Text = txt_NoData; rightButton1.TextColor = 0x99FF0000; @@ -338,7 +416,7 @@ /// <summary> /// 鏄剧ず /// </summary> - void showGatewayRow (string userName,string projectName, RowLayout wirelessView,bool isOnline) + void showGatewayRow (GatewayBase gatewayBase, RowLayout wirelessView) { Button pointButton1 = new Button () { @@ -347,7 +425,7 @@ X = Application.GetRealWidth (60), Radius = (uint)Application.GetRealHeight (7), Gravity = Gravity.CenterVertical, - BackgroundColor = isOnline ? 0xFF00FF00: 0xFF000000 + BackgroundColor = gatewayBase.isOnline ? 0xFF00FF00: 0xFF000000 }; wirelessView.AddChidren (pointButton1); @@ -355,7 +433,7 @@ Button nameButton1 = new Button () { Width = Application.GetRealWidth (342), Height = LayoutParams.MatchParent, - Text = projectName, + Text = gatewayBase.Remote_ProjectName, TextAlignment = TextAlignment.CenterLeft, X = pointButton1.Right + Application.GetRealWidth (20), TextColor = SkinStyle.Current.TextColor1, @@ -373,15 +451,20 @@ TextSize = 12, Text = text_link, }; - if (isOnline) - wirelessView.AddChidren (rightButton1); - EventHandler<MouseEventArgs> eventHandler = (sender, e) => { - LinkOnePort (userName,projectName); - }; - nameButton1.MouseUpEventHandler = eventHandler; - rightButton1.MouseUpEventHandler = eventHandler; - wirelessView.MouseUpEventHandler = eventHandler; + if (gatewayBase.isMoveToNewServer && !gatewayBase.isOnline) { + wirelessView.AddChidren (rightButton1); + rightButton1.Text = text_Upgraded; + } else { + if (gatewayBase.isOnline) + wirelessView.AddChidren (rightButton1); + EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + LinkOnePort (gatewayBase.Remote_UserName, gatewayBase.Remote_ProjectName); + }; + nameButton1.MouseUpEventHandler = eventHandler; + rightButton1.MouseUpEventHandler = eventHandler; + wirelessView.MouseUpEventHandler = eventHandler; + } } void LinkOnePort (string userName, string projectName) { -- Gitblit v1.8.0