wxr
2023-01-10 8fcc3bd198606e0400eca5383572fb97ecdada85
SmartHome/UI/SimpleControl/Phone/System/RemoteOnePort.cs
@@ -7,14 +7,14 @@
    public class RemoteOnePort : FrameLayout
    {
        #region 文本
        string text_Title = "远程连接";
        string text_userName = "组名";
        string text_Title = "远程";
        string text_userName = "用户名";
        string text_projectName ="工程名";
        string text_password = "密码";
        string text_entry_userName_tip = "请输入组名。";
        string text_entry_projectName_tip = "请输入工程名。";
        string text_entry_password_tip = "请输入密码。";
        string text_link = "连接一端口";
        string text_link = "连接并配置";
        string text_back = "后退";
        string text_reading = "读取中";
        /// <summary>
@@ -32,7 +32,7 @@
        /// <summary>
        /// 未知版本
        /// </summary>
        string text_UnknownVersion = "未知版本";
        string text_UnknownVersion = "其他版本";
        /// <summary>
        /// 读取失败
        /// </summary>
@@ -40,6 +40,12 @@
        string txt_breakLink = "断开连接";
        string txt_connectionSucceeded = "连接成功";
        string userName = "";
        string projectName = "";
        string password = "";
        #endregion
@@ -57,12 +63,16 @@
            base.RemoveFromParent ();
        }
        public RemoteOnePort ()
        public RemoteOnePort (string userNameOut, string projectNameOut)
        {
            userName = userNameOut;
            projectName = projectNameOut;
            CommonPage.IsRemote = false;
            if(Language.CurrentLanguage!= "Chinese") {
                text_Title = "Remote connection";
                text_userName = "Group name";
                text_projectName = "project name";
                text_userName = "User name";
                text_projectName = "Project name";
                text_password = "Password";
                text_entry_userName_tip = "Please enter the group name.";
                text_entry_projectName_tip = "Please enter the project name.";
@@ -70,10 +80,10 @@
                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";
                text_link = "Connect and configure";
                text_reading = "Reading";
                txt_breakLink = "Break link";
                txt_connectionSucceeded = "Connection succeeded";
@@ -128,9 +138,6 @@
        void initContentView ()
        {
            var remoteClient = new SystemRemote ();
            string userName = "";
            string projectName = "";
            string password = "";
            contentView = new VerticalScrolViewLayout () {
                Y = Application.GetRealHeight (126),
@@ -161,15 +168,17 @@
            btnUserNameTitle.Width = btnUserNameTitle.GetTextWidth () + Application.GetRealWidth (30);
            userNameView.AddChidren (btnUserNameTitle);
            var tvUserName = new EditText () {
            var tvUserName = new Button () {
                Width = Application.GetRealWidth (400),
                X = btnUserNameTitle.Right,
                TextColor = SkinStyle.Current.TextColor1,
                TextAlignment = TextAlignment.CenterLeft,
                Text = userName,
            };
            userNameView.AddChidren (tvUserName);
            var btnLine = new Button () {
                Height = Application.GetRealHeight (1),
                Height = Application.GetRealHeight (2),
                BackgroundColor = SkinStyle.Current.LineColor,
            };
            infoView.AddChidren (btnLine);
@@ -192,15 +201,17 @@
            btnProjuectNameTitle.Width = btnProjuectNameTitle.GetTextWidth () + Application.GetRealWidth (30);
            projectNameView.AddChidren (btnProjuectNameTitle);
            var tvProjectName = new EditText () {
            var tvProjectName = new Button () {
                Width = Application.GetRealWidth (400),
                X = btnProjuectNameTitle.Right,
                TextColor = SkinStyle.Current.TextColor1,
                TextAlignment = TextAlignment.CenterLeft,
                Text = projectName,
            };
            projectNameView.AddChidren (tvProjectName);
            var btnLine1 = new Button () {
                Height = Application.GetRealHeight (1),
                Height = Application.GetRealHeight (2),
                BackgroundColor = SkinStyle.Current.LineColor,
            };
            infoView.AddChidren (btnLine1);
@@ -226,11 +237,12 @@
                Width = Application.GetRealWidth (400),
                X = btnPasswordTitle.Right,
                TextColor = SkinStyle.Current.TextColor1,
                Foucs = true,
            };
            passwrodView.AddChidren (tvPassword);
            var btnLine2 = new Button () {
                Height = Application.GetRealHeight (1),
                Height = Application.GetRealHeight (2),
                BackgroundColor = SkinStyle.Current.LineColor,
            };
            infoView.AddChidren (btnLine2);
@@ -259,9 +271,9 @@
            contentView.AddChidren (btnOption);
#if DEBUG
            userName = tvUserName.Text = "www";
            projectName = tvProjectName.Text = "www";
            password = tvPassword.Text = "wwwwww";
            //userName = tvUserName.Text = "gs";
            //projectName = tvProjectName.Text = "gs";
            password = tvPassword.Text = "666666";
#endif
@@ -306,11 +318,9 @@
                        try {
                            #region 搜索设备
                            CommonPage.LocalPhoneFindDevice = true;
                            CommonPage.RandomHigh = (byte)new Random ().Next (255);
                            CommonPage.RandomLow = (byte)new Random ().Next (255);
                            CommonPage.GateWayList.Clear ();
                            CommonPage.FindGateway = true;
                            //如果两次都没有数据反馈,就不读取
                            int readCount = 2;
                            while (0 < readCount) {
@@ -335,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 ()
@@ -348,14 +358,12 @@
                                    readCount = 2;
                                }
                            }
                            CommonPage.FindGateway = false;
                            Application.RunOnMainThread (() => {
                                ShowGateWayView ();
                            });
                            CommonPage.LocalPhoneFindDevice = false;
                            #endregion
                        } catch (Exception ex) {
                            Console.WriteLine (ex.ToString ());
@@ -368,10 +376,9 @@
                    } else {
                        CommonPage.IsRemote = false;
                        Application.RunOnMainThread (() => {
                            MainPage.Loading.Hide ();
                            infoView.AddChidren (rightButton1);
                            rightButton1.Text = linkResult;
                            rightButton1.TextColor = 0x99ff0000;
                            MainPage.Loading.Hide ();
                        });
                    }
                }) { IsBackground = true }.Start ();
@@ -441,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,
@@ -451,89 +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 ();
            }
        }
    }
}