wxr
2021-07-01 43b0d5870d528f23ecd6aeceb6cfd4325188b46f
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -175,8 +175,7 @@
                                temperatureView.btnState.Text = stateStr;
                                //设备属性值,云雀上定义好的;
                                string keyVlaue = "set_temp";
                                selectedState = device.spk + "_"+ keyVlaue;
                                selectedState = device.spk + "_" + keyVlaue;
                                string set_temp_value = stateStr.Replace("℃", "");
                                //数据封装
                                AddDictionary(keyVlaue, set_temp_value);
@@ -191,7 +190,7 @@
                            string currText = acModehView.btnState.Text;
                            //设备属性值,云雀上定义好的;
                            string keyVlaue = "mode";
                            selectedState = device.spk + "_"+keyVlaue;
                            selectedState = device.spk + "_" + keyVlaue;
                            PublicInterface modeView = new PublicInterface();
                            var modeListStr = modeView.GetViewList(keyVlaue);
                            modeView.SingleSelectionShow(this, modeListStr, Language.StringByID(StringId.modeLogic), currText
@@ -274,7 +273,7 @@
                                temperatureView.btnState.Text = stateStr;
                                //设备属性值,云雀上定义好的;
                                string keyVlaue = "set_temp";
                                selectedState = device.spk + "_"+ keyVlaue;
                                selectedState = device.spk + "_" + keyVlaue;
                                string set_temp_value = stateStr.Replace("℃", "");
                                //数据封装
                                AddDictionary(keyVlaue, set_temp_value);
@@ -291,7 +290,7 @@
                            string currText = floorHeatingModehView.btnState.Text;
                            //设备属性值,云雀上定义好的;
                            string keyVlaue = "mode";
                            selectedState = device.spk + "_"+ keyVlaue;
                            selectedState = device.spk + "_" + keyVlaue;
                            PublicInterface modeView = new PublicInterface();
                            var modeListStr = modeView.GetViewList("floorheatingmode");
                            modeView.SingleSelectionShow(this, modeListStr, Language.StringByID(StringId.modeLogic), currText
@@ -418,85 +417,6 @@
            #endregion
        }
        /// <summary>
        ///开关=界面
        /// </summary>
        /// <param name="fLayout"></param>
        /// <param name="device"></param>
        /// <param name="index"></param>
        /// <param name="edit"></param>
        /// <param name="intView">选中View的数量</param>
        private void SwitchView(FrameLayout fLayout, Entity.Function device, int index, bool edit, int intView)
        {
            #region 界面
            ///开关
            LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView();
            curtainSwitchView.btnText.TextID = StringId.switchLogic;
            fLayout.AddChidren(curtainSwitchView.FLayoutView());
            #endregion
            #region 点击事件
            ///开关点击事件
            curtainSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                SwitchViewMethod(device, curtainSwitchView.btnState, intView);
            };
            if (edit)
            {
                //显示编辑之前的设备状态
                GetEditState(device, index, curtainSwitchView.btnState, null, null, null);
            }
            #endregion
        }
        /// <summary>
        ///(开关+亮度/百分比)界面
        /// </summary>
        /// <param name="fLayout"></param>
        /// <param name="device"></param>
        /// <param name="index"></param>
        /// <param name="edit"></param>
        /// <param name="intView">选中View的数量</param>
        private void SwitchBrightnessView(FrameLayout fLayout, Entity.Function device, int index, bool edit, int intView)
        {
            #region 界面
            ///开关
            LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
            lightSwitchView.btnText.TextID = StringId.switchLogic;
            fLayout.AddChidren(lightSwitchView.FLayoutView());
            ///亮度
            LogicView.FunTypeView brightnessView = new LogicView.FunTypeView();
            brightnessView.frameLayout.Y = lightSwitchView.frameLayout.Bottom;
            if (device.spk == SPK.CurtainTrietex || device.spk == SPK.CurtainRoller)
            {
                brightnessView.btnText.TextID = StringId.percentum;
            }
            else
            {
                brightnessView.btnText.TextID = StringId.brightnesLogic;
            }
            fLayout.AddChidren(brightnessView.FLayoutView());
            #endregion
            #region 点击事件
            ///开关点击事件
            lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                SwitchViewMethod(device, lightSwitchView.btnState, intView);
            };
            ///亮度点击事件
            brightnessView.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                BrightnessMethod(device, brightnessView.btnState, brightnessView.btnText.Text);
            };
            if (edit)
            {
                //显示编辑之前的设备状态
                GetEditState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null);
            }
            #endregion
        }
        /// <summary>
        /// 开关=功能下一级界面
        /// </summary>
