From 9ebd6edb9beddf1a6881b2ca924ed43bf5cedfbe Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 30 十二月 2022 11:24:03 +0800
Subject: [PATCH] 1

---
 ON.Ios/ON.Ios.csproj                                                   |    2 
 .vs/SmartHome/xs/UserPrefs.xml                                         |   53 +--
 SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs |  137 +++++++-
 SmartHome/UI/SimpleControl/CommonPage.cs                               |   88 ++---
 ON/Resources/.DS_Store                                                 |    0 
 ON/.DS_Store                                                           |    0 
 SmartHome/.DS_Store                                                    |    0 
 SmartHome/HDL/Operation/Control.cs                                     |   21 
 SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs                |  231 +++++++++++-----
 SmartHome/HDL/Operation/Device/GatewayBase.cs                          |    6 
 SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs               |  233 +++++++++++-----
 ON.Ios/.DS_Store                                                       |    0 
 SmartHome/HDL/Operation/Packet.cs                                      |    4 
 ON.Ios/Info.plist                                                      |    6 
 ON/Properties/AndroidManifest.xml                                      |    2 
 ON/ON.Droid.csproj                                                     |    3 
 16 files changed, 510 insertions(+), 276 deletions(-)

diff --git a/.vs/SmartHome/xs/UserPrefs.xml b/.vs/SmartHome/xs/UserPrefs.xml
index 9e5c60d..6030cbc 100644
--- a/.vs/SmartHome/xs/UserPrefs.xml
+++ b/.vs/SmartHome/xs/UserPrefs.xml
@@ -1,45 +1,24 @@
-锘�<Properties StartupConfiguration="{9D9EF20B-6E65-4A65-92BF-567EBF1E1443}|Default">
+锘�<Properties StartupConfiguration="{1D83BF28-BA88-4152-BA41-D7EFE90A5437}|Default">
   <MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.364c4b3158493098" />
   <MonoDevelop.Ide.Workbench>
     <Files>
-      <File FileName="SmartHome/HDL/Operation/Packet.cs" Line="93" Column="8" />
-      <File FileName="SmartHome/HDL/Operation/Device/Common.cs" Line="80" Column="20" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs" Line="15" Column="22" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs" Line="39" Column="36" />
-      <File FileName="SmartHome/HDL/Operation/Control.cs" Line="194" Column="45" />
+      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs" Line="146" Column="28" />
+      <File FileName="SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs" />
+      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SystemHomePage.cs" />
+      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs" Line="233" Column="53" />
+      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SystemRemote.cs" />
+      <File FileName="SmartHome/HDL/Operation/Packet.cs" />
+      <File FileName="SmartHome/HDL/Operation/BusSocket.cs" />
+      <File FileName="SmartHome/HDL/Operation/Control.cs" />
+      <File FileName="ON.Ios/ViewController.cs" />
       <File FileName="ON.Ios/Info.plist" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SystemHomePage.cs" Line="84" Column="61" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs" Line="189" Column="1" />
-      <File FileName="SmartHome/UI/SimpleControl/CommonPage.cs" Line="81" Column="30" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/System/SystemRemote.cs" Line="1" Column="1" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
-          <Node name="SmartHome" expanded="True">
-            <Node name="ON.Droid" selected="True" />
+          <Node name="SmartHome" expanded="True" selected="True">
             <Node name="ON.Ios" expanded="True" />
-            <Node name="Shared" expanded="True">
-              <Node name="HDL" expanded="True">
-                <Node name="Operation" expanded="True">
-                  <Node name="Device" expanded="True" />
-                </Node>
-              </Node>
-              <Node name="UI" expanded="True">
-                <Node name="SimpleControl" expanded="True">
-                  <Node name="Phone" expanded="True">
-                    <Node name="System" expanded="True" />
-                  </Node>
-                </Node>
-              </Node>
-            </Node>
           </Node>
-        </State>
-      </Pad>
-      <Pad Id="MonoDevelop.Debugger.WatchPad">
-        <State>
-          <Value>command</Value>
-          <Value>MyEncodingGB2312.GetString (usefullBytes, 0, 20).Trim ('\0');</Value>
         </State>
       </Pad>
     </Pads>
@@ -50,12 +29,14 @@
     <String>DroidService/DroidService.csproj</String>
     <String>IosService/IosService.csproj</String>
   </DisabledProjects>
-  <MonoDevelop.Ide.Workspace ActiveConfiguration="Release" />
-  <MonoDevelop.Ide.ItemProperties.ON.Ios PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-000404163432002E" />
+  <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" />
+  <MonoDevelop.Ide.ItemProperties.ON.Ios PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget" />
   <MonoDevelop.Ide.DebuggingService.Breakpoints>
     <BreakpointStore>
-      <Breakpoint file="/Users/kaede/Desktop/MigrationWidget/SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs" relfile="SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs" line="246" column="1" />
-      <Breakpoint file="/Users/kaede/Desktop/MigrationWidget/SmartHome/UI/SimpleControl/Phone/System/SystemHomePage.cs" relfile="SmartHome/UI/SimpleControl/Phone/System/SystemHomePage.cs" line="84" column="1" />
+      <Breakpoint file="/Users/kaede/Desktop/MigrationWidget/SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs" relfile="SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs" line="329" column="1" />
+      <Breakpoint file="/Users/kaede/Desktop/MigrationWidget/SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs" relfile="SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs" line="456" column="1" />
+      <Breakpoint file="/Users/kaede/Desktop/MigrationWidget/SmartHome/UI/SimpleControl/CommonPage.cs" relfile="SmartHome/UI/SimpleControl/CommonPage.cs" line="120" column="1" />
+      <Breakpoint file="/Users/kaede/Desktop/MigrationWidget/SmartHome/UI/SimpleControl/CommonPage.cs" relfile="SmartHome/UI/SimpleControl/CommonPage.cs" line="112" column="1" />
     </BreakpointStore>
   </MonoDevelop.Ide.DebuggingService.Breakpoints>
   <MultiItemStartupConfigurations />
