wxr
2023-08-04 20f70e3446df19bf5d0faaae9f7bd58fd0fc4bcc
Crabtree/SmartHome/UI/SimpleControl/MainPage.cs
@@ -35,11 +35,15 @@
                }
                return loading;
            }
        }
        }
        //public static Button LogoButton = new Button ();
        public static string CodeIDString = "20191223";
        public static string CodeIDString = "20230726";
        /// <summary>
        /// 网关状态
        /// </summary>
        public static string GatewayStatus = "";
        public static UserInfo LoginUser;
@@ -84,6 +88,11 @@
            }
        }
        public static System.Threading.Thread staticReadDeviceStatusThread;
        public static bool readDevciesStatus = false;
        /// <summary>
        /// 显示当前界面
        /// </summary>
@@ -108,12 +117,52 @@
                    //Pad.UserHomePage.Init ();
                } else {
                    Phone.UserHomePage.Init ();
#if __IOS__
                    //Loading.LodingBackgroundColor = 0x10777777;
#else
                    //#if __IOS__
                    //                    //Loading.LodingBackgroundColor = 0x10777777;
                    //#else
                    //                    Loading.LodingBackgroundColor = SkinStyle.Current.MainColor;
                    //#endif
                    Loading.TextColor = 0xFFA9A9A9;
                    Loading.LodingBackgroundColor = SkinStyle.Current.MainColor;
#endif
                }
                staticReadDeviceStatusThread = new System.Threading.Thread (() => {
                    while (true) {
                        System.Threading.Thread.Sleep (1000);
                        if (readDevciesStatus) {
                            try {
                                var readList = new List<string> ();
                                foreach (Room room in Room.Lists) {
                                    if (string.IsNullOrEmpty (room.Name)) {
                                        continue;
                                    }
                                    var list = room.DeviceList.FindAll ((obj) => {
                                        return (obj.Type == DeviceType.LightDimming || obj.Type == DeviceType.LightSwitch || obj.Type == DeviceType.LightLogic
                                                || obj.Type == DeviceType.LightSwitchSocket || obj.Type == DeviceType.LightEnergySwitch || obj.Type == DeviceType.LightEnergySocket
                                                || obj.Type == DeviceType.LightMixDimming || obj.Type == DeviceType.LightMixSwitch || obj.Type == DeviceType.FanModule);
                                    });
                                    foreach (Common common in list) {
                                        var s = common.Type + "_" + common.SubnetID + "_" + common.DeviceID;
                                        //已经读取过当前设备就不再读取
                                        if (readList.Contains (s)) {
                                            continue;
                                        }
                                        readList.Add (s);
                                        Control.ControlBytesSend (Command.ReadLightEquipmentAllLoopBrightness, common.SubnetID, common.DeviceID, new byte [] { }, SendCount.Zero);
                                        System.Threading.Thread.Sleep (1000);
                                    }
                                }
                                readList.Clear ();
                            } catch { } finally {
                            }
                        }
                    }
                });
                staticReadDeviceStatusThread.IsBackground = true;
                staticReadDeviceStatusThread.Start ();
            } catch (Exception ex) {
                //new Alert ("Eorr", ex.Message, "Close").Show();
            }
@@ -163,7 +212,7 @@
        /// <param name="methodType">请求方法.</param>
        /// <param name="dataStringJson">请求的参数.</param>
        /// <param name="needHeaders">是否需要包头.</param>
        public static ResponsePack RequestHttps (string methodType, string dataStringJson, bool needHeaders = true, bool needTip = true)
        public static ResponsePack RequestHttps (string methodType, string dataStringJson, bool needHeaders = true, bool needTip = true,string urlHead = "")
        {
            ResponsePack revertObj = null;
            try {
@@ -173,27 +222,30 @@
                        MainPage.Loading.Hide ();
                    });
                }
                new System.Threading.Thread (() => {
                    requesTime = DateTime.Now;
                    isShowLoading = true;
                    while (isShowLoading) {
                        System.Threading.Thread.Sleep (1000);
                        if (requesTime == DateTime.MinValue) {
                            break;
                        }
                        if (requesTime.AddSeconds (30) < DateTime.Now) {
                            Application.RunOnMainThread (Loading.Hide);
                            isShowLoading = false;
                        }
                    }
                }) { IsBackground = true }.Start ();
                //new System.Threading.Thread (() => {
                //    requesTime = DateTime.Now;
                //    isShowLoading = true;
                //    while (isShowLoading) {
                //        System.Threading.Thread.Sleep (1000);
                //        if (requesTime == DateTime.MinValue) {
                //            break;
                //        }
                //        if (requesTime.AddSeconds (30) < DateTime.Now) {
                //            Application.RunOnMainThread (Loading.Hide);
                //            isShowLoading = false;
                //        }
                //    }
                //}) { IsBackground = true }.Start ();
                #region
                string urlHead = $"{"https://homeautomation.havells.com"}/WebApi/";
                string url = urlHead + methodType;
                var webClient = new WebClient ();
                if (urlHead == "") {
                    urlHead = "https://homeautomation.havells.com/WebApi/";
                } else {
                    webClient.Headers.Add ("CONTENT-TYPE", "application/json");
                }
                string url = urlHead + methodType;
                if (needHeaders && LoginUser != null) {/* 如果不需要验证Token可以不用传入 */
                    webClient.Headers.Add ("Authorization", LoginUser.LoginTokenString);
                }