HDL Home App 第二版本 旧平台金堂用 正在使用
陈嘉乐
2021-01-05 7066c7866a6e6faef9c1cbc0793cecf392454baa
ZigbeeApp/Shared/Phone/Device/Logic/LogicDveiceStatus.cs
@@ -339,56 +339,166 @@
                                        break;
                                    case DeviceType.TemperatureSensor:
                                        {
                                            // conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png";
                                            var dev = deviceinof as TemperatureSensor;
                                            if (conditions["Cluster_ID"] == "1026")
                                            //获取设备类型
                                            var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { deviceinof });
                                            if (deviceEnumInfo==null) {
                                                continue;
                                            }
                                            //空气质量传感器
                                            if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                                            {
                                                dev.SensorDiv = 1;
                                                icon = "ZigeeLogic/airquality.png";
                                                string s = "";
                                                switch (conditions["Range"])
                                                {
                                                    case "0":
                                                        {
                                                            s = ">";
                                                        }
                                                        break;
                                                    case "1":
                                                        {
                                                            s = "=";
                                                        }
                                                        break;
                                                    case "2":
                                                        {
                                                            s = "<";
                                                        }
                                                        break;
                                                    case "6":
                                                        {
                                                            s = "≥";
                                                        }
                                                        break;
                                                    case "7":
                                                        {
                                                            s = "≤";
                                                        }
                                                        break;
                                                }
                                                switch (conditions["Cluster_ID"]) {
                                                    case "1066": {
                                                            if (conditions["AttriButeId"] =="57344") {
                                                                if (conditions["AttriButeData1"] == "1")
                                                                {
                                                                    state = Language.StringByID(MyInternationalizationString.you);
                                                                }
                                                                else if (conditions["AttriButeData1"] == "2")
                                                                {
                                                                    state = Language.StringByID(MyInternationalizationString.liang);
                                                                }
                                                                else {
                                                                    state = Language.StringByID(MyInternationalizationString.cha);
                                                                }
                                                                state = Language.StringByID(MyInternationalizationString.kongqizhiliang) + state;
                                                            } else {
                                                                ///Pm2.5
                                                                int intValue = int.Parse(conditions["AttriButeData1"]);
                                                                if (0< intValue&& intValue<30) {
                                                                    state = Language.StringByID(MyInternationalizationString.pmyou);
                                                                }
                                                                else if (36 < intValue && intValue < 75) {
                                                                    state = Language.StringByID(MyInternationalizationString.pmliang);
                                                                }
                                                                else if (76 < intValue && intValue < 115) {
                                                                    state = Language.StringByID(MyInternationalizationString.pmqingdu);
                                                                }
                                                                else if (intValue >115) {
                                                                    state = Language.StringByID(MyInternationalizationString.pmzhongdu);
                                                                }
                                                                state = Language.StringByID(MyInternationalizationString.pm25) + state;
                                                            }
                                                        }break;
                                                    case "1037":
                                                        {
                                                            ///co2
                                                            int intValue = int.Parse(conditions["AttriButeData1"]);
                                                            if (0 < intValue && intValue < 1000)
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.co2qingxin);
                                                            }
                                                            else if (1000 < intValue && intValue < 2000)
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.co2huizhuo);
                                                            }
                                                            else if (2000 < intValue && intValue < 5000)
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.co2queyang);
                                                            }
                                                            else if (intValue > 5000)
                                                            {
                                                                state = Language.StringByID(MyInternationalizationString.co2yanzhongqueyang);
                                                            }
                                                            state = Language.StringByID(MyInternationalizationString.co2) + state;
                                                        }
                                                        break;
                                                    case "1026": {
                                                            ///转换温度值/100
                                                            string srtValue = (int.Parse(conditions["AttriButeData1"]) / 100).ToString();
                                                            state = s + srtValue + "℃";
                                                        } break;
                                                    case "1029": {
                                                            ///转换温度值/100
                                                            string srtValue = (int.Parse(conditions["AttriButeData1"]) / 100).ToString();
                                                            state = s + srtValue + "%";
                                                        } break;
                                                }
                                            }
                                            else
                                            {
                                                dev.SensorDiv = 2;
                                            }
                                            string s = "";
                                            switch (conditions["Range"])
                                            {
                                                case "0":
                                                    {
                                                        s = ">";
                                                    }
                                                    break;
                                                case "1":
                                                    {
                                                        s = "=";
                                                    }
                                                    break;
                                                case "2":
                                                    {
                                                        s = "<";
                                                    }
                                                    break;
                                                case "6":
                                                    {
                                                        s = "≥";
                                                    }
                                                    break;
                                                case "7":
                                                    {
                                                        s = "≤";
                                                    }
                                                    break;
                                            }
                                            ///转换温度值/100
                                            string srtValue = (int.Parse(conditions["AttriButeData1"]) / 100).ToString();
                                            if (conditions["Cluster_ID"] == "1026")
                                            {
                                                icon = "ZigeeLogic/temperature.png";
                                                state = s + srtValue + "℃";
                                            }
                                            else
                                            {
                                                icon = "ZigeeLogic/humidity.png";
                                                state = s + srtValue + "%";
                                                var dev = deviceinof as TemperatureSensor;
                                                if (conditions["Cluster_ID"] == "1026")
                                                {
                                                    dev.SensorDiv = 1;
                                                }
                                                else
                                                {
                                                    dev.SensorDiv = 2;
                                                }
                                                string s = "";
                                                switch (conditions["Range"])
                                                {
                                                    case "0":
                                                        {
                                                            s = ">";
                                                        }
                                                        break;
                                                    case "1":
                                                        {
                                                            s = "=";
                                                        }
                                                        break;
                                                    case "2":
                                                        {
                                                            s = "<";
                                                        }
                                                        break;
                                                    case "6":
                                                        {
                                                            s = "≥";
                                                        }
                                                        break;
                                                    case "7":
                                                        {
                                                            s = "≤";
                                                        }
                                                        break;
                                                }
                                                ///转换温度值/100
                                                string srtValue = (int.Parse(conditions["AttriButeData1"]) / 100).ToString();
                                                if (conditions["Cluster_ID"] == "1026")
                                                {
                                                    icon = "ZigeeLogic/temperature.png";
                                                    state = s + srtValue + "℃";
                                                }
                                                else
                                                {
                                                    icon = "ZigeeLogic/humidity.png";
                                                    state = s + srtValue + "%";
                                                }
                                            }
                                            break;