diff --git a/ON.Ios/.DS_Store b/ON.Ios/.DS_Store
index afde5cd..52e00ab 100644
--- a/ON.Ios/.DS_Store
+++ b/ON.Ios/.DS_Store
Binary files differ
diff --git a/ON.Ios/Info.plist b/ON.Ios/Info.plist
index 18f84bd..fe9347d 100755
--- a/ON.Ios/Info.plist
+++ b/ON.Ios/Info.plist
@@ -17,9 +17,9 @@
 	<key>CFBundleIdentifier</key>
 	<string>com.hdl.moveserver</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.0.5</string>
+	<string>1.0.9</string>
 	<key>CFBundleVersion</key>
-	<string>1.0.5</string>
+	<string>1.0.9</string>
 	<key>LSRequiresIPhoneOS</key>
 	<true/>
 	<key>MinimumOSVersion</key>
@@ -69,5 +69,7 @@
 	<string>Assets.xcassets/AppIcon.appiconset</string>
 	<key>CFBundleDisplayName</key>
 	<string>Migration Tools</string>
+	<key>NSLocalNetworkUsageDescription</key>
+	<string>App wants to use local network access rights to find local smart home devices.</string>
 </dict>
 </plist>
diff --git a/ON.Ios/ON.Ios.csproj b/ON.Ios/ON.Ios.csproj
index a797af8..deb0b24 100644
--- a/ON.Ios/ON.Ios.csproj
+++ b/ON.Ios/ON.Ios.csproj
@@ -73,7 +73,7 @@
     <DebugType>full</DebugType>
     <Optimize>true</Optimize>
     <OutputPath>bin\iPhone\Debug</OutputPath>
-    <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;DEBUG;ENABLE_TEST_CLOUD;HDL;HDLVideo;</DefineConstants>
+    <DefineConstants>__IOS__;__MOBILE__;__UNIFIED__;DEBUG1;ENABLE_TEST_CLOUD;HDL;HDLVideo;</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
     <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
diff --git a/ON/.DS_Store b/ON/.DS_Store
index 3f40f9e..dc3ed2d 100644
--- a/ON/.DS_Store
+++ b/ON/.DS_Store
Binary files differ
diff --git a/ON/ON.Droid.csproj b/ON/ON.Droid.csproj
index f4128ad..e53e318 100644
--- a/ON/ON.Droid.csproj
+++ b/ON/ON.Droid.csproj
@@ -32,6 +32,7 @@
     <AndroidSupportedAbis>armeabi-v7a</AndroidSupportedAbis>
     <AndroidDexTool>d8</AndroidDexTool>
     <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
+    <AndroidPackageFormat>apk</AndroidPackageFormat>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugSymbols>false</DebugSymbols>
@@ -49,7 +50,7 @@
 <NoWarn></NoWarn>
 <AndroidDexTool>d8</AndroidDexTool>
 <AndroidSupportedAbis>armeabi-v7a;arm64-v8a</AndroidSupportedAbis>
-<AndroidPackageFormat>aab</AndroidPackageFormat>
+<AndroidPackageFormat>apk</AndroidPackageFormat>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
diff --git a/ON/Properties/AndroidManifest.xml b/ON/Properties/AndroidManifest.xml
index 56b7d4a..917d10e 100644
--- a/ON/Properties/AndroidManifest.xml
+++ b/ON/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.moveserver" android:versionCode="202212141" android:versionName="1.2212141">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.moveserver" android:versionCode="202212261" android:versionName="1.2212261">
 	<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="31" />
 	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 	<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