@@ -506,13 +426,10 @@
        private void SwitchViewMethod(Entity.Function device, Button button, int len)
        {
            #region 界面
            FrameLayout frame = new FrameLayout
            {
                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
            };
            FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
            this.AddChidren(frame);
            LogicView.SwitchView switchView = new LogicView.SwitchView();
            switchView.FLayoutView(frame, len, button.Text, (Action<string>)((strValue) =>
            switchView.FLayoutView(frame, len, button.Text, (strValue) =>
            {
                int id = 0;
                switch (strValue)
@@ -536,14 +453,11 @@
                //界面显示选中值
                button.TextID = id;
                selectedState = device.spk + "_" + strValue;
                //设备属性值,云雀上定义好的;
                string keyVlaue = "on_off";
                //数据封装
                Dictionary<string, string> dic = new Dictionary<string, string>();
                LogicMethod.dictionary(dic, "key", "on_off");
                LogicMethod.dictionary(dic, "value", strValue);
                AddDictionaryData(dicSateteList, keyVlaue, dic);
            }));
                AddDictionary(keyVlaue, strValue);
            });
            #endregion
        }
        /// <summary>
@@ -557,14 +471,13 @@
            //之前的状态值
            string stateVlaue = button.Text;
            LogicView.BrightnessView brightness = new LogicView.BrightnessView();
            brightness.FLayoutView(this, titleName, stateVlaue, (Action<string>)((brightnesValue) =>
            brightness.FLayoutView(this, titleName, stateVlaue, (brightnesValue) =>
            {
                //界面显示选中值
                button.Text = brightnesValue+"%";
                string keyVlaue = "";
                button.Text = brightnesValue + "%";
                selectedState = device.spk + brightnesValue.ToString();
                //数据封装
                Dictionary<string, string> dic = new Dictionary<string, string>();
                //设备属性值,云雀上定义好的;
                string keyVlaue = "";
                switch (device.spk)
                {
                    //开关灯光 light.Switch
@@ -576,16 +489,16 @@
                            keyVlaue = "brightness";
                        }
                        break;
                    case SPK.CurtainTrietex:
                    case SPK.CurtainRoller:
                    case SPK.CurtainTrietex:
                        {
                            keyVlaue = "percent";
                        }
                        break;
                }
                LogicMethod.dictionary(dic, "value", brightnesValue.ToString());
                AddDictionaryData(dicSateteList, keyVlaue, dic);
            }));
                //数据封装
                AddDictionary(keyVlaue, brightnesValue);
            });
            #endregion
        }
@@ -622,21 +535,20 @@
            Dictionary<string, string> dic = new Dictionary<string, string>();
            LogicMethod.dictionary(dic, "key", KeyValue);
            LogicMethod.dictionary(dic, "value", selectedValue);
            AddDictionaryList(KeyValue, dic, dicSateteList);
            AddDictionaryList(KeyValue, dic);
        }
        /// <summary>
        /// 更新数据列表
        /// </summary>
        /// <param name="keyValue">设备属性值,云雀上定义好的</param> 
        /// <param name="dictionary">选中数据</param>
        /// <param name="dicList">存储数据列表</param>
        /// <param name="dictionary">添加选中数据</param>
        /// <returns></returns>
        private void AddDictionaryList(string keyValue, Dictionary<string, string> dictionary, List<Dictionary<string, string>> dicList)
        private void AddDictionaryList(string keyValue, Dictionary<string, string> dictionary)
        {
            int indexValue = -1;
            for (int i = 0; i < dicList.Count; i++)
            for (int i = 0; i < dicSateteList.Count; i++)
            {
                var dic = dicList[i];
                var dic = dicSateteList[i];
                if (dic.ContainsValue(keyValue))
                {
                    //判断是否存在
@@ -648,14 +560,14 @@
            if (indexValue != -1)
            {
                //存在移除
                dicList.RemoveAt(indexValue);
                dicSateteList.RemoveAt(indexValue);
                //重新添加
                dicList.Insert(indexValue, dictionary);
                dicSateteList.Insert(indexValue, dictionary);
            }
            else
            {
                //新添加
                dicList.Add(dictionary);
                dicSateteList.Add(dictionary);
            }
        }