@@ -468,9 +578,17 @@
                        selecteddevice.selecetddevicestateBtn.Text = state;
                    }
                    ///编辑
                    selecteddevice.edit.Tag = i.ToString();
                    selecteddevice.edit.Tag = conditions;
                    selecteddevice.edit.MouseUpEventHandler += (sender, e) =>
                    {
                        var dic = selecteddevice.edit.Tag as Dictionary<string, string>;
                        int isInt = 0;
                        if (dic != null)
                        {
                            //之前标记索引值,一旦删除数据索引值会发生改变;
                            //找到数据在列表里最新索引,并且更新索引值
                            isInt = Common.Logic.CurrentLogic.Conditions.IndexOf(dic);
                        }
                        switch (Type)
                        {
@@ -501,7 +619,7 @@
                                    {
                                        var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                                        frameLayout.AddChidren(flMain);
                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "condition_logic",int.Parse(selecteddevice.edit.Tag.ToString()));
                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "condition_logic", isInt);
                                    }
                                    else
                                    {
@@ -1026,8 +1144,7 @@
                                {
                                    state = seconds.ToString() + Language.StringByID(MyInternationalizationString.second);
                                }
                                //记录延时;
                                actiondevice.edit.Tag = i;
                            };
                            break;
                    }
@@ -1054,9 +1171,18 @@
                        actiondevice.selecetddevicestateBtn.Text = state;
                    }
                    ///编辑
                    actiondevice.edit.Tag = i.ToString();
                    //记录;
                    actiondevice.edit.Tag = actions;
                    actiondevice.edit.MouseUpEventHandler += (sender, e) =>
                    {
                        var dic = actiondevice.edit.Tag as Dictionary<string, object>;
                        int isInt = 0;
                        if (dic != null)
                        {
                            //之前标记索引值,一旦删除数据索引值会发生改变;
                            //找到数据在列表里最新索引,并且更新索引值
                            isInt = Common.Logic.CurrentLogic.Actions.IndexOf(dic);
                        }
                        switch (linkType)
                        {
                            case 8:
@@ -1065,7 +1191,7 @@
                                    var deviceinof = Method.GetCommonDevice(actions["DeviceAddr"].ToString(), actions["Epoint"].ToString());
                                    var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                                    frameLayout.AddChidren(flMain);
                                    CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "action_logic", int.Parse(actiondevice.edit.Tag.ToString()));
                                    CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "action_logic", isInt);
                                }
                                break;
                            case 6:
