HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-12-31 fe3b2466c68b5db70d38e78039703add3b8b1dfe
ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
@@ -12,14 +12,14 @@
        /// 选中该设备功能作为条件或者目标的视图方法
        /// </summary>
        /// <param name="common">Common.</param>
        public static void CurrentDeviceView(FrameLayout flMain, CommonDevice common, bool edit, string str,int intValue)
        public static void CurrentDeviceView(FrameLayout flMain, CommonDevice common, bool edit, string str, int intValue)
        {
            #region  -------界面布局部分
            //不让当前界面滑动
            UserView.HomePage.Instance.ScrollEnabled = false;
            CompleteView completeView = new CompleteView();
            flMain.AddChidren(completeView.Show(1));
            completeView.Btntitle.Text = HdlDeviceCommonLogic.Current.GetDeviceEpointName(common);
            completeView.Btntitle.Text = LocalDevice.Current.GetDeviceEpointName(common);
            EventHandler<MouseEventArgs> clickcancel = (sender, e) =>
            {
                if (edit)
@@ -33,19 +33,14 @@
            mFunView openView = new mFunView();
            openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
            //completeView.Show(l).AddChidren(openView.Show());
            openView.titleBtn.TextID = MyInternationalizationString.open;
            mFunView closeView = new mFunView();
            closeView.frameLayout.Y = Application.GetRealHeight(140 + 20+160);
            // closeView.frameLayout.Y = openView.frameLayout.Bottom;
            //completeView.Show(l).AddChidren(closeView.Show());
            closeView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160);
            closeView.titleBtn.TextID = MyInternationalizationString.close;
            mFunView takebackView = new mFunView();
             takebackView.frameLayout.Y = Application.GetRealHeight(140+20+160+160);
            // takebackView.frameLayout.Y = closeView.frameLayout.Bottom;
            //completeView.Show(l).AddChidren(takebackView.Show());
            takebackView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 + 160);
            takebackView.titleBtn.TextID = MyInternationalizationString.onoff;
            takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
            #region  -------进度条控件
@@ -95,10 +90,10 @@
            actionsInfo.Add("TaskList", taskListInfo);
            List<Dictionary<string, string>> TaskList = null;
            #endregion
            var _if=str.Split('_');
            var _if = str.Split('_');
            if (edit)
            {
                if (_if[0]== "condition")
                if (_if[0] == "condition")
                {
                    var deviceinfo = Common.Logic.CurrentLogic.Conditions[intValue];
                    if (deviceinfo["Type"] == "1")
@@ -121,7 +116,7 @@
                            TaskList = deviceinfo["TaskList"] as List<Dictionary<string, string>>;
                        }
                    }
                }
            }
            #endregion
@@ -132,6 +127,7 @@
                ///灯光
                case DeviceType.OnOffOutput:
                    {
                        if (_if[0] == "condition")
                        {
                            l = 2;
@@ -280,6 +276,8 @@
                                }
                            }
                        }
                    }
                    break;
                case DeviceType.IASZone:
@@ -305,7 +303,7 @@
                            closeView.selectedIconBtn.Visible = false;
                            if (iASZonedevice.IasDeviceType == 13)
                            {
                                closeView.selectedIconBtn.Visible = true;
                            }
                            Send.dictionary(deviceConditionsInfo, "Range", "5");