diff --git a/ON/Resources/.DS_Store b/ON/Resources/.DS_Store
index 7bd3015..4feeecc 100644
--- a/ON/Resources/.DS_Store
+++ b/ON/Resources/.DS_Store
Binary files differ
diff --git a/SmartHome/.DS_Store b/SmartHome/.DS_Store
index 6a022e3..d4c1feb 100644
--- a/SmartHome/.DS_Store
+++ b/SmartHome/.DS_Store
Binary files differ
diff --git a/SmartHome/HDL/Operation/Control.cs b/SmartHome/HDL/Operation/Control.cs
index a2b60c0..35e9033 100644
--- a/SmartHome/HDL/Operation/Control.cs
+++ b/SmartHome/HDL/Operation/Control.cs
@@ -8,7 +8,6 @@
 {
     public class Control
     {
-        public bool IsCanShowTip;
         public System.DateTime LatestDateTime = System.DateTime.Now;
 
         /// <summary>
@@ -20,18 +19,20 @@
         /// 鍙戦�佹暟鎹紝绛夊緟鏈夊弽棣�
         /// </summary>
         /// <returns>The bytes send has return.</returns>
-        public static byte [] ControlBytesSendHasReturn (Command command, byte subnetID, byte deviceID, byte [] gatewayBytes, bool isShow = true)
+        public static byte [] ControlBytesSendHasReturn (Command command, byte subnetID, byte deviceID, byte [] gatewayBytes, string ip = "")
         {
-          
-            Control control = new Control () { IsCanShowTip = isShow };
+            Control control = new Control ();
+            var sendIp = CommonPage.EndPoint;
+            if (!string.IsNullOrEmpty (ip)) {
+                sendIp = new System.Net.IPEndPoint (System.Net.IPAddress.Parse (ip), 9999); 
+            }
             control.Send (new Target () {
-                IPEndPoint = CommonPage.EndPoint,
+                IPEndPoint = sendIp,
                 Command = command,
                 SubnetID = subnetID,
                 DeviceID = deviceID,
                 AddData = gatewayBytes,
             }, SendCount.Three, true);
-
             return control.UsefulBytes;
         }
 
@@ -41,7 +42,7 @@
         public static void ControlBytesSend (Command command, byte subnetID, byte deviceID, byte [] gatewayBytes, SendCount sendCount = SendCount.Three, System.Net.IPEndPoint ipEndpoint = null, bool isShowTip = true)
         {
          
-            Control control = new Control () { IsCanShowTip = isShowTip };
+            Control control = new Control ();
             control.Send (new Target () {
                 IPEndPoint = ipEndpoint == null ? CommonPage.EndPoint : ipEndpoint,//new System.Net.IPEndPoint (System.Net.IPAddress.Parse (new Net.NetWiFi ().BroadcastIpAddress.ToString ()), 6000),
                 Command = command,
@@ -265,7 +266,8 @@
                 for (int i = 0; i < controlList.Count; i++) {
                     try {
                         Control control = controlList [i];
-                        if (control.SendFlag == receiveFlag) {
+                        if (control.SendFlag == receiveFlag && (control.Packet.RemoteEndPoint.ToString() == remoteEndPoint.ToString()||
+                            control.Packet.RemoteEndPoint.ToString().Contains("6000"))) {
                             control.LatestDateTime = System.DateTime.Now;
                             control.UsefulBytes = usefulBytes;//
                             control.run ();
@@ -378,9 +380,6 @@
                 Console.WriteLine ("managerSendCount:" + ex.ToString ());
             } finally {
                 allDone.Set ();
-                if (Packet.HaveSendCount == 3 && IsCanShowTip) {
-                    //MainPage.AddTip (Language.StringByID (SimpleControl.R.MyInternationalizationString.OperationFailed));
-                }
             }
             return;
             //if (Shared.SimpleControl.CommonPage.IsRemote && !isLocal) {
diff --git a/SmartHome/HDL/Operation/Device/GatewayBase.cs b/SmartHome/HDL/Operation/Device/GatewayBase.cs
index 2bb7ab7..08cc2d5 100644
--- a/SmartHome/HDL/Operation/Device/GatewayBase.cs
+++ b/SmartHome/HDL/Operation/Device/GatewayBase.cs
@@ -36,5 +36,11 @@
         public string Remote_IP2 = string.Empty;
         public string Remote_IP2_Prot = string.Empty;
 
+        public bool isOnline = false;
+        /// <summary>
+        /// 宸茬粡杩佺Щ鍒版柊鏈嶅姟鍣�
+        /// </summary>
+        public bool isMoveToNewServer = false;
+
     }
 }
diff --git a/SmartHome/HDL/Operation/Packet.cs b/SmartHome/HDL/Operation/Packet.cs
index 298a6e0..5724c00 100644
--- a/SmartHome/HDL/Operation/Packet.cs
+++ b/SmartHome/HDL/Operation/Packet.cs
@@ -47,7 +47,7 @@
 		/// </summary>
 		public int HaveSendCount;
 
-		public delegate void DelegateReceive (byte subnetID, byte deviceID, Command command, byte [] usefullBytes,  int deviceType);
+		public delegate void DelegateReceive (byte subnetID, byte deviceID, Command command, byte [] usefullBytes,  int deviceType, System.Net.IPEndPoint remoteIp);
 		public static event DelegateReceive ReceiveEvent;
 		/// <summary>
 		/// 鎺ユ敹鍒扮殑鎵�鏈夋暟鎹�
@@ -92,7 +92,7 @@
 
 			if (ReceiveEvent != null) {
                 try {
-                    ReceiveEvent (subnetID, deviceID, command, usefulBytes, deviceType);
+                    ReceiveEvent (subnetID, deviceID, command, usefulBytes, deviceType,(System.Net.IPEndPoint)RemoteEndPoint);
                 } catch (Exception ex) {
                     Console.WriteLine (ex.Message);
                 }
diff --git a/SmartHome/UI/SimpleControl/CommonPage.cs b/SmartHome/UI/SimpleControl/CommonPage.cs
index eb54f2d..f422a89 100644
--- a/SmartHome/UI/SimpleControl/CommonPage.cs
+++ b/SmartHome/UI/SimpleControl/CommonPage.cs
@@ -10,13 +10,8 @@
 {
     public static class CommonPage
     {
-        //public static AirQuality AirQuality;
-        //public static Action RefreshAir;           
         public static bool IsRemote = false;
-        //public static bool FindGateway = false;
-        public static bool FindGatewayChilren = false;
         public static string FindGatewayChilrenIPAddress = new Net.NetWiFi ().BroadcastIpAddress.ToString ();
-        public static bool LocalPhoneFindDevice = false;
         public static int searchTotal = 0;
         public static int newDevice = 0;
         private static string ip= "115.29.251.24";
@@ -81,63 +76,55 @@
             36865,9600,19600,
             1099,1163,3501,3502,3503,3504,3505,3506,
             3508,3509,3516,3517,3521,3527,3528,3530,3532,3533,3534,3536,3538,
-            3539,3541,3543,3550,3559,3600,3601,3605,4599,4601,4602,
+            3539,3541,3543,3550,3559,3600,3601,3605,4601,4602,
             30001,63479,65282,65532,65534,
         };
 
-        static void Packet_ReceiveEvent (byte subnetID, byte deviceID, Command command, byte [] usefullBytes,int deviceTypeNumber)
+        static void Packet_ReceiveEvent (byte subnetID, byte deviceID, Command command, byte [] usefullBytes,int deviceTypeNumber, System.Net.IPEndPoint remoteIp)
         {
             try {
                 List<byte> ButtonBkeyModelList = new List<byte> ();
                 switch (command) {
                 case Command.ReadRemarkACK:
                     if(supportList.Contains(deviceTypeNumber)) {
-                        lock (GateWayList) {
-                            if (GateWayList.Find ((l) => { return l.SubnetID == subnetID && l.DeviceID == deviceID; }) != null) {
-                                return;
+                        //if (IsRemote) {
+                        //    if (remoteIp.ToString().Contains("118.31.3.103") || remoteIp.ToString ().Contains ("157.175.231.123"))
+                        //    lock (GateWayList_NewServer) {
+                        //        if (GateWayList_NewServer.Find ((l) => { return l.SubnetID == subnetID && l.DeviceID == deviceID; }) != null) {
+                        //            return;
+                        //        }
+                        //        DeviceType deviceType = (DeviceType)(usefullBytes [2] * 256 + usefullBytes [3]);
+                        //        GatewayBase gatewayBase = new GatewayBase ();
+                        //        gatewayBase.DeviceTypeNumber = deviceTypeNumber;
+                        //        gatewayBase.SubnetID = subnetID;
+                        //        gatewayBase.DeviceID = deviceID;
+                        //        gatewayBase.Type = deviceType;
+                        //        gatewayBase.Name = MyEncodingGB2312.GetString (usefullBytes, 0, 20).Trim ('\0');//=============
+                        //        GateWayList_NewServer.Add (gatewayBase);
+                        //        Console.WriteLine ($"name:{gatewayBase.Name}++{deviceTypeNumber}");
+                        //    }
+                        //} else
+                        {
+                            lock (GateWayList) {
+                                if (GateWayList.Find ((l) => { return l.SubnetID == subnetID && l.DeviceID == deviceID; }) != null) {
+                                    return;
+                                }
+                                DeviceType deviceType = (DeviceType)(usefullBytes [2] * 256 + usefullBytes [3]);
+                                GatewayBase gatewayBase = new GatewayBase ();
+                                gatewayBase.DeviceTypeNumber = deviceTypeNumber;
+                                gatewayBase.SubnetID = subnetID;
+                                gatewayBase.DeviceID = deviceID;
+                                gatewayBase.Type = deviceType;
+                                gatewayBase.Name = MyEncodingGB2312.GetString (usefullBytes, 0, 20).Trim ('\0');//=============
+                                var name = Encoding.Default.GetString (usefullBytes, 0, 20).Trim ('\0');
+                                GateWayList.Add (gatewayBase);
+
+                                Console.WriteLine ($"name:{gatewayBase.Name}++{deviceTypeNumber}");
                             }
-                            DeviceType deviceType = (DeviceType)(usefullBytes [2] * 256 + usefullBytes [3]);
-                            GatewayBase gatewayBase = new GatewayBase ();
-                            gatewayBase.DeviceTypeNumber = deviceTypeNumber;
-                            gatewayBase.SubnetID = subnetID;
-                            gatewayBase.DeviceID = deviceID;
-                            gatewayBase.Type = deviceType;
-                            gatewayBase.Name = MyEncodingGB2312.GetString (usefullBytes, 0, 20).Trim ('\0');//=============
-                            GateWayList.Add (gatewayBase);
                         }
                     }
                     break;
 
-                //璇诲彇缃戝叧璁惧鍥炲
-                case Command.ReadGatewayACK:
-                    if (usefullBytes [0] != RandomHigh | usefullBytes [1] != RandomLow) {
-                        return;
-                    }
-                    lock (GateWayList) {
-                        if (GateWayList.Find ((l) => { return l.SubnetID == subnetID && l.DeviceID == deviceID; }) != null) {
-                            return;
-                        }
-                        DeviceType deviceType = (DeviceType)(usefullBytes [2] * 256 + usefullBytes [3]);
-                        if (usefullBytes [2] == 254 && usefullBytes [3] < 8) {
-                            GatewayBase gatewayBase = new GatewayBase ();
-                            gatewayBase.DeviceTypeNumber = deviceTypeNumber;
-                            gatewayBase.SubnetID = subnetID;
-                            gatewayBase.DeviceID = deviceID; gatewayBase.Type = deviceType;
-                            gatewayBase.LoopID = usefullBytes [4];
-                            gatewayBase.MAC = byteToHex16 (usefullBytes [5]) + "." + byteToHex16 (usefullBytes [6]) + "." + byteToHex16 (usefullBytes [7]) + "." + byteToHex16 (usefullBytes [8]) + "." + byteToHex16 (usefullBytes [9]) + "." + byteToHex16 (usefullBytes [10]) + "." + byteToHex16 (usefullBytes [11]) + "." + byteToHex16 (usefullBytes [12]);
-                            gatewayBase.Name = MyEncodingGB2312.GetString (usefullBytes, 13, 20).Trim ('\0');//=============
-                            gatewayBase.IPAddress = usefullBytes [33] + "." + usefullBytes [34] + "." + usefullBytes [35] + "." + usefullBytes [36];
-                            gatewayBase.RouteIPAddress = usefullBytes [37] + "." + usefullBytes [38] + "." + usefullBytes [39] + "." + usefullBytes [40];
-                            gatewayBase.IPMAC = usefullBytes [41] + "." + usefullBytes [42] + "." + usefullBytes [43] + "." + usefullBytes [44] + "." + usefullBytes [45] + "." + usefullBytes [46];
-                            gatewayBase.SubnetMask = usefullBytes [47] + "." + usefullBytes [48] + "." + usefullBytes [49] + "." + usefullBytes [50];
-                            gatewayBase.DHCP = usefullBytes [51] == 0 ? false : true;
-                            GateWayList.Add (gatewayBase);
-                            if (gatewayBase.Name == "") {
-                                gatewayBase.Name = gatewayBase.CommonLoopID.ToString ();
-                            }
-                        }
-                    }
-                    break;
                 case Command.WriteWirelessPanelButtonKey:
                     //01 01 59(+30) 02 0D 03 64 00 01 
                     break;
@@ -187,5 +174,10 @@
         /// </summary>
         public static List<GatewayBase> GateWayList = new List<GatewayBase> ();
 
+
+        public static List<GatewayBase> GateWayList_NewServer = new List<GatewayBase> ();
+
+
+
     }
 }
\ No newline at end of file
diff --git a/SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs b/SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs
index 75324e4..fd8fd62 100644
--- a/SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs
+++ b/SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs
@@ -318,7 +318,6 @@
 
                         try {
                             #region 鎼滅储璁惧
-                            CommonPage.LocalPhoneFindDevice = true;
                             CommonPage.RandomHigh = (byte)new Random ().Next (255);
                             CommonPage.RandomLow = (byte)new Random ().Next (255);
                             CommonPage.GateWayList.Clear ();
@@ -346,7 +345,7 @@
                                 Control control = new Control ();
                                 control.Send (new Target () {
                                     IPEndPoint = CommonPage.EndPoint,
-                                    Command = Command.ReadGateway,
+                                    Command = Command.ReadRemark,
                                     SubnetID = 0xFF,
                                     DeviceID = 0xFF,
                                     AddData = ms.ToArray ()
@@ -365,7 +364,6 @@
                                 ShowGateWayView ();
                             });
 
-                            CommonPage.LocalPhoneFindDevice = false;
                             #endregion
                         } catch (Exception ex) {
                             Console.WriteLine (ex.ToString ());
@@ -450,7 +448,6 @@
             Button rightButton1 = new Button () {
                 X = Application.GetRealWidth (480),
                 Width = Application.GetRealWidth (100),
-                Height = Application.GetRealHeight (40),
                 Gravity = Gravity.CenterVertical,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextColor = SkinStyle.Current.TextColor1,
@@ -460,87 +457,177 @@
             };
             wirelessView.AddChidren (rightButton1);
 
-            new System.Threading.Thread (() => {
-                var serverIPBytes = Control.ControlBytesSendHasReturn (Command.ReadGatewayServerIP, common.SubnetID, common.DeviceID, new byte [] { });
-                if (serverIPBytes != null) {
-                    try {
-                        string serverIP1 = serverIPBytes [0].ToString () + "." + serverIPBytes [1].ToString () + "." +
-                            serverIPBytes [2].ToString () + "." + serverIPBytes [3].ToString ();
-                        string serverIP1Point = ((serverIPBytes [4] * 256) + serverIPBytes [5]).ToString ();
-                        string serverIP2 = serverIPBytes [6].ToString () + "." + serverIPBytes [7].ToString () + "." +
-                            serverIPBytes [8].ToString () + "." + serverIPBytes [9].ToString ();
-                        string serverIP2Point = ((serverIPBytes [10] * 256) + serverIPBytes [11]).ToString ();
 
-                        if (serverIP1 == "118.31.3.103" || serverIP2 == "118.31.3.103") {
-                            Application.RunOnMainThread (() => {
-                                rightButton1.Text = text_Upgraded;
-                                rightButton1.TextColor = 0xFF00FF00;
-                                return;
-                            });
-                        } else if (serverIP1 != "115.29.251.24" && serverIP2 != "115.29.251.24") {
-                            Application.RunOnMainThread (() => {
-                                rightButton1.Text = text_UnknownVersion;
-                                rightButton1.TextColor = 0xFF00FF00;
-                                return;
-                            });
-                        } else {
-                            Application.RunOnMainThread (() => {
-                                rightButton1.Text = text_Upgrading;
-                                rightButton1.TextColor = 0xFF0000FF;
-                            });
-                            if (serverIP1 == "115.29.251.24") {
-                                serverIP1 = "118.31.3.103";
-                                serverIP1Point = "9999";
+            if (Language.CurrentLanguage != "Chinese") {
+                //淇敼鍥藉鏈嶅姟鍣�
+                new System.Threading.Thread (() => {
+                    var serverIPBytes = Control.ControlBytesSendHasReturn (Command.ReadGatewayServerIP, common.SubnetID, common.DeviceID, new byte [] { });
+                    if (serverIPBytes != null) {
+                        try {
+                            string serverIP1 = serverIPBytes [0].ToString () + "." + serverIPBytes [1].ToString () + "." +
+                                serverIPBytes [2].ToString () + "." + serverIPBytes [3].ToString ();
+                            string serverIP1Point = ((serverIPBytes [4] * 256) + serverIPBytes [5]).ToString ();
+                            string serverIP2 = serverIPBytes [6].ToString () + "." + serverIPBytes [7].ToString () + "." +
+                                serverIPBytes [8].ToString () + "." + serverIPBytes [9].ToString ();
+                            string serverIP2Point = ((serverIPBytes [10] * 256) + serverIPBytes [11]).ToString ();
 
-                                serverIPBytes [0] = 118;
-                                serverIPBytes [1] = 31;
-                                serverIPBytes [2] = 3;
-                                serverIPBytes [3] = 103;
-                                serverIPBytes [4] = Convert.ToByte (9999 / 256);
-                                serverIPBytes [5] = Convert.ToByte (9999 % 256);
-
-                            }
-                            if (serverIP2 == "115.29.251.24") {
-                                serverIP2 = "118.31.3.103";
-                                serverIP2Point = "9999";
-
-                                serverIPBytes [0 + 6] = 118;
-                                serverIPBytes [1 + 6] = 31;
-                                serverIPBytes [2 + 6] = 3;
-                                serverIPBytes [3 + 6] = 103;
-                                serverIPBytes [4 + 6] = Convert.ToByte (9999 / 256);
-                                serverIPBytes [5 + 6] = Convert.ToByte (9999 % 256);
-
-                            }
-
-
-                            var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, common.SubnetID, common.DeviceID, serverIPBytes);
-                            if (mobytes == null || mobytes [0] == 0xF5) {
+                            if (serverIP1 == "157.175.231.123" || serverIP2 == "157.175.231.123") {//宸存灄鏈嶅姟鍣�
                                 Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_Upgraded;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                });
+                            }
+                            else if (serverIP1 == "115.29.251.24" || serverIP2 == "115.29.251.24"//鏃ф湇鍔″櫒
+                                      || serverIP1 == "118.31.3.103" || serverIP2 == "118.31.3.103") {//鏂板浗鍐呮湇鍔″櫒
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_Upgrading;
+                                    rightButton1.TextColor = 0xFF0000FF;
+                                });
+                                if (serverIP1 == "115.29.251.24" || serverIP1 == "118.31.3.103") {//鏃ф湇鍔″櫒//鏂板浗鍐呮湇鍔″櫒
+                                    serverIP1 = "157.175.231.123";//宸存灄鏈嶅姟鍣�
+                                    serverIP1Point = "9999";
+
+                                    serverIPBytes [0] = 157;
+                                    serverIPBytes [1] = 175;
+                                    serverIPBytes [2] = 231;
+                                    serverIPBytes [3] = 123;
+                                    serverIPBytes [4] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5] = Convert.ToByte (9999 % 256);
+
+                                }
+                                if (serverIP2 == "115.29.251.24" || serverIP2 == "118.31.3.103") {//鏃ф湇鍔″櫒//鏂板浗鍐呮湇鍔″櫒
+                                    serverIP2 = "157.175.231.123";//宸存灄鏈嶅姟鍣�
+                                    serverIP2Point = "9999";
+
+                                    serverIPBytes [0 + 6] = 157;
+                                    serverIPBytes [1 + 6] = 175;
+                                    serverIPBytes [2 + 6] = 231;
+                                    serverIPBytes [3 + 6] = 123;
+                                    serverIPBytes [4 + 6] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5 + 6] = Convert.ToByte (9999 % 256);
+
+                                }
+
+
+                                var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, common.SubnetID, common.DeviceID, serverIPBytes);
+                                if (mobytes == null || mobytes [0] == 0xF5) {
                                     Application.RunOnMainThread (() => {
-                                        rightButton1.Text = text_UpgradeFailed;
-                                        rightButton1.TextColor = 0x99ff0000;
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_UpgradeFailed;
+                                            rightButton1.TextColor = 0x99ff0000;
+                                        });
                                     });
+                                } else {
+                                    Application.RunOnMainThread (() => {
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_Upgraded;
+                                            rightButton1.TextColor = 0xFF00FF00;
+                                        });
+                                    });
+                                }
+                            }
+                            else {
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_UnknownVersion;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                });
+                            }
+
+
+                        } catch (Exception ex) {
+                            Console.WriteLine ("涓�绔彛杩滅▼ip淇℃伅杞瘧澶辫触.");
+                        }
+                    } else {
+                        Application.RunOnMainThread (() => {
+                            rightButton1.Text = text_readFailure;
+                            rightButton1.TextColor = 0x99ff0000;
+                        });
+                    }
+                }) { IsBackground = true }.Start ();
+            } else {
+                //淇敼鍥藉唴鏈嶅姟鍣�
+                new System.Threading.Thread (() => {
+                    var serverIPBytes = Control.ControlBytesSendHasReturn (Command.ReadGatewayServerIP, common.SubnetID, common.DeviceID, new byte [] { });
+                    if (serverIPBytes != null) {
+                        try {
+                            string serverIP1 = serverIPBytes [0].ToString () + "." + serverIPBytes [1].ToString () + "." +
+                                serverIPBytes [2].ToString () + "." + serverIPBytes [3].ToString ();
+                            string serverIP1Point = ((serverIPBytes [4] * 256) + serverIPBytes [5]).ToString ();
+                            string serverIP2 = serverIPBytes [6].ToString () + "." + serverIPBytes [7].ToString () + "." +
+                                serverIPBytes [8].ToString () + "." + serverIPBytes [9].ToString ();
+                            string serverIP2Point = ((serverIPBytes [10] * 256) + serverIPBytes [11]).ToString ();
+
+                            if (serverIP1 == "118.31.3.103" || serverIP2 == "118.31.3.103") {
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_Upgraded;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                    return;
+                                });
+                            } else if (serverIP1 != "115.29.251.24" && serverIP2 != "115.29.251.24") {
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_UnknownVersion;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                    return;
                                 });
                             } else {
                                 Application.RunOnMainThread (() => {
-                                    Application.RunOnMainThread (() => {
-                                        rightButton1.Text = text_Upgraded;
-                                        rightButton1.TextColor = 0xFF00FF00;
-                                    });
+                                    rightButton1.Text = text_Upgrading;
+                                    rightButton1.TextColor = 0xFF0000FF;
                                 });
+                                if (serverIP1 == "115.29.251.24") {
+                                    serverIP1 = "118.31.3.103";
+                                    serverIP1Point = "9999";
+
+                                    serverIPBytes [0] = 118;
+                                    serverIPBytes [1] = 31;
+                                    serverIPBytes [2] = 3;
+                                    serverIPBytes [3] = 103;
+                                    serverIPBytes [4] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5] = Convert.ToByte (9999 % 256);
+
+                                }
+                                if (serverIP2 == "115.29.251.24") {
+                                    serverIP2 = "118.31.3.103";
+                                    serverIP2Point = "9999";
+
+                                    serverIPBytes [0 + 6] = 118;
+                                    serverIPBytes [1 + 6] = 31;
+                                    serverIPBytes [2 + 6] = 3;
+                                    serverIPBytes [3 + 6] = 103;
+                                    serverIPBytes [4 + 6] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5 + 6] = Convert.ToByte (9999 % 256);
+
+                                }
+
+
+                                var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, common.SubnetID, common.DeviceID, serverIPBytes);
+                                if (mobytes == null || mobytes [0] == 0xF5) {
+                                    Application.RunOnMainThread (() => {
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_UpgradeFailed;
+                                            rightButton1.TextColor = 0x99ff0000;
+                                        });
+                                    });
+                                } else {
+                                    Application.RunOnMainThread (() => {
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_Upgraded;
+                                            rightButton1.TextColor = 0xFF00FF00;
+                                        });
+                                    });
+                                }
                             }
