JLChen
2021-01-11 5a5a2b696866f947b6025d26c3302e8ffef46435
Crabtree/SmartHome/UI/SimpleControl/Phone/Room/UserRoom.cs
@@ -59,11 +59,13 @@
                                            if (btn.Tag.ToString () == DeviceType.LightEnergySocket.ToString () + "_Voltage" || btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Voltage") {
                                                btn.Text = energy.ToString () + " W";
                                            }
                                        } else if (updataType == 11) {
                                            if (btn.Tag.ToString () == DeviceType.LightEnergySocket.ToString () + "_Electric" || btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Electric") {
                                                btn.Text = ((double)(Convert.ToDouble (energy) / 10)).ToString () + " kw.h";
                                            }
                                        }
                                        //2020-07-01 客户提出隐藏kwh
                                        //else if (updataType == 11) {
                                        //    if (btn.Tag.ToString () == DeviceType.LightEnergySocket.ToString () + "_Electric" || btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Electric") {
                                        //        btn.Text = ((double)(Convert.ToDouble (energy) / 10)).ToString () + " kw.h";
                                        //    }
                                        //}
                                    }
                                }
                            }
@@ -214,7 +216,7 @@
                        }
                    });
                } catch (Exception ex) {
                    Console.WriteLine (ex.Message);
                    Utlis.WriteLine (ex.Message);
                } finally {
                    //Application.RunOnMainThread (() => {
                    //    MainPage.Loading.Hide ();
@@ -230,7 +232,7 @@
        {
            foreach (var thread in UserMiddle.updateSensorhreadList) {
                thread.Abort ();
                Console.WriteLine ("abortThread");
                Utlis.WriteLine ("abortThread");
            }
            UserMiddle.updateSensorhreadList.Clear ();
            EnergtLightList.Clear ();
@@ -393,20 +395,28 @@
                    MainPage.Loading.Start ();
                    System.Threading.Tasks.Task.Run (() => {
                        if (UserConfig.Instance.HomeLists.Count == 0) {
                            var requestObj2 = new GetHomePagerObj ();
                            requestObj2.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
                            //var requestObj2 = new HomeListObj ();
                            var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
                            var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2);
                            if (revertObj2.StateCode.ToUpper() == "SUCCESS") {
                                var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ());
                            //var requestObj2 = new GetHomePagerObj ();
                            //requestObj2.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString;
                            ////var requestObj2 = new HomeListObj ();
                            //var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2);
                            //var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2);
                            //if (revertObj2.StateCode.ToUpper() == StateCode.SUCCESS) {
                            //    var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ());
                                if (mResidenceRes.PageData != null && mResidenceRes.PageData.Count > 0) {
                                    UserConfig.Instance.HomeLists = mResidenceRes.PageData;
                                    UserConfig.Instance.SaveUserConfig ();
                                }
                            //    if (mResidenceRes.PageData != null && mResidenceRes.PageData.Count > 0) {
                            //        UserConfig.Instance.HomeLists = mResidenceRes.PageData;
                            //        UserConfig.Instance.SaveUserConfig ();
                            //    }
                            //} else {
                            //    ShowGetHomePagerErrorInfo (revertObj2.StateCode);
                            //}
                            //获取住宅列表
                            var revertObjCode = HttpServerRequest.Current.GetHomePager ();
                            if (revertObjCode == StateCode.SUCCESS) {
                            } else {
                                ShowGetHomePagerErrorInfo (revertObj2.StateCode);
                                IMessageCommon.Current.ShowErrorInfoAlter (revertObjCode);
                            }
                        }
                        Application.RunOnMainThread (() => {
@@ -478,7 +488,7 @@
                                                System.IO.FileInfo fileInfo = new System.IO.FileInfo (IO.FileUtils.RootPath + fileName);
                                                if (fileInfo.Exists) {
                                                    fileInfo.MoveTo (oldRegionRootPath + fileName);
                                                    Console.WriteLine ("move file : " + fileName);
                                                    Utlis.WriteLine ("move file : " + fileName);
                                                }
                                                index++;
                                                Application.RunOnMainThread (() => {
@@ -508,7 +518,7 @@
                                                new Alert ("", Language.StringByID (R.MyInternationalizationString.CheckInternet),
                                                           Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                            });
                                            Console.WriteLine (ex.Message);
                                            Utlis.WriteLine (ex.Message);
                                        } finally {
                                            Application.RunOnMainThread (() => {
                                                MainPage.Loading.Hide ();
@@ -661,24 +671,21 @@
                    CommonPage.RefreshAir = () => {
                        var airQualityR = CommonPage.AirQuality;
                        if (airQualityR != null &&
                            airQualityR.data != null &&
                            airQualityR.data.city != null &&
                            airQualityR.data.condition != null) {
                            AirQCity = btnCity.Text = airQualityR.data.city.name;
                            AirQTemp = btnTemp.Text = airQualityR.data.condition.temp + "°";
                            if (airQualityR.data.aqi != null) {
                                AirQAirPM25 = btnPM25.Text = "PM2.5  " + airQualityR.data.aqi.pm25;
                        if (airQualityR != null) {
                            AirQCity = btnCity.Text = airQualityR.city;
                            AirQTemp = btnTemp.Text = airQualityR.airQTemp + "°";
                            if (airQualityR.airQAirPM25 != null) {
                                AirQAirPM25 = btnPM25.Text = "PM2.5  " + airQualityR.airQAirPM25;
                            } else {
                                if (string.IsNullOrEmpty (airQualityR.data.condition.condition))
                                    btnPM25.Text = airQualityR.data.condition.condition;
                                if (string.IsNullOrEmpty (airQualityR.airQAirWeather))
                                    btnPM25.Text = airQualityR.airQAirWeather;
                            }
                            AirQHumidity = btnHumidity.Text = airQualityR.data.condition.humidity;
                            AirQHumidity = btnHumidity.Text = airQualityR.airQHumidity;
                            AirQHumidityIcon = btnHumidityIcon.UnSelectedImagePath = "AirQuality/HumidityIcon.png";
                            AirQAirPM25Icon = btnPM25Icon.UnSelectedImagePath = "AirQuality/PM25Icon.png";
                            AirLineNullBackgroundColor = btnAirLineNull.BackgroundColor = SkinStyle.Current.White20Transparent;
                            btnAirLineNull.BackgroundColor = SkinStyle.Current.White20Transparent;
                            #region
                            switch (airQualityR.data.condition.condition) {
                            switch (airQualityR.airQAirWeather) {
                            case "晴":
                            case "Sunny":
                            case "晴天":
@@ -848,6 +855,7 @@
                            #endregion
                        }
                    };
                    CommonPage.RefreshAir ();
                } else {
@@ -916,13 +924,16 @@
                        SelectedTextColor = SkinStyle.Current.TextColor1,
                    };
                    acRowView.AddChidren (tempDeviceName);
                    //2020-08-28 增加长按修改设备备注
                    ButtonNameAddMouseLongEventHandler (tempDeviceName, devcieCommon);
                    tempDeviceName.MouseUpEventHandler += openACControlPageEvent;
                    Button btnMode = new Button () {
                        X = Application.GetRealWidth (20),
                        Y = Application.GetRealHeight (40),
                        Width = Application.GetRealWidth (100),
                        Height = Application.GetRealHeight (100),
                        Width = Application.GetMinRealAverage (100),
                        Height = Application.GetMinRealAverage (100),
                        Tag = "Mode"
                    };
                    acRowView.AddChidren (btnMode);
@@ -932,8 +943,8 @@
                    Button btnWind = new Button () {
                        X = btnMode.Right + Application.GetRealWidth (0),
                        Y = Application.GetRealHeight (40),
                        Width = Application.GetRealWidth (100),
                        Height = Application.GetRealHeight (100),
                        Width = Application.GetMinRealAverage (100),
                        Height = Application.GetMinRealAverage (100),
                        Tag = "Wind"
                    };
                    acRowView.AddChidren (btnWind);
@@ -1029,6 +1040,10 @@
                        IsMoreLines = true
                    };
                    fhRowView.AddChidren (tempDeviceName);
                    //2020-08-28 增加长按修改设备备注
                    ButtonNameAddMouseLongEventHandler (tempDeviceName, devcieCommon);
                    tempDeviceName.MouseUpEventHandler += (sender2, e2) => {
                        UserFHPage fhView = new UserFHPage (fh, room);
                        if (roomFilePath == Room.FavoriteRoom) {
@@ -1146,6 +1161,13 @@
                            IsMoreLines = true
                        };
                        DeviceRowView.AddChidren (btnName);
                        //2020-08-28 增加长按修改设备备注
                        ButtonNameAddMouseLongEventHandler (btnName, devcieCommon);
                        //btnName.MouseLongEventHandler += (sender, e)=>{
                        //    RemarkDeviceName (devcieCommon, SimpleControl.CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (devcieCommon)), btnName);
                        //};
                        Button tempSwitch = new Button () {
                            Width = Application.GetMinRealAverage (90),
@@ -1366,7 +1388,7 @@
                                };
                                proessView.AddChidren (btnMaxBrightness);
                                horizontalSeekBar.ProgressChanged += (sender2, e4) => {
                                    Console.WriteLine (DateTime.Now.ToString ());
                                    Utlis.WriteLine (DateTime.Now.ToString ());
                                    btnMaxBrightness.Text = horizontalSeekBar.Progress + "%";
                                    System.Threading.Tasks.Task.Run (() => {
                                        if ((System.DateTime.Now - (DateTime)(horizontalSeekBar.Tag)).TotalMilliseconds < 100) {
@@ -1821,9 +1843,10 @@
                                }
                            };
                            #endregion
                        } else if (devcieCommon.Type == DeviceType.LightSwitch ||
                            devcieCommon.Type == DeviceType.LightEnergySocket ||
                            devcieCommon.Type == DeviceType.LightEnergySwitch || devcieCommon.Type == DeviceType.LightSwitchSocket) {
                        } else if (devcieCommon.Type == DeviceType.LightSwitch
                            || devcieCommon.Type == DeviceType.LightEnergySocket
                            || devcieCommon.Type == DeviceType.LightEnergySwitch
                            || devcieCommon.Type == DeviceType.LightSwitchSocket) {
                            #region 继电器
                            LightSwitch switchLight = devcieCommon as LightSwitch;
                            tempSwitch.IsSelected = switchLight.CurrentBrightness == 100 ? true : false;
@@ -1850,19 +1873,19 @@
                                };
                                DeviceRowView.AddChidren (btnEnergy);
                                EnergtLightList.Add (devcieCommon);
                                Button btnElectric = new Button () {
                                    Width = Application.GetRealWidth (200),
                                    Height = Application.GetRealHeight (35),
                                    X = Application.GetRealWidth (320),
                                    Y = tempSwitch.Bottom,
                                    TextColor = SkinStyle.Current.TextColor1,
                                    TextAlignment = TextAlignment.CenterRight,
                                    SelectedTextColor = SkinStyle.Current.TextColor1,
                                    Tag = devcieCommon.Type.ToString () + "_Electric",
                                    Text = "0 kw.h"
                                };
                                DeviceRowView.AddChidren (btnElectric);
                                //2020-07-01 客户提出隐藏kwh
                                //Button btnElectric = new Button () {
                                //    Width = Application.GetRealWidth (200),
                                //    Height = Application.GetRealHeight (35),
                                //    X = Application.GetRealWidth (320),
                                //    Y = tempSwitch.Bottom,
                                //    TextColor = SkinStyle.Current.TextColor1,
                                //    TextAlignment = TextAlignment.CenterRight,
                                //    SelectedTextColor = SkinStyle.Current.TextColor1,
                                //    Tag = devcieCommon.Type.ToString () + "_Electric",
                                //    Text = "0 kw.h"
                                //};
                                //DeviceRowView.AddChidren (btnElectric);
                            }
                            tempSwitch.MouseUpEventHandler += (sender3, e3) => {
                                //tempSwitch.IsSelected = !tempSwitch.IsSelected;
@@ -1876,10 +1899,14 @@
                                    SendControl.SendControlSetSingleLight (switchLight, new byte [] { switchLight.LoopID, 0, 0, 0 });
                                    //Control.ControlBytesSend (Command.SetSingleLight, switchLight.SubnetID, switchLight.DeviceID, new byte [] { switchLight.LoopID, 0, 0, 0 });
                                }
                                new System.Threading.Thread (() => {
                                    Control.ControlBytesSend (Command.ReadAnalogValue, switchLight.SubnetID, switchLight.DeviceID, new byte [] { 10, switchLight.LoopID }, SendCount.Zero);
                                    Control.ControlBytesSend (Command.ReadAnalogValue, switchLight.SubnetID, switchLight.DeviceID, new byte [] { 11, switchLight.LoopID }, SendCount.Zero);
                                }) { IsBackground = true }.Start ();
                                if (devcieCommon.Type == DeviceType.LightEnergySocket || devcieCommon.Type == DeviceType.LightEnergySwitch) {
                                    new System.Threading.Thread (() => {
                                        Control.ControlBytesSend (Command.ReadAnalogValue, switchLight.SubnetID, switchLight.DeviceID, new byte [] { 10, switchLight.LoopID }, SendCount.Zero);
                                        //2020-07-01 客户提出隐藏kwh
                                        //Control.ControlBytesSend (Command.ReadAnalogValue, switchLight.SubnetID, switchLight.DeviceID, new byte [] { 11, switchLight.LoopID }, SendCount.Zero);
                                    }) { IsBackground = true }.Start ();
                                }
                            };
                            #endregion
                        } else if (devcieCommon.Type == DeviceType.CurtainModel) {
@@ -1987,7 +2014,7 @@
                            try {
                                InfraredMode infraredTV = devcieCommon as InfraredMode;// Newtonsoft.Json.JsonConvert.DeserializeObject<InfraredMode> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
                                if (infraredTV != null)
                                    Console.WriteLine (infraredTV.InfraredType);
                                    Utlis.WriteLine (infraredTV.InfraredType);
                                if (infraredTV.InfraredType == InfraredType.TV) {
                                    btnIcon.UnSelectedImagePath = "Item/InfraredTV.png";
                                    btnIcon.SelectedImagePath = "Item/InfraredTV.png";
@@ -2008,7 +2035,7 @@
                                    };
                                }
                            } catch (Exception ex) {
                                Console.WriteLine (ex.ToString ());
                                Utlis.WriteLine (ex.ToString ());
                                continue;
                            }
                            #endregion
@@ -2046,14 +2073,14 @@
                            };
                            DeviceRowView.AddChidren (tempSwitch);
                            if (udDevice.ActionType == 0) {
                                tempSwitch.Text = udDevice.ON_Text;
                                //tempSwitch.TextID = R.MyInternationalizationString.ON;
                                //tempSwitch.Text = udDevice.ON_Text;
                                tempSwitch.TextID = R.MyInternationalizationString.ON;
                            } else if (udDevice.ActionType == 1) {
                                tempSwitch.Text = udDevice.OFF_Text;
                                //tempSwitch.TextID = R.MyInternationalizationString.OFF;
                                //tempSwitch.Text = udDevice.OFF_Text;
                                tempSwitch.TextID = R.MyInternationalizationString.OFF;
                            } else if (udDevice.ActionType == 2) {
                                tempSwitch.Text = udDevice.OFF_Text;
                                //tempSwitch.TextID = R.MyInternationalizationString.OFF;
                                //tempSwitch.Text = udDevice.OFF_Text;
                                tempSwitch.TextID = R.MyInternationalizationString.OFF;
                                Button tempON = new Button () {
                                    Width = Application.GetRealWidth (110),
@@ -2079,25 +2106,26 @@
                                    DeviceRowView.BorderColor = SkinStyle.Current.SelectedColor;
                                    tempON.BorderColor = SkinStyle.Current.SelectedColor;
                                };
                                tempSwitch.MouseUpEventHandler += (sender3, e3) => {
                                    if (udDevice.UniversalType == 0xE01C) {
                                        if (udDevice.ActionType == 0) {
                                            //2020-02-10 待修改
                                            Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero);
                                        } else if (udDevice.ActionType == 1) {
                                            Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
                                        } else if (udDevice.ActionType == 2) {
                                            Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
                                        }
                                    }
                                    DeviceRowView.BorderColor = SkinStyle.Current.Transparent;
                                    tempSwitch.BorderColor = SkinStyle.Current.BorderColor;
                                };
                                tempSwitch.MouseDownEventHandler += (sende3r, e3) => {
                                    DeviceRowView.BorderColor = SkinStyle.Current.SelectedColor;
                                    tempSwitch.BorderColor = SkinStyle.Current.SelectedColor;
                                };
                            }
                            tempSwitch.MouseUpEventHandler += (sender3, e3) => {
                                if (udDevice.UniversalType == 0xE01C) {
                                    if (udDevice.ActionType == 0) {
                                        //2020-02-10 待修改
                                        Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero);
                                    } else if (udDevice.ActionType == 1) {
                                        Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
                                    } else if (udDevice.ActionType == 2) {
                                        Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
                                    }
                                }
                                DeviceRowView.BorderColor = SkinStyle.Current.Transparent;
                                tempSwitch.BorderColor = SkinStyle.Current.BorderColor;
                            };
                            tempSwitch.MouseDownEventHandler += (sende3r, e3) => {
                                DeviceRowView.BorderColor = SkinStyle.Current.SelectedColor;
                                tempSwitch.BorderColor = SkinStyle.Current.SelectedColor;
                            };
                            #endregion
                        } else if (devcieCommon.Type.ToString ().Contains ("Sensor")) {
                            #region 传感器
@@ -2290,7 +2318,7 @@
                    }
                }
            } catch (Exception ex) {
                Console.WriteLine ("exddd :" + ex.ToString ());
                Utlis.WriteLine ("exddd :" + ex.ToString ());
            } finally {
                //2020-02-14 增加读状态操作
                UserMiddle.ReadAllDeviceStatus (false, true);
@@ -2303,10 +2331,11 @@
                                
                                var c = EnergtLightList [i];
                                Control.ControlBytesSend (Command.ReadAnalogValue, c.SubnetID, c.DeviceID, new byte [] { 10, c.LoopID }, SendCount.Zero);
                                Control.ControlBytesSend (Command.ReadAnalogValue, c.SubnetID, c.DeviceID, new byte [] { 11, c.LoopID }, SendCount.Zero);
                                //2020-07-01 客户提出隐藏kwh
                                //Control.ControlBytesSend (Command.ReadAnalogValue, c.SubnetID, c.DeviceID, new byte [] { 11, c.LoopID }, SendCount.Zero);
#if DEBUG
                                Application.RunOnMainThread (() => {
                                    Console.WriteLine ($"读取 { c.Name } 电能");
                                    Utlis.WriteLine ($"读取 { c.Name } 电能");
                                });
#endif
                                System.Threading.Thread.Sleep (500);
@@ -2355,5 +2384,35 @@
                });
            });
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="btnName"></param>
        /// <param name="devcieCommon"></param>
        void ButtonNameAddMouseLongEventHandler (Button btnName,Common devcieCommon)
        {
            //2020-08-28 增加长按修改设备备注
            btnName.MouseLongEventHandler += (sender, e) => {
                RemarkDeviceName (devcieCommon, SimpleControl.CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (devcieCommon)), btnName);
            };
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="commonDevice"></param>
        /// <param name="commonBytes"></param>
        /// <param name="btnEquipment"></param>
        void RemarkDeviceName (Common commonDevice, byte[] commonBytes, Button btnEquipment)
        {
            Action successAction = () => {
                GenericDialog.Current.RefreshRemark (commonDevice);
                //if (!roomDeviceFilePathList.Contains (filePath)) {
                //    roomDeviceFilePathList.Add (filePath);
                //}
            };
            GenericDialog.Current.ShowModifyRemarksDialog (commonDevice, commonBytes, btnEquipment, successAction);
        }
    }
}