From e1a8f2f7e4d850beedeb1469610b878c1427e976 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 15 十二月 2021 09:01:53 +0800 Subject: [PATCH] 更新 --- HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 619 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 522 insertions(+), 97 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs index 398c19a..e6fc71d 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs @@ -135,7 +135,8 @@ //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� switch (device.spk) { - //寮�鍏崇伅鍏� light.Switch + //寮�鍏崇伅鍏� + case SPK.AirSwitch: case SPK.LightDimming: case SPK.LightRGB: case SPK.LightRGBW: @@ -147,8 +148,16 @@ case SPK.CurtainTrietex: //绌鸿皟 case SPK.AcStandard: + case SPK.HvacAC: //鍦扮儹 + case SPK.HvacFloorHeat: case SPK.FloorHeatStandard: + //鏂伴 + case SPK.AirFreshStandard: + case SPK.HvacAirFresh: + //鎻掑骇 + case SPK.PanelSocket: + case SPK.ElectricSocket: {//寮�鍏崇伅 foreach (var dic in dicList) { @@ -203,6 +212,7 @@ } break; case SPK.SensorDryContact: + case SPK.SensorDryContact2: { foreach (var dic in dicList) { @@ -267,6 +277,7 @@ switch (dic["key"]) { case "status": + case "people_status": { if (value == "true") { @@ -300,6 +311,7 @@ } break; case SPK.SenesorMegahealth: + case SPK.SenesorMegahealth2: { foreach (var dic in dicList) { @@ -376,12 +388,54 @@ } break; + case SPK.SensorTemperature: + { + string str = new InpOrOutLogicMethod { }.GetText(dicList, "temperature"); + inputView.btnState.Text = str; + } + break; + case SPK.SensorHumidity: + { + string str = new InpOrOutLogicMethod { }.GetText(dicList, "humidity"); + inputView.btnState.Text = str; + + } + break; + case SPK.SensorCO2: + { + string str = new InpOrOutLogicMethod { }.GetText(dicList, "co2"); + inputView.btnState.Text = str; + + } + break; + case SPK.SensorPm25: + { + string str = new InpOrOutLogicMethod { }.GetText(dicList, "pm25"); + inputView.btnState.Text = str; + + } + break; + case SPK.SensorTVOC: + { + string str = new InpOrOutLogicMethod { }.GetText(dicList, "tvoc"); + inputView.btnState.Text = str; + + } + break; + case SPK.SensorHcho: + { + string str = new InpOrOutLogicMethod { }.GetText(dicList, "hcho"); + inputView.btnState.Text = str; + + } + break; } } break; - case "4": + case "6": { + //inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png"; inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png"; string strtext = ""; string strvalue = ""; @@ -393,8 +447,9 @@ switch (key) { - case "outdoor_temp": + case "temperature": { + //浜戠澶╂皵鏉′欢 鍩庡競娓╁害瑙﹀彂 strvalue = value + "鈩�"; if (comparator == ">") { @@ -407,8 +462,9 @@ } break; - case "outdoor_humity": + case "humidity": { + //浜戠澶╂皵鏉′欢 鍩庡競婀垮害瑙﹀彂 strvalue = value + "%"; if (comparator == ">") { @@ -421,13 +477,68 @@ } break; - case "pm2.5": + case "pm25": { + //浜戠澶╂皵鏉′欢 鍩庡競pm2.5瑙﹀彂 strtext = Language.StringByID(StringId.PM25); strvalue = new PublicInterface { }.GetString("pm25", value); } break; + case "weather": + { + //浜戠澶╂皵鏉′欢 鍩庡競澶╂皵瑙﹀彂 + strtext = Language.StringByID(StringId.tianqibianhua); + switch (value) + { + case "Sunny": + { + strtext = Language.StringByID(StringId.clearday); + } + break; + case "Cloudy": + { + + strtext = Language.StringByID(StringId.cloudy); + + } + break; + case "Rain": + { + strtext = Language.StringByID(StringId.rain); + } + break; + + } + } + break; + case "airquality": + { + //浜戠澶╂皵鏉′欢 鍩庡競绌烘皵璐ㄩ噺 + strtext = Language.StringByID(StringId.kongqizhiliang); + switch (value) + { + case "Excellent": + { + strtext = Language.StringByID(StringId.kongqiyou); + + } + break; + case "Good": + { + + strtext = Language.StringByID(StringId.kongqiliang); + + } + break; + case "Poor": + { + strtext = Language.StringByID(StringId.kongqicha); + } + break; + } + } + break; } @@ -436,72 +547,40 @@ inputView.btnState.Text = strvalue; } break; - case "6": + case "8": { - inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png"; + inputView.btnIcon.UnSelectedImagePath = "LogicIcon/location.png"; foreach (var dic in dicList) { string strtext = ""; string value = dic["value"]; switch (value) { - case "sunny": + case "arrive": { - strtext = Language.StringByID(StringId.clearday); - + strtext = Language.StringByID(StringId.daoda); } break; - case "cloudy": + case "leave": { - - strtext = Language.StringByID(StringId.cloudy); - + strtext = Language.StringByID(StringId.likai); } break; - case "rainy": - { - strtext = Language.StringByID(StringId.rain); - } - break; - } - inputView.btnText.TextID = StringId.tianqibianhua; + inputView.btnText.TextID = StringId.likiadaoda; inputView.btnState.Text = strtext; } } break; - case "9": + case "10": { - inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png"; - foreach (var dic in dicList) - { - string strtext = ""; - string value = dic["value"]; - switch (value) - { - case "excellent": - { - strtext = Language.StringByID(StringId.kongqiyou); - - } - break; - case "good": - { - - strtext = Language.StringByID(StringId.kongqiliang); - - } - break; - case "poor": - { - strtext = Language.StringByID(StringId.kongqicha); - } - break; - - } - inputView.btnText.TextID = StringId.kongqizhiliang; - inputView.btnState.Text = strtext; - } + //鐢╯id鎵惧埌鍦烘櫙锛� + var scene = LogicMethod.CurrLogicMethod.GetSecne(inputCondition.sid); + inputView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png"; + inputView.btnNextIcon.Visible = false; + inputView.btnClick.Visible = false; + //鏄剧ず鍦烘櫙鍚嶇О + inputView.btnText.Text = scene.name; } break; @@ -601,7 +680,10 @@ { //鐢╯id鎵惧埌璁惧锛� var device = LogicMethod.CurrLogicMethod.GetDevice(inputCondition.sid); - if (device.spk == SPK.SensorEnvironment|| device.spk == SPK.SensorEnvironment2 || device.spk == SPK.SensorEnvironment3) + if (device.spk == SPK.SensorEnvironment + || device.spk == SPK.SensorEnvironment2 + || device.spk == SPK.SensorEnvironment3 + ) { //杩欎釜璁惧姣旇緝鐗规畩 ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList(); @@ -653,7 +735,6 @@ case "pm25": { conditionDeviceFunList.PmCo2TvocAction(thisView, device, "pm25", StringId.pm25, indexVulae, true, stateValue); - } break; case "tvoc": @@ -661,8 +742,49 @@ conditionDeviceFunList.PmCo2TvocAction(thisView, device, "tvoc", StringId.tvoc, indexVulae, true, stateValue); } break; + case "hcho": + { + conditionDeviceFunList.PmCo2TvocAction(thisView, device, "hcho", StringId.Formaldehyde, indexVulae, true, stateValue); + } + break; } } + + } + else if (device.spk == SPK.SensorTemperature) + { + + new InpOrOutLogicMethod().SensorView(thisView, device, "temperature", indexVulae); + + } + else if (device.spk == SPK.SensorHumidity) + { + + new InpOrOutLogicMethod().SensorView(thisView, device, "humidity", indexVulae); + + } + else if (device.spk == SPK.SensorCO2) + { + + new InpOrOutLogicMethod().SensorView(thisView, device, "co2", indexVulae); + + } + else if (device.spk == SPK.SensorPm25) + { + + new InpOrOutLogicMethod().SensorView(thisView, device, "pm25", indexVulae); + + } + else if (device.spk == SPK.SensorTVOC) + { + + new InpOrOutLogicMethod().SensorView(thisView, device, "tvoc", indexVulae); + + } + else if (device.spk == SPK.SensorHcho) + { + + new InpOrOutLogicMethod().SensorView(thisView, device, "hcho", indexVulae); } else @@ -674,7 +796,7 @@ } } break; - case "4": + case "6": { ///褰撳墠鐨勭储寮曞�兼暟鎹璞� Input inputedit = Logic.currlogic.input[indexVulae]; @@ -689,7 +811,7 @@ stateValue = dic["value"]; switch (key) { - case "outdoor_temp": + case "temperature": { if (comparator == ">") { @@ -703,7 +825,7 @@ } break; - case "outdoor_humity": + case "humidity": { if (comparator == ">") @@ -717,44 +839,60 @@ } break; - case "pm2.5": + case "pm25": { intValue = StringId.PM25; + } + break; + case "weather": + { + intValue = StringId.tianqibianhua; + } + break; + case "airquality": + { + intValue = StringId.kongqizhiliang; } break; } } OutdoorEnvironment outdoorEnvironment = new OutdoorEnvironment(); - if (intValue == StringId.PM25) + if (intValue == StringId.tianqibianhua) { + //鍩庡競澶╂皵锛堟櫞澶╋紝涓嬮洦锛� + WeatherCondition weatherCondition = new WeatherCondition(); + MainPage.BasePageView.AddChidren(weatherCondition); + weatherCondition.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + } + else if (intValue == StringId.PM25) + { + //鍩庡競澶╂皵锛坧m2.5锛� outdoorEnvironment.PmAction(thisView, stateValue); + } + else if (intValue == StringId.kongqizhiliang) + { + //鍩庡競澶╂皵锛堢┖姘旇川閲忥級 + AirQuality airQuality = new AirQuality(); + MainPage.BasePageView.AddChidren(airQuality); + airQuality.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } else { + //鍩庡競澶╂皵锛堟俯婀垮害锛� outdoorEnvironment.InputBoxAction(intValue, stateValue); } - } break; - case "6": + case "8": { - - WeatherCondition weatherCondition = new WeatherCondition(); - MainPage.BasePageView.AddChidren(weatherCondition); - weatherCondition.Show(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + AddInputType addInputType = new AddInputType(); + addInputType.LocationView(thisView, true); } break; - case "9": - { - AirQuality airQuality = new AirQuality(); - MainPage.BasePageView.AddChidren(airQuality); - airQuality.Show(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - } - break; } }; ///鍒犻櫎鎺т欢 @@ -801,12 +939,15 @@ targetView.btnText.Text = device.name; //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害 targetView.btnText.Width = Application.GetRealWidth(80); - //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� switch (device.spk) { + case SPK.AirSwitch: case SPK.LightSwitch: - {//寮�鍏崇伅 + //鎻掑骇 + case SPK.PanelSocket: + case SPK.ElectricSocket: + {//寮�鍏� foreach (var dic in dicList) { @@ -878,6 +1019,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: { string on_off = GetKeyValue("on_off", dicList); string set_temp = GetKeyValue("set_temp", dicList); @@ -976,7 +1118,7 @@ } break; - case SPK.FloorHeatStandard: + case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: { string on_off = GetKeyValue("on_off", dicList); string set_temp = GetKeyValue("set_temp", dicList); @@ -1036,27 +1178,62 @@ break; } + } + if (on_off != "" && on_off == "off") + { + stateStr = Language.StringByID(StringId.offLogic); + } + else + { + stateStr = stateStr.TrimEnd(','); - switch (mode) + } + } + break; + case SPK.AirFreshStandard: + case SPK.HvacAirFresh: + { + string on_off = GetKeyValue("on_off", dicList); + string fan = GetKeyValue("fan", dicList); + if (on_off != "") + { + switch (on_off) { - case "cool": + case "on": { - stateStr += Language.StringByID(StringId.coolLogic) + ","; + stateStr = Language.StringByID(StringId.onLogic) + ","; } break; - case "heat": + case "off": { - stateStr += Language.StringByID(StringId.heatingLogic) + ","; + stateStr = Language.StringByID(StringId.offLogic) + ","; + } + break; + } + } + if (fan != "") + { + + switch (fan) + { + case "high": + { + stateStr += Language.StringByID(StringId.HighWindSpeed) + ","; + } + break; + case "medium": + { + stateStr += Language.StringByID(StringId.MiddleWindSpeed) + ","; + } + break; + case "low": + { + stateStr += Language.StringByID(StringId.LowWindSpeed) + ","; } break; case "auto": { - stateStr += Language.StringByID(StringId.autoLogic) + ","; - } - break; - case "dry": - { - stateStr += Language.StringByID(StringId.dehumidifyLogic) + ","; + stateStr += Language.StringByID(StringId.Auto) + ","; } break; } @@ -1088,6 +1265,27 @@ break; case "3": { + //鐢╯id鎵惧埌瀹夐槻锛� + var security = LogicMethod.CurrLogicMethod.GetSecurity(outputTarget.sid); + targetView.btnIcon.UnSelectedImagePath = "LogicIcon/security.png"; + targetView.btnDelay.Visible = false; + //鏄剧ず瀹夐槻鍚嶇О + targetView.btnText.Text = security.name; + string value = GetKeyValue("security", dicList); + if (value == "enable") + { + stateStr = Language.StringByID(StringId.bufang); + + } + else + { + stateStr = Language.StringByID(StringId.chefang); + } + + } + break; + case "4": + { targetView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png"; foreach (var dic in dicList) { @@ -1098,9 +1296,9 @@ break; } - if (outputTarget.target_type == "1") + if (outputTarget.target_type == "1" || outputTarget.target_type == "3") { - targetView.btnState.Text =new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay) + stateStr; + targetView.btnState.Text = new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay) + stateStr; } else { @@ -1139,7 +1337,12 @@ break; case "3": { - + Security security = new Security(); + security.SecurityMethod(thisView, "", edit, indexVulae); + } + break; + case "4": + { FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, @@ -1192,7 +1395,11 @@ { switch (device.spk) { + //鎻掑骇 + case SPK.PanelSocket: + case SPK.ElectricSocket: //寮�鍏崇伅鍏� + case SPK.AirSwitch: case SPK.LightSwitch: { foreach (var dic in dicList) @@ -1275,6 +1482,7 @@ } break; case SPK.AcStandard: + case SPK.HvacAC: { foreach (var dic in dicList) { @@ -1385,7 +1593,7 @@ } break; - case SPK.FloorHeatStandard: + case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: { foreach (var dic in dicList) @@ -1468,6 +1676,74 @@ } break; + case SPK.AirFreshStandard: + case SPK.HvacAirFresh: + { + + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "on_off": + { + switch (value) + { + case "on": + { + button1.Text = Language.StringByID(StringId.onLogic); + } + break; + case "off": + { + button1.Text = Language.StringByID(StringId.offLogic); + } + break; + } + } + break; + + case "fan": + { + if (button2 == null) + { + //鎬曡皟璇曡蒋浠朵贡涓婁笢瑗垮鑷存姏寮傚父 + break; + } + switch (value) + { + case "high": + { + button2.Text = Language.StringByID(StringId.HighWindSpeed); + } + break; + case "medium": + { + button2.Text = Language.StringByID(StringId.MiddleWindSpeed); + } + break; + case "low": + { + button2.Text = Language.StringByID(StringId.LowWindSpeed); + } + break; + case "auto": + { + button2.Text = Language.StringByID(StringId.Auto); + } + break; + } + + + } + break; + + } + + } + + } + break; case SPK.SensorGas: case SPK.SensorSmoke: { @@ -1502,6 +1778,7 @@ } break; case SPK.SensorDryContact: + case SPK.SensorDryContact2: { foreach (var dic in dicList) { @@ -1559,6 +1836,7 @@ switch (dic["key"]) { case "status": + case "people_status": { if (value == "true") { @@ -1591,6 +1869,7 @@ } break; case SPK.SenesorMegahealth: + case SPK.SenesorMegahealth2: { foreach (var dic in dicList) { @@ -1662,6 +1941,13 @@ name = device.name + "-"; } break; + case "10": + { + //鐢╯id鎵惧埌鍦烘櫙锛� + var scene = LogicMethod.CurrLogicMethod.GetSecne(inputCondition.sid); + name = scene.name + "-"; + } + break; } //榛樿鍙栫涓�涓洰鏍� @@ -1680,6 +1966,7 @@ //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� switch (device.spk) { + case SPK.AirSwitch: case SPK.LightSwitch: {//寮�鍏崇伅 @@ -1752,7 +2039,8 @@ } break; case SPK.AcStandard: - case SPK.FloorHeatStandard: + case SPK.HvacAC: + case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: { foreach (var dic in dicList) { @@ -1783,18 +2071,24 @@ } break; + case "3": + { + //鐢╯id鎵惧埌瀹夐槻锛� + var security = LogicMethod.CurrLogicMethod.GetSecurity(outputTarget.sid); + name += security.name; + + } + break; } if (!MainView.IsGatewayType) { - name +=Language.StringByID(StringId.push); + name += Language.StringByID(StringId.push); } } catch { } return name; } - - /// <summary> /// 寤舵椂鏃堕棿鏂规硶 /// </summary> @@ -1890,11 +2184,142 @@ state = seconds.ToString() + Language.StringByID(StringId.s); } } - if (!string.IsNullOrEmpty(state)) { + if (!string.IsNullOrEmpty(state)) + { state = Language.StringByID(StringId.delayLogic) + state; } return state; } + /// <summary> + /// 鑾峰彇鏄剧ず闈㈢啛鏂囨湰 + /// </summary> + /// <param name="dicList">鐘舵�佹暟鎹垪琛�</param> + /// <returns></returns> + private string GetText(List<Dictionary<string, string>> dicList,string key) + { + string strtext = ""; + foreach (var dic in dicList) + { + string value = dic["value"]; + string comparator = dic["comparator"]; + switch (key) + { + case "temperature": + { + if (comparator == ">") + { + strtext = ">" + value + "鈩�"; + } + else if (comparator == "<") + { + strtext = "<" + value + "鈩�"; + } + + } + break; + case "humidity": + { + if (comparator == ">") + { + strtext = ">" + value + "%"; + } + else if (comparator == "<") + { + strtext = "<" + value + "%"; + } + + } + break; + case "co2": + { + strtext = Language.StringByID(StringId.co2) + new PublicInterface { }.GetString("co2", value); + } + break; + case "pm25": + { + strtext = Language.StringByID(StringId.pm25) + new PublicInterface { }.GetString("pm25", value); + } + break; + case "tvoc": + { + strtext = Language.StringByID(StringId.tvoc) + new PublicInterface { }.GetString("tvoc", value); + } + break; + case "hcho": + { + strtext = Language.StringByID(StringId.Formaldehyde) + new PublicInterface { }.GetString("hcho", value); + } + break; + } + } + return strtext; + } + private void SensorView(FrameLayout thisView, Function device,string key, int indexVulae) { + //杩欎釜璁惧姣旇緝鐗规畩 + ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList(); + ///褰撳墠鐨勭储寮曞�兼暟鎹璞� + Input inputedit = Logic.currlogic.input[indexVulae]; + ///鐘舵�佸�� + string stateValue = ""; + foreach (var dic in inputedit.condition) + { + string comparator = dic["comparator"]; + stateValue = dic["value"]; + switch (key) + { + + case "temperature": + { + int titleInt = 0; + if (comparator == ">") + { + titleInt = StringId.wendugaoyu; + } + else if (comparator == "<") + { + titleInt = StringId.wendudiyu; + } + conditionDeviceFunList.InputBoxAction(device, titleInt, indexVulae, true, stateValue); + } + break; + case "humidity": + { + int titleInt = 0; + if (comparator == ">") + { + titleInt = StringId.shidugaoyu; + } + else if (comparator == "<") + { + titleInt = StringId.shidudiyu; + } + conditionDeviceFunList.InputBoxAction(device, titleInt, indexVulae, true, stateValue); + } + break; + case "co2": + { + conditionDeviceFunList.PmCo2TvocAction(thisView, device, "co2", StringId.co2, indexVulae, true, stateValue); + } + break; + case "pm25": + { + conditionDeviceFunList.PmCo2TvocAction(thisView, device, "pm25", StringId.pm25, indexVulae, true, stateValue); + } + break; + case "tvoc": + { + conditionDeviceFunList.PmCo2TvocAction(thisView, device, "tvoc", StringId.tvoc, indexVulae, true, stateValue); + } + break; + case "hcho": + { + conditionDeviceFunList.PmCo2TvocAction(thisView, device, "hcho", StringId.Formaldehyde, indexVulae, true, stateValue); + } + break; + } + } + } } } + -- Gitblit v1.8.0