@@ -321,7 +319,7 @@
                            closeView.selectedIconBtn.Visible = true;
                            Send.dictionary(deviceConditionsInfo, "Range", "8");//1
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "3");//0
                            if (iASZonedevice.IasDeviceType == 13|| iASZonedevice.IasDeviceType == 541)
                            if (iASZonedevice.IasDeviceType == 13 || iASZonedevice.IasDeviceType == 541)
                            {
                                SelectedDeviceStatus = "";
                                closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
@@ -490,13 +488,13 @@
                        {
                            if (devices["AttriButeId"] == "1281")
                            {
                                if (devices.ContainsKey("IgnoreTime")&& devices["IgnoreTime"]!="0")
                                if (devices.ContainsKey("IgnoreTime") && devices["IgnoreTime"] != "0")
                                {
                                    timeValue = int.Parse(devices["IgnoreTime"]);
                                }
                                else
                                {
                                    if (devices["Range"]== "5")
                                    if (devices["Range"] == "5")
                                    {
                                        openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                                        closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
@@ -515,7 +513,7 @@
                            }
                        }
                    }
@@ -530,7 +528,7 @@
                        Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        completeView.Show(l).AddChidren(openView.Show());
                        openView.titleBtn.Text = HdlDeviceCommonLogic.Current.GetDeviceEpointName(common);
                        openView.titleBtn.Text = LocalDevice.Current.GetDeviceEpointName(common);
                        //openView.titleBtn.Text =Language.StringByID(MyInternationalizationString.OnOffSwitch) + common.DeviceEpoint.ToString();
                        openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                        openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
@@ -561,132 +559,36 @@
                    break;
                case DeviceType.TemperatureSensor:
                    {
                        l = 4;
                        string current = Language.StringByID(MyInternationalizationString.current);
                        completeView.Show(l);
                        var temperatureSensor = common as TemperatureSensor;
                        SelectedDeviceStatus = "TemperatureSensor";
                        #region  布局View
                        var PickerViewfra = new FrameLayout
                        //编辑时的状态值
                        string str1 = "";
                        string str2 = "";
                        if (edit && devices != null)
                        {
                            Y = Application.GetRealHeight(140),
                            Height = Application.GetRealHeight(640),
                        };
                        completeView.Show(l).AddChidren(PickerViewfra);
                        var mUIPickerView = new UIPickerView
                        {
                            Height = Application.GetRealHeight(640 - 5),
                        };
                        PickerViewfra.AddChidren(mUIPickerView);
                            //温度值
                            str1 = devices["AttriButeData1"];
                            //比较关系值
                            str2 = devices["Range"];
                        var mList1 = new List<string> { ">", "<", "=", "≥", "≤" };
                        var mList2 = new List<string>();
                        var mList3 = new List<string>();
                        for (int i = 1; i <= 100; i++)
                        {
                            mList2.Add(i.ToString());
                        }
                        var temperatureSensor = common as TemperatureSensor;
                        if (temperatureSensor.SensorDiv == 1)
                        {
                            mList3.Add("℃");
                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
                            Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                            Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//默认温度值50℃
                            Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        }
                        else
                        {
                            mList3.Add("%");
                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
                            Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                            Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "5000");//默认湿度值50%
                            Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        }
                        mUIPickerView.setNPicker(mList1, mList2, mList3);
                        #endregion
                        mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
                        Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                        Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        completeView.Show(4);
                        PublicInterface publicInterface = new PublicInterface();
                        publicInterface.TemperatureShow(completeView.fraView, common, str2, str1, (relationValueStr, tempValueStr) =>
                        {
                            ///温度进率转换*100
                            var strValue = (int.Parse(mList2[s2]) * 100).ToString();
                            SelectedDeviceStatus = "TemperatureSensor";
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", strValue);
                            switch (mList1[s1])
                            {
                                case ">":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "0");
                                    }
                                    break;
                                case "<":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "2");
                                    }
                                    break;
                                case "=":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "1");
                                    }
                                    break;
                                case "≥":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "6");
                                    }
                                    break;
                                case "≤":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "7");
                                    }
                                    break;
                            }
                        };
                        //默认=,50
                        int index1 = 2, index2 = 49;
                        if (edit && devices != null)
                        {
                            SelectedDeviceStatus = "";
                            string s = "";
                            switch (devices["Range"])
                            {
                                case "0":
                                    {
                                        s = ">";
                                    }
                                    break;
                                case "1":
                                    {
                                        s = "=";
                                    }
                                    break;
                                case "2":
                                    {
                                        s = "<";
                                    }
                                    break;
                                case "6":
                                    {
                                        s = "≥";
                                    }
                                    break;
                                case "7":
                                    {
                                        s = "≤";
                                    }
                                    break;
                            }
                            //查找索引
                            index1 = mList1.IndexOf(s);
                            //转换温度值/100
                            var dd = (int.Parse(devices["AttriButeData1"])/100).ToString();
                            index2 = mList2.IndexOf(dd);
                        }
                        ///更新最新状态;
                        mUIPickerView.setCurrentItems(index1, index2, 0);
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", tempValueStr);
                            Send.dictionary(deviceConditionsInfo, "Range", relationValueStr);
                        });
                    }
                    break;
@@ -700,7 +602,7 @@
                        taskListInfo.Add(switchdictionary);
                        completeView.Show(l).AddChidren(openView.Show());
                        openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                        horizontalSeekBarRowLien.Y = openView.frameLayout.Bottom;
                        horizontalSeekBarVol.Y = openView.frameLayout.Bottom;
                        completeView.Show(l).AddChidren(horizontalSeekBarRowLien);
@@ -1258,7 +1160,8 @@
                        };
                    }
                    break;
                case DeviceType.ColorTemperatureLight: {
                case DeviceType.ColorTemperatureLight:
                    {
                        flMain.RemoveFromParent();
                        var nightlight = new Nightlight();
                        UserView.HomePage.Instance.AddChidren(nightlight);
@@ -1271,13 +1174,13 @@
                        {
                            nightlight.Show(common, edit, _if[1]);
                        }
                    }
                    break;
            }
            completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
            {
                //UserView.HomePage.Instance.ScrollEnabled = true;
                UserView.HomePage.Instance.ScrollEnabled = true;
                if (SelectedDeviceStatus != "")
                {
                    if (_if[0] == "condition")
@@ -1300,7 +1203,7 @@
                {
                    if (!edit)
                    {
                        var alert = new ShowMsgControl(ShowMsgType.Normal,
                        var alert = new UserCenter.ShowMsgControl(ShowMsgType.Normal,
                                    Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
                                   Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
@@ -1339,11 +1242,12 @@
                        }
                        break;
                }
            };
        }
        /// <summary>
        /// 空调模式的状态
        /// </summary>