From 2fb0c39b09110be4f5a88a8c8004f03fc257f612 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期三, 06 一月 2021 11:11:53 +0800 Subject: [PATCH] 2021-1-6-1 --- ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs | 306 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 226 insertions(+), 80 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs index c831fc1..f3e6269 100644 --- a/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs @@ -564,9 +564,9 @@ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { common }); //绌烘皵璐ㄩ噺浼犳劅鍣� - if (deviceEnumInfo.ConcreteType != Common.DeviceConcreteType.AirQualitySensor) + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) { - AirSonser(flMain, SelectedDeviceStatus, edit, common); + AirSonser(flMain, SelectedDeviceStatus, edit, common, devices); } else { @@ -1328,25 +1328,144 @@ } } - - private static void AirSonser(FrameLayout flMain,string SelectedDeviceStatus,bool edit,CommonDevice common) { + /// <summary> + /// 绌烘皵璐ㄩ噺浼犳劅鍣╒iew(鐗规畩澶勭悊) + /// </summary> + /// <param name="flMain"></param> + /// <param name="SelectedDeviceStatus"></param> + /// <param name="edit"></param> + /// <param name="common"></param> + /// <param name="dic"></param> + private static void AirSonser(FrameLayout flMain,string SelectedDeviceStatus,bool edit,CommonDevice common, Dictionary<string, string> dic=null) { flMain.RemoveAll(); - PublicInterface publicInterface = new PublicInterface(); - var list0 = publicInterface.GetViewList("绌烘皵璐ㄩ噺浼犳劅鍣�"); - publicInterface.SingleSelectionShow(flMain, list0, MyInternationalizationString.airqualitysensor, "", (tagText) => + if (edit&&dic!=null) { + AirProperty(flMain, dic, common,"", edit, SelectedDeviceStatus); + } + else { - flMain.RemoveAll(); - SelectedDeviceStatus = "TemperatureSensor"; + PublicInterface publicInterface = new PublicInterface(); + var list0 = publicInterface.GetViewList("绌烘皵璐ㄩ噺浼犳劅鍣�"); + publicInterface.SingleSelectionShow(flMain, list0, MyInternationalizationString.airqualitysensor, "", (tagText) => + { + flMain.RemoveAll(); + SelectedDeviceStatus = "TemperatureSensor"; + AirProperty(flMain, dic, common,tagText, edit, SelectedDeviceStatus); + }, () => { flMain.RemoveFromParent(); }); + } + } + /// <summary> + /// 绌烘皵璐ㄩ噺浼犳劅鍣ㄥ睘鎬у��(鐗规畩澶勭悊) + /// </summary> + /// <param name="flMain"></param> + /// <param name="dic"></param> + /// <param name="common"></param> + /// <param name="tagText"></param> + /// <param name="edit"></param> + /// <param name="SelectedDeviceStatus"></param> + private static void AirProperty(FrameLayout flMain, Dictionary<string, string> dic,CommonDevice common,string tagText,bool edit, string SelectedDeviceStatus) { + PublicInterface publicInterface = new PublicInterface(); + string range = ""; + string stateText = ""; + if (edit&& dic!=null) + { + range = dic["Range"]; + switch (dic["Cluster_ID"]) + { + case "1066": + { + if (dic["AttriButeId"] == "57344") + { + tagText = Language.StringByID(MyInternationalizationString.kongqizhiliang); + switch (dic["AttriButeData1"]) + { + + case "1": + { + stateText = Language.StringByID(MyInternationalizationString.you); + } + break; + case "2": + { + stateText = Language.StringByID(MyInternationalizationString.liang); + } + break; + case "3": + { + stateText = Language.StringByID(MyInternationalizationString.cha); + } + break; + } + } + else + { + tagText = Language.StringByID(MyInternationalizationString.pm25); + ///Pm2.5 + int intValue = int.Parse(dic["AttriButeData1"]); + if (0 < intValue && intValue < 30) + { + stateText = Language.StringByID(MyInternationalizationString.pmyou); + } + else if (36 < intValue && intValue < 75) + { + stateText = Language.StringByID(MyInternationalizationString.pmliang); + } + else if (76 < intValue && intValue < 115) + { + stateText = Language.StringByID(MyInternationalizationString.pmqingdu); + } + else if (intValue > 115) + { + stateText = Language.StringByID(MyInternationalizationString.pmzhongdu); + } + + } + } + break; + case "1037": + { + tagText = Language.StringByID(MyInternationalizationString.co2); + ///co2 + int intValue = int.Parse(dic["AttriButeData1"]); + if (0 < intValue && intValue < 1000) + { + stateText = Language.StringByID(MyInternationalizationString.co2qingxin); + } + else if (1000 < intValue && intValue < 2000) + { + stateText = Language.StringByID(MyInternationalizationString.co2huizhuo); + } + else if (2000 < intValue && intValue < 5000) + { + stateText = Language.StringByID(MyInternationalizationString.co2queyang); + } + else if (intValue > 5000) + { + stateText = Language.StringByID(MyInternationalizationString.co2yanzhongqueyang); + } + } + break; + case "1026": + { + tagText = Language.StringByID(MyInternationalizationString.sensortemperature); + stateText = dic["AttriButeData1"]; + } + break; + case "1029": + { + tagText = Language.StringByID(MyInternationalizationString.sensorhumidity); + stateText = dic["AttriButeData1"]; + } + break; + } + } Dictionary<string, string> airqualitysensorDic = new Dictionary<string, string>(); Send.dictionary(airqualitysensorDic, "Type", "1"); Send.dictionary(airqualitysensorDic, "IsValid", "1"); Send.dictionary(airqualitysensorDic, "MacAddr", common.DeviceAddr); Send.dictionary(airqualitysensorDic, "Epoint", common.DeviceEpoint.ToString()); - //缂栬緫鏃剁殑鐘舵�佸�� - string stateText = ""; - if (tagText == Language.StringByID(MyInternationalizationString.kongqizhiliang)) + if (tagText == Language.StringByID(MyInternationalizationString.kongqizhiliang)) { - + var list1 = publicInterface.GetViewList("绌烘皵璐ㄩ噺"); publicInterface.SingleSelectionShow(flMain, list1, MyInternationalizationString.airqualitysensor, stateText, (strText) => { @@ -1372,86 +1491,103 @@ AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic); - }, () =>{ AirSonser(flMain, SelectedDeviceStatus, edit, common); }); + }, () => { + if (edit) { flMain.RemoveFromParent(); } + else + { + AirSonser(flMain, SelectedDeviceStatus, edit, common); + } }); } else if (tagText == Language.StringByID(MyInternationalizationString.pm25)) { - var list2= publicInterface.GetViewList("pm2.5"); - publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.pm25, stateText, (strText) => + var list2 = publicInterface.GetViewList("pm2.5"); + publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.pm25, stateText, (strText) => + { + SelectedDeviceStatus = "TemperatureSensor"; + string valuaStr = ""; + if (strText == Language.StringByID(MyInternationalizationString.pmyou)) { - SelectedDeviceStatus = "TemperatureSensor"; - string valuaStr = ""; - if (strText == Language.StringByID(MyInternationalizationString.pmyou)) - { - valuaStr = "18"; - } - else if (strText == Language.StringByID(MyInternationalizationString.pmliang)) - { - valuaStr = "54"; - } - else if (strText == Language.StringByID(MyInternationalizationString.pmqingdu)) - { - valuaStr = "105"; - } - else if (strText == Language.StringByID(MyInternationalizationString.pmzhongdu)) - { - valuaStr = "130"; - } - Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066"); - Send.dictionary(airqualitysensorDic, "AttriButeId", "0"); - Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr); - Send.dictionary(airqualitysensorDic, "AttriButeData2", "0"); - Send.dictionary(airqualitysensorDic, "Range", "1"); - AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic); + valuaStr = "18"; + } + else if (strText == Language.StringByID(MyInternationalizationString.pmliang)) + { + valuaStr = "54"; + } + else if (strText == Language.StringByID(MyInternationalizationString.pmqingdu)) + { + valuaStr = "105"; + } + else if (strText == Language.StringByID(MyInternationalizationString.pmzhongdu)) + { + valuaStr = "130"; + } + Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066"); + Send.dictionary(airqualitysensorDic, "AttriButeId", "0"); + Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr); + Send.dictionary(airqualitysensorDic, "AttriButeData2", "0"); + Send.dictionary(airqualitysensorDic, "Range", "1"); + AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic); - }, () => {AirSonser(flMain, SelectedDeviceStatus, edit, common); }); + }, () => { + if (edit) { flMain.RemoveFromParent(); } + else + { + AirSonser(flMain, SelectedDeviceStatus, edit, common); + } + }); } else if (tagText == Language.StringByID(MyInternationalizationString.co2)) { - var list2 = publicInterface.GetViewList("co2"); - publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.co2, stateText, (strText) => + var list2 = publicInterface.GetViewList("co2"); + publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.co2, stateText, (strText) => + { + SelectedDeviceStatus = "TemperatureSensor"; + string valuaStr = ""; + if (strText == Language.StringByID(MyInternationalizationString.co2qingxin)) { - SelectedDeviceStatus = "TemperatureSensor"; - string valuaStr = ""; - if (strText == Language.StringByID(MyInternationalizationString.co2qingxin)) - { - valuaStr = "500"; - } - else if (strText == Language.StringByID(MyInternationalizationString.co2huizhuo)) - { - valuaStr = "1000"; - } - else if (strText == Language.StringByID(MyInternationalizationString.co2queyang)) - { - valuaStr = "2500"; - } - else if (strText == Language.StringByID(MyInternationalizationString.co2yanzhongqueyang)) - { - valuaStr = "5500"; - } - Send.dictionary(airqualitysensorDic, "Cluster_ID", "1037"); - Send.dictionary(airqualitysensorDic, "AttriButeId", "0"); - Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr); - Send.dictionary(airqualitysensorDic, "AttriButeData2", "0"); - Send.dictionary(airqualitysensorDic, "Range", "1"); - AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic); + valuaStr = "500"; + } + else if (strText == Language.StringByID(MyInternationalizationString.co2huizhuo)) + { + valuaStr = "1500"; + } + else if (strText == Language.StringByID(MyInternationalizationString.co2queyang)) + { + valuaStr = "2500"; + } + else if (strText == Language.StringByID(MyInternationalizationString.co2yanzhongqueyang)) + { + valuaStr = "5500"; + } + Send.dictionary(airqualitysensorDic, "Cluster_ID", "1037"); + Send.dictionary(airqualitysensorDic, "AttriButeId", "0"); + Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr); + Send.dictionary(airqualitysensorDic, "AttriButeData2", "0"); + Send.dictionary(airqualitysensorDic, "Range", "1"); + AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic); - }, () => { AirSonser(flMain, SelectedDeviceStatus, edit, common); }); + }, () => { + if (edit) { flMain.RemoveFromParent(); } + else + { + AirSonser(flMain, SelectedDeviceStatus, edit, common); + } + }); - + } else if (tagText == Language.StringByID(MyInternationalizationString.sensortemperature)) { //缂栬緫鏃剁殑鐘舵�佸�� - string str1 = ""; - string str2 = ""; - publicInterface.TemperatureShow1(flMain, tagText, "鈩�", str2, str1, (relationValueStr, tempValueStr) => + string str1 = range; + string str2 = stateText; + publicInterface.TemperatureShow1(flMain, tagText, "鈩�", str1, str2, (relationValueStr, tempValueStr) => { SelectedDeviceStatus = "TemperatureSensor"; @@ -1465,16 +1601,20 @@ }, () => { - AirSonser(flMain, SelectedDeviceStatus, edit, common); + if (edit) { flMain.RemoveFromParent(); } + else + { + AirSonser(flMain, SelectedDeviceStatus, edit, common); + } }); } else if (tagText == Language.StringByID(MyInternationalizationString.sensorhumidity)) { //缂栬緫鏃剁殑鐘舵�佸�� - string str1 = ""; - string str2 = ""; - publicInterface.TemperatureShow1(flMain, tagText, "%", str2, str1, (relationValueStr, tempValueStr) => + string str1 = range; + string str2 = stateText; + publicInterface.TemperatureShow1(flMain, tagText, "%", str1, str2, (relationValueStr, tempValueStr) => { SelectedDeviceStatus = "TemperatureSensor"; Send.dictionary(airqualitysensorDic, "Cluster_ID", "1029"); @@ -1483,19 +1623,25 @@ Send.dictionary(airqualitysensorDic, "AttriButeData2", "0"); Send.dictionary(airqualitysensorDic, "Range", relationValueStr); AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic); - }, () => { AirSonser(flMain, SelectedDeviceStatus, edit, common);}); + }, () => { + if (edit) { flMain.RemoveFromParent(); } + else + { + AirSonser(flMain, SelectedDeviceStatus, edit, common); + } + }); } - }, () => { flMain.RemoveFromParent(); }); + } /// <summary> - /// 绌烘皵璐ㄩ噺浼犳劅鍣� + /// 绌烘皵璐ㄩ噺浼犳劅鍣�(鐗规畩澶勭悊) /// </summary> /// <param name="flMain"></param> /// <param name="SelectedDeviceStatus"></param> /// <param name="edit"></param> /// <param name="common"></param> /// <param name="dic"></param> - private static void AddDic(FrameLayout flMain, string SelectedDeviceStatus, bool edit, CommonDevice common, Dictionary<string, string> dic) + private static void AddDic(FrameLayout flMain, string SelectedDeviceStatus, bool edit, CommonDevice common, Dictionary<string, string> dic ) { UserView.HomePage.Instance.ScrollEnabled = true; if (SelectedDeviceStatus != "") -- Gitblit v1.8.0