1
wxr
2022-12-30 9ebd6edb9beddf1a6881b2ca924ed43bf5cedfbe
1
16个文件已修改
786 ■■■■■ 已修改文件
.vs/SmartHome/xs/UserPrefs.xml 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ON.Ios/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
ON.Ios/Info.plist 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ON.Ios/ON.Ios.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ON/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
ON/ON.Droid.csproj 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ON/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ON/Resources/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/HDL/Operation/Control.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/HDL/Operation/Device/GatewayBase.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/HDL/Operation/Packet.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/UI/SimpleControl/CommonPage.cs 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/UI/SimpleControl/Phone/System/SearchServerOnePortListPage.cs 137 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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 />
ON.Ios/.DS_Store
Binary files differ
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>
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>
ON/.DS_Store
Binary files differ
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" />
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" />
ON/Resources/.DS_Store
Binary files differ
SmartHome/.DS_Store
Binary files differ
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) {
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;
    }
}
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);
                }
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> ();
    }
}
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 ();
            }
        }
    }
}
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) {
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 ();
            }
        }
    }