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