1
wxr
2022-12-30 9ebd6edb9beddf1a6881b2ca924ed43bf5cedfbe
SmartHome/UI/SimpleControl/Phone/System/SystemMiddle.cs
@@ -24,7 +24,7 @@
        /// 未知版本
        /// 无需升级 2022-12-08 14:23:07
        /// </summary>
        string text_UnknownVersion = "无需升级";
        string text_UnknownVersion = "其他版本";
        /// <summary>
        /// 读取失败
        /// </summary>
@@ -52,7 +52,7 @@
                text_Upgraded = "Upgraded";
                text_Upgrading = "Upgrading";
                text_UpgradeFailed = "Upgrade failed";
                text_UnknownVersion = "No upgrade required";
                text_UnknownVersion = "Other version";
                text_readFailure = "Read failure";
                text_search = "Search and configure";
                text_reading = "Reading";
@@ -76,7 +76,7 @@
            /// 底部
            /// </summary>
            Button AddSystemEquipmentButton = new Button () {
                Y = Application.GetRealHeight (846 + 80),
                Y = Application.GetRealHeight (846 + 80 ),
                Height = Application.GetRealHeight (90),
                Text = text_search,
                TextAlignment = TextAlignment.Center,
@@ -86,16 +86,13 @@
            AddChidren (AddSystemEquipmentButton);
            AddSystemEquipmentButton.MouseUpEventHandler += (sender, e) => {
                VerticalScrolViewMiddle.RemoveAll ();
                CommonPage.FindGateway = true;
                MainPage.Loading.Start ();
                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 ();
                        CommonPage.FindGateway = true;
                        //如果两次都没有数据反馈,就不读取
                        int readCount = 2;
                        while (0 < readCount) {
@@ -120,19 +117,21 @@
                            Control control = new Control ();
                            control.Send (new Target () {
                                IPEndPoint = CommonPage.EndPoint,
                                Command = Command.ReadGateway,
                                Command = Command.ReadRemark,
                                //Command = Command.ReadGateway,
                                SubnetID = 0xFF,
                                DeviceID = 0xFF,
                                AddData = ms.ToArray ()
                                AddData = new byte [] { },
                            }, SendCount.Zero, false);
                            control.Send (new Target () {
                                IPEndPoint = new System.Net.IPEndPoint (new Net.NetWiFi ().BroadcastIpAddress, 6000),
                                Command = Command.ReadGateway,
                                SubnetID = 0xFF,
                                DeviceID = 0xFF,
                                AddData = ms.ToArray ()
                            }, SendCount.Zero, false);
                            //control.Send (new Target () {
                            //    IPEndPoint = new System.Net.IPEndPoint (new Net.NetWiFi ().BroadcastIpAddress, 6000),
                            //    Command = Command.ReadRemark,
                            //    //Command = Command.ReadGateway,
                            //    SubnetID = 0xFF,
                            //    DeviceID = 0xFF,
                            //    AddData = ms.ToArray ()
                            //}, SendCount.Zero, false);
                            System.Threading.Thread.Sleep (800);
                            //如果数量不相等,就重置次数
@@ -140,14 +139,12 @@
                                readCount = 2;
                            }
                        }
                        CommonPage.FindGateway = false;
                   
                        Application.RunOnMainThread (() => {
                            ShowGateWayView ();
                        });
                        CommonPage.LocalPhoneFindDevice = false;
                        #endregion
                    } catch (Exception ex) {
                        Console.WriteLine (ex.ToString ());
@@ -209,8 +206,7 @@
            Button rightButton1 = new Button () {
                X = Application.GetRealWidth (480),
                Width = Application.GetRealWidth (100),
                Height = Application.GetRealHeight (40),
                Width = Application.GetRealWidth (150),
                Gravity = Gravity.CenterVertical,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = SkinStyle.Current.TextColor1,
@@ -220,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 ();
            }
        }
    }