+                        } catch (Exception ex) {
+                            Console.WriteLine ("涓�绔彛杩滅▼ip淇℃伅杞瘧澶辫触.");
                         }
-                    } catch (Exception ex) {
-                        Console.WriteLine ("涓�绔彛杩滅▼ip淇℃伅杞瘧澶辫触.");
+                    } else {
+                        Application.RunOnMainThread (() => {
+                            rightButton1.Text = text_UnknownVersion;
+                            rightButton1.TextColor = 0xFF00FF00;
+                        });
                     }
-                } else {
-                    Application.RunOnMainThread (() => {
-                        rightButton1.Text = text_UnknownVersion;
-                        rightButton1.TextColor = 0xFF00FF00;
-                    });
-                }
-            }) { IsBackground = true }.Start ();
+                }) { IsBackground = true }.Start ();
+            }
         }
     }
 }
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) {
diff --git a/SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs b/SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs
index ed97bf6..bdaaecd 100644
--- a/SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs
+++ b/SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs
@@ -90,7 +90,6 @@
                 System.Threading.Tasks.Task.Run (() => {
                     try {
                         #region 鎼滅储璁惧
-                        CommonPage.LocalPhoneFindDevice = true;
                         CommonPage.RandomHigh = (byte)new Random ().Next (255);
                         CommonPage.RandomLow = (byte)new Random ().Next (255);
                         CommonPage.GateWayList.Clear ();
@@ -146,7 +145,6 @@
                             ShowGateWayView ();
                         });
 
-                        CommonPage.LocalPhoneFindDevice = false;
                         #endregion
                     } catch (Exception ex) {
                         Console.WriteLine (ex.ToString ());
@@ -209,7 +207,6 @@
             Button rightButton1 = new Button () {
                 X = Application.GetRealWidth (480),
                 Width = Application.GetRealWidth (150),
-                Height = Application.GetRealHeight (40),
                 Gravity = Gravity.CenterVertical,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextColor = SkinStyle.Current.TextColor1,
@@ -219,87 +216,173 @@
             };
             wirelessView.AddChidren (rightButton1);
 
-            new System.Threading.Thread (() => {
-                var serverIPBytes = Control.ControlBytesSendHasReturn (Command.ReadGatewayServerIP, common.SubnetID, common.DeviceID, new byte [] { });
-                if (serverIPBytes != null) {
-                    try {
-                        string serverIP1 = serverIPBytes [0].ToString () + "." + serverIPBytes [1].ToString () + "." +
-                            serverIPBytes [2].ToString () + "." + serverIPBytes [3].ToString ();
-                        string serverIP1Point = ((serverIPBytes [4] * 256) + serverIPBytes [5]).ToString ();
-                        string serverIP2 = serverIPBytes [6].ToString () + "." + serverIPBytes [7].ToString () + "." +
-                            serverIPBytes [8].ToString () + "." + serverIPBytes [9].ToString ();
-                        string serverIP2Point = ((serverIPBytes [10] * 256) + serverIPBytes [11]).ToString ();
 
-                        if (serverIP1 == "118.31.3.103" || serverIP2 == "118.31.3.103") {
-                            Application.RunOnMainThread (() => {
-                                rightButton1.Text = text_Upgraded;
-                                rightButton1.TextColor = 0xFF00FF00;
-                                return;
-                            });
-                        } else if (serverIP1 != "115.29.251.24" && serverIP2 != "115.29.251.24") {
-                            Application.RunOnMainThread (() => {
-                                rightButton1.Text = text_UnknownVersion;
-                                rightButton1.TextColor = 0xFF00FF00;
-                                return;
-                            });
-                        } else {
-                            Application.RunOnMainThread (() => {
-                                rightButton1.Text = text_Upgrading;
-                                rightButton1.TextColor = 0xFF0000FF;
-                            });
-                            if (serverIP1 == "115.29.251.24") {
-                                serverIP1 = "118.31.3.103";
-                                serverIP1Point = "9999";
+            if (Language.CurrentLanguage != "Chinese" ) {
+                //淇敼鍥藉鏈嶅姟鍣�
+                new System.Threading.Thread (() => {
+                    var serverIPBytes = Control.ControlBytesSendHasReturn (Command.ReadGatewayServerIP, common.SubnetID, common.DeviceID, new byte [] { });
+                    if (serverIPBytes != null) {
+                        try {
+                            string serverIP1 = serverIPBytes [0].ToString () + "." + serverIPBytes [1].ToString () + "." +
+                                serverIPBytes [2].ToString () + "." + serverIPBytes [3].ToString ();
+                            string serverIP1Point = ((serverIPBytes [4] * 256) + serverIPBytes [5]).ToString ();
+                            string serverIP2 = serverIPBytes [6].ToString () + "." + serverIPBytes [7].ToString () + "." +
+                                serverIPBytes [8].ToString () + "." + serverIPBytes [9].ToString ();
+                            string serverIP2Point = ((serverIPBytes [10] * 256) + serverIPBytes [11]).ToString ();
 
-                                serverIPBytes [0] = 118;
-                                serverIPBytes [1] = 31;
-                                serverIPBytes [2] = 3;
-                                serverIPBytes [3] = 103;
-                                serverIPBytes [4] = Convert.ToByte (9999 / 256);
-                                serverIPBytes [5] = Convert.ToByte (9999 % 256);
-
-                            }
-                            if (serverIP2 == "115.29.251.24") {
-                                serverIP2 = "118.31.3.103";
-                                serverIP2Point = "9999";
-
-                                serverIPBytes [0 + 6] = 118;
-                                serverIPBytes [1 + 6] = 31;
-                                serverIPBytes [2 + 6] = 3;
-                                serverIPBytes [3 + 6] = 103;
-                                serverIPBytes [4 + 6] = Convert.ToByte (9999 / 256);
-                                serverIPBytes [5 + 6] = Convert.ToByte (9999 % 256);
-
-                            }
-                            var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, common.SubnetID, common.DeviceID, serverIPBytes);
-                            if (mobytes == null || mobytes [0] == 0xF5) {
+                            if (serverIP1 == "157.175.231.123" || serverIP2 == "157.175.231.123") {//宸存灄鏈嶅姟鍣�
                                 Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_Upgraded;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                });
+                            } else if (serverIP1 == "115.29.251.24" || serverIP2 == "115.29.251.24"//鏃ф湇鍔″櫒
+                                        || serverIP1 == "118.31.3.103" || serverIP2 == "118.31.3.103") {//鏂板浗鍐呮湇鍔″櫒
+
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_Upgrading;
+                                    rightButton1.TextColor = 0xFF0000FF;
+                                });
+                                if (serverIP1 == "115.29.251.24" || serverIP1 == "118.31.3.103") {//鏃ф湇鍔″櫒//鏂板浗鍐呮湇鍔″櫒
+                                    serverIP1 = "157.175.231.123";//宸存灄鏈嶅姟鍣�
+                                    serverIP1Point = "9999";
+
+                                    serverIPBytes [0] = 157;
+                                    serverIPBytes [1] = 175;
+                                    serverIPBytes [2] = 231;
+                                    serverIPBytes [3] = 123;
+                                    serverIPBytes [4] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5] = Convert.ToByte (9999 % 256);
+
+                                }
+                                if (serverIP2 == "115.29.251.24" || serverIP2 == "118.31.3.103") {//鏃ф湇鍔″櫒//鏂板浗鍐呮湇鍔″櫒
+                                    serverIP2 = "157.175.231.123";//宸存灄鏈嶅姟鍣�
+                                    serverIP2Point = "9999";
+
+                                    serverIPBytes [0 + 6] = 157;
+                                    serverIPBytes [1 + 6] = 175;
+                                    serverIPBytes [2 + 6] = 231;
+                                    serverIPBytes [3 + 6] = 123;
+                                    serverIPBytes [4 + 6] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5 + 6] = Convert.ToByte (9999 % 256);
+
+                                }
+                                var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, common.SubnetID, common.DeviceID, serverIPBytes);
+                                if (mobytes == null || mobytes [0] == 0xF5) {
                                     Application.RunOnMainThread (() => {
-                                        rightButton1.Text = text_UpgradeFailed;
-                                        rightButton1.TextColor = 0x99ff0000;
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_UpgradeFailed;
+                                            rightButton1.TextColor = 0x99ff0000;
+                                        });
                                     });
+                                } else {
+                                    Application.RunOnMainThread (() => {
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_Upgraded;
+                                            rightButton1.TextColor = 0xFF00FF00;
+                                        });
+                                    });
+                                }
+                            } else {
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_UnknownVersion;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                });
+                            }
+
+
+                        } catch (Exception ex) {
+                            Console.WriteLine ("涓�绔彛杩滅▼ip淇℃伅杞瘧澶辫触.");
+                        }
+                    } else {
+                        Application.RunOnMainThread (() => {
+                            rightButton1.Text = text_readFailure;
+                            rightButton1.TextColor = 0x99FF0000;
+                        });
+                    }
+                }) { IsBackground = true }.Start ();
+
+            } else {
+                new System.Threading.Thread (() => {
+                    var serverIPBytes = Control.ControlBytesSendHasReturn (Command.ReadGatewayServerIP, common.SubnetID, common.DeviceID, new byte [] { });
+                    if (serverIPBytes != null) {
+                        try {
+                            string serverIP1 = serverIPBytes [0].ToString () + "." + serverIPBytes [1].ToString () + "." +
+                                serverIPBytes [2].ToString () + "." + serverIPBytes [3].ToString ();
+                            string serverIP1Point = ((serverIPBytes [4] * 256) + serverIPBytes [5]).ToString ();
+                            string serverIP2 = serverIPBytes [6].ToString () + "." + serverIPBytes [7].ToString () + "." +
+                                serverIPBytes [8].ToString () + "." + serverIPBytes [9].ToString ();
+                            string serverIP2Point = ((serverIPBytes [10] * 256) + serverIPBytes [11]).ToString ();
+
+                            if (serverIP1 == "118.31.3.103" || serverIP2 == "118.31.3.103") {
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_Upgraded;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                    return;
+                                });
+                            } else if (serverIP1 != "115.29.251.24" && serverIP2 != "115.29.251.24") {
+                                Application.RunOnMainThread (() => {
+                                    rightButton1.Text = text_UnknownVersion;
+                                    rightButton1.TextColor = 0xFF00FF00;
+                                    return;
                                 });
                             } else {
                                 Application.RunOnMainThread (() => {
-                                    Application.RunOnMainThread (() => {
-                                        rightButton1.Text = text_Upgraded;
-                                        rightButton1.TextColor = 0xFF00FF00;
-                                    });
+                                    rightButton1.Text = text_Upgrading;
+                                    rightButton1.TextColor = 0xFF0000FF;
                                 });
-                            }
-                        }
-                    } catch (Exception ex) {
-                        Console.WriteLine ("涓�绔彛杩滅▼ip淇℃伅杞瘧澶辫触.");
-                    }
-                } else {
-                    Application.RunOnMainThread (() => {
-                        rightButton1.Text = text_UnknownVersion;
-                        rightButton1.TextColor = 0xFF00FF00;
-                    });
-                }
-            }) { IsBackground = true }.Start ();
-        }
+                                if (serverIP1 == "115.29.251.24") {
+                                    serverIP1 = "118.31.3.103";
+                                    serverIP1Point = "9999";
 
+                                    serverIPBytes [0] = 118;
+                                    serverIPBytes [1] = 31;
+                                    serverIPBytes [2] = 3;
+                                    serverIPBytes [3] = 103;
+                                    serverIPBytes [4] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5] = Convert.ToByte (9999 % 256);
+
+                                }
+                                if (serverIP2 == "115.29.251.24") {
+                                    serverIP2 = "118.31.3.103";
+                                    serverIP2Point = "9999";
+
+                                    serverIPBytes [0 + 6] = 118;
+                                    serverIPBytes [1 + 6] = 31;
+                                    serverIPBytes [2 + 6] = 3;
+                                    serverIPBytes [3 + 6] = 103;
+                                    serverIPBytes [4 + 6] = Convert.ToByte (9999 / 256);
+                                    serverIPBytes [5 + 6] = Convert.ToByte (9999 % 256);
+
+                                }
+                                var mobytes = Control.ControlBytesSendHasReturn (Command.SetGateWayModelInternetInfo, common.SubnetID, common.DeviceID, serverIPBytes);
+                                if (mobytes == null || mobytes [0] == 0xF5) {
+                                    Application.RunOnMainThread (() => {
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_UpgradeFailed;
+                                            rightButton1.TextColor = 0x99ff0000;
+                                        });
+                                    });
+                                } else {
+                                    Application.RunOnMainThread (() => {
+                                        Application.RunOnMainThread (() => {
+                                            rightButton1.Text = text_Upgraded;
+                                            rightButton1.TextColor = 0xFF00FF00;
+                                        });
+                                    });
+                                }
+                            }
+                        } catch (Exception ex) {
+                            Console.WriteLine ("涓�绔彛杩滅▼ip淇℃伅杞瘧澶辫触.");
+                        }
+                    } else {
+                        Application.RunOnMainThread (() => {
+                            rightButton1.Text = text_readFailure;
+                            rightButton1.TextColor = 0x99ff0000;
+                        });
+                    }
+                }) { IsBackground = true }.Start ();
+            }
+        }
 
     }
 

--
Gitblit v1.8.0