@@ -1079,10 +1205,11 @@
                                break;
                            case 7:
                                {
                                    var delayTime = new DelayTime();
                                    UserView.HomePage.Instance.AddChidren(delayTime);
                                    UserView.HomePage.Instance.PageIndex += 1;
                                    delayTime.Show(int.Parse(actiondevice.edit.Tag.ToString()), true);
                                    delayTime.Show(isInt, true);
                                }
                                break;
@@ -1185,5 +1312,105 @@
     
        }
        public void dddd(FrameLayout flMain,string MacAddr,string Epoint) {
            //Dictionary<string, string> airqualitysensorDic = new Dictionary<string, string>();
            //Send.dictionary(airqualitysensorDic, "Type", "1");
            //Send.dictionary(airqualitysensorDic, "IsValid", "1");
            //Send.dictionary(airqualitysensorDic, "MacAddr", MacAddr);
            //Send.dictionary(airqualitysensorDic, "Epoint", Epoint);
            //string tagText ="";
            //string SelectedDeviceStatus = "";
            //if (tagText == Language.StringByID(MyInternationalizationString.airqualitysensor))
            //{
            //    string stateText = "";
            //    PublicInterface publicInterface = new PublicInterface();
            //    var list1 = publicInterface.GetViewList("空气质量");
            //    publicInterface.SingleSelectionShow(flMain, list1, MyInternationalizationString.airqualitysensor, stateText, (strText) =>
            //    {
            //        SelectedDeviceStatus = "TemperatureSensor";
            //        string valuaStr = "";
            //        if (strText == Language.StringByID(MyInternationalizationString.you))
            //        {
            //            valuaStr = "1";
            //        }
            //        else if (strText == Language.StringByID(MyInternationalizationString.liang))
            //        {
            //            valuaStr = "2";
            //        }
            //        else if (strText == Language.StringByID(MyInternationalizationString.cha))
            //        {
            //            valuaStr = "3";
            //        }
            //        Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
            //        Send.dictionary(airqualitysensorDic, "AttriButeId", "57344");
            //        Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
            //        Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
            //        Send.dictionary(airqualitysensorDic, "Range", "1");
            //        AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
            //    }, () => { });
            //}
            //else if (tagText == Language.StringByID(MyInternationalizationString.pm25))
            //{
            //    //编辑时的状态值
            //    string str1 = "";
            //    string str2 = "";
            //    PublicInterface publicInterface = new PublicInterface();
            //    publicInterface.TemperatureShow1(flMain, tagText, "℃", str2, str1, (relationValueStr, tempValueStr) =>
            //    {
            //        SelectedDeviceStatus = "TemperatureSensor";
            //        Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
            //        Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
            //        Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
            //        Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
            //        Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
            //        AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
            //    }, () => { });
            //}
            //else if (tagText == Language.StringByID(MyInternationalizationString.sensortemperature))
            //{
            //    //编辑时的状态值
            //    string str1 = "";
            //    string str2 = "";
            //    PublicInterface publicInterface = new PublicInterface();
            //    publicInterface.TemperatureShow1(flMain, tagText, "℃", str2, str1, (relationValueStr, tempValueStr) =>
            //    {
            //        SelectedDeviceStatus = "TemperatureSensor";
            //        Send.dictionary(airqualitysensorDic, "Cluster_ID", "1026");
            //        Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
            //        Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
            //        Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
            //        Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
            //        AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
            //    }, () => { });
            //}
            //else if (tagText == Language.StringByID(MyInternationalizationString.sensorhumidity))
            //{
            //    //编辑时的状态值
            //    string str1 = "";
            //    string str2 = "";
            //    PublicInterface publicInterface = new PublicInterface();
            //    publicInterface.TemperatureShow1(flMain, tagText, "%", str2, str1, (relationValueStr, tempValueStr) =>
            //    {
            //        SelectedDeviceStatus = "TemperatureSensor";
            //        Send.dictionary(airqualitysensorDic, "Cluster_ID", "1029");
            //        Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
            //        Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
            //        Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
            //        Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
            //        AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
            //    }, () => { });
            //}
        }
    }
}