From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 01 七月 2021 15:50:43 +0800 Subject: [PATCH] Revert "1" --- HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 1314 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 1,189 insertions(+), 125 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs index 7a6bcc0..a2407f3 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs @@ -1,6 +1,8 @@ 锘縰sing System; using Shared; using System.Collections.Generic; +using HDL_ON.Entity; + namespace HDL_ON.UI.UI2.Intelligence.Automation { public class InpOrOutLogicMethod @@ -21,7 +23,7 @@ ///璁板綍鏉′欢绫诲瀷 inputView.btnClick.Name = inputCondition.condition_type; ///璁板綍鏉′欢绱㈠紩 - inputView.btnClick.Tag = i; + inputView.btnClick.Tag = inputCondition.sid; ///鏉′欢鐘舵�佹暟缁� List<Dictionary<string, string>> dicList = inputCondition.condition as List<Dictionary<string, string>>; //鏄剧ず鏉′欢鍚勭绫诲瀷鐘舵�� @@ -29,23 +31,91 @@ { case "1": { - inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png"; + inputView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png"; foreach (var dic in dicList) { + string keyValue = dic["key"]; string value = dic["value"]; - inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value; - inputView.btnClick.AddTag("timepoint", value); + if (keyValue == "timepoint") + { + inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value; + } + else + { + string strtext = ""; + string statetext = ""; + switch (keyValue) + { + case "before_sunrise": + { + strtext = Language.StringByID(StringId.sunrise); + statetext = Language.StringByID(StringId.advanced); + + } + break; + case "before_sunset": + { + + strtext = Language.StringByID(StringId.sunset); + statetext = Language.StringByID(StringId.advanced); + + } + break; + case "before_noon": + { + strtext = Language.StringByID(StringId.at); + statetext = Language.StringByID(StringId.advanced); + } + break; + case "after_sunrise": + { + strtext = Language.StringByID(StringId.sunrise); + statetext = Language.StringByID(StringId.delayLogic); + } + break; + case "after_sunset": + { + strtext = Language.StringByID(StringId.sunset); + statetext = Language.StringByID(StringId.delayLogic); + } + break; + case "after_noon": + { + strtext = Language.StringByID(StringId.at); + statetext = Language.StringByID(StringId.delayLogic); + } + break; + } + + if (value != "0") + { + if (value == "30") + { + statetext += value + Language.StringByID(StringId.s); + } + else + { + statetext += value + Language.StringByID(StringId.minute); + } + } + else + { + statetext = ""; + } + + inputView.btnText.Text = strtext; + inputView.btnState.Text = statetext; + } } } break; case "2": { - inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png"; + inputView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png"; foreach (var dic in dicList) { string value = dic["value"]; inputView.btnText.Text = Language.StringByID(StringId.timeHorizon) + ": " + value; - inputView.btnClick.AddTag("timeHorizon", value); } } @@ -55,28 +125,28 @@ //鐢╯id鎵惧埌璁惧锛� var device = LogicMethod.GetDevice(inputCondition.sid); //鐢ㄨ澶囩殑functionType绫诲瀷鎵惧埌瀵瑰簲鍥炬爣锛� - inputView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType); + inputView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.spk); //鏄剧ず璁惧鍚嶇О inputView.btnText.Text = device.name; //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害 inputView.btnText.Width = Application.GetRealWidth(80); //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� - switch (device.functionType) + switch (device.spk) { //寮�鍏崇伅鍏� light.Switch - case FunctionType.Dimmer: - case FunctionType.RGB: - case FunctionType.RGBW: - case FunctionType.CCT: - case FunctionType.Relay: + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + case SPK.LightSwitch: //绐楀笜 - case FunctionType.Curtain: - case FunctionType.RollerCurtain: - case FunctionType.TrietexCurtain: + case SPK.CurtainSwitch: + case SPK.CurtainRoller: + case SPK.CurtainTrietex: //绌鸿皟 - case FunctionType.AC: + case SPK.AcStandard: //鍦扮儹 - case FunctionType.FloorHeating: + case SPK.FloorHeatStandard: {//寮�鍏崇伅 foreach (var dic in dicList) { @@ -94,6 +164,246 @@ } } break; + //浼犳劅鍣� + case SPK.SensorSmoke: + case SPK.SensorGas: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "alarm") + { + inputView.btnState.Text = Language.StringByID(StringId.xieluo); + + } + else + { + inputView.btnState.Text = Language.StringByID(StringId.wuxieluo); + } + } + } + break; + case SPK.SensorWater: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "alarm") + { + inputView.btnState.Text = Language.StringByID(StringId.luoshui); + + } + else + { + inputView.btnState.Text = Language.StringByID(StringId.wuluoshui); + } + } + } + break; + case SPK.SensorDryContact: + { + foreach (var dic in dicList) + { + + string value = dic["value"]; + if (value == "on") + { + inputView.btnState.Text = Language.StringByID(StringId.onLogic); + + } + else + { + inputView.btnState.Text = Language.StringByID(StringId.offLogic); + } + } + } + break; + case SPK.SensorShanLan: + case SPK.SensorDuiShe: + case SPK.SensorPir: + { + foreach (var dic in dicList) + { + + string value = dic["value"]; + if (value == "true") + { + inputView.btnState.Text = Language.StringByID(StringId.youren); + + } + else + { + inputView.btnState.Text = Language.StringByID(StringId.wuren); + } + } + } + break; + case SPK.SensorDoorWindow: + { + foreach (var dic in dicList) + { + + string value = dic["value"]; + if (value == "open") + { + inputView.btnState.Text = Language.StringByID(StringId.kaiqi); + + } + else + { + inputView.btnState.Text = Language.StringByID(StringId.bihe); + } + } + } + break; + case SPK.SensoruUtrasonic: + { + string str = ""; + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "status": + { + if (value == "true") + { + str+= Language.StringByID(StringId.youren)+";"; + } + else + { + str += Language.StringByID(StringId.wuren) + ";"; + } + + + } + break; + case "dismantle": + { + if (value == "true") + { + str += Language.StringByID(StringId.zaixian); + } + else + { + str += Language.StringByID(StringId.buzaixian); + } + } + break; + + } + + } + inputView.btnState.Text = str; + } + break; + case SPK.SenesorMegahealth: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "fall") + { + inputView.btnState.Text = Language.StringByID(StringId.diedao); + } + else + { + inputView.btnState.Text = Language.StringByID(StringId.wuren); + } + } + } + break; + + } + } + break; + case "4": + { + inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png"; + string strtext = ""; + string strvalue = ""; + foreach (var dic in dicList) + { + string key = dic["key"]; + string comparator = dic["comparator"]; + string value = dic["value"]; + + switch (key) + { + case "outdoor_temp": + { + strvalue = value; + if (comparator == ">") + { + strtext = Language.StringByID(StringId.wendugaoyu); + } + else if (comparator == "<") + { + strtext = Language.StringByID(StringId.wendudiyu); + } + + } + break; + case "outdoor_humity": + { + strvalue = value; + if (comparator == ">") + { + strtext = Language.StringByID(StringId.shidugaoyu); + } + else if (comparator == "<") + { + strtext = Language.StringByID(StringId.shidudiyu); + } + + } + break; + case "pm2.5": + { + strtext = Language.StringByID(StringId.PM25); + strvalue = new OutdoorEnvironment { }.GetString(value); + } + break; + + } + + + } + inputView.btnText.Text = strtext; + inputView.btnState.Text = strvalue; + } + break; + case "6": + { + inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png"; + foreach (var dic in dicList) + { + string strtext = ""; + string value = dic["value"]; + switch (value) + { + case "sunny": + { + strtext = Language.StringByID(StringId.clearday); + + } + break; + case "cloudy": + { + + strtext = Language.StringByID(StringId.cloudy); + + } + break; + case "rainy": + { + strtext = Language.StringByID(StringId.rain); + } + break; + + } + inputView.btnText.TextID = StringId.tianqibianhua; + inputView.btnState.Text = strtext; } } break; @@ -104,20 +414,62 @@ { Button button = (Button)sen; //鎵惧埌褰撳墠缂栬緫鐨勭储寮� - int indexVulae = int.Parse(inputView.btnClick.Tag.ToString()); + int indexVulae = 0; + for (int index = 0; index < Logic.currlogic.input.Count; index++) + { + Input input = Logic.currlogic.input[index]; + if (input.sid == inputView.btnClick.Tag.ToString()) + { + //鐢ㄦ埛鍙兘鍒犻櫎鏁版嵁锛屼娇鍒楄〃绱㈠紩鍙戠敓鏀瑰彉锛� + //閫氳繃鍞竴sid閲嶆柊鏌ユ壘鍒扮储寮曚笖鏇存柊绱㈠紩鍊� + indexVulae = index; + break; + } + } //鏍囪缂栬緫鐘舵�� bool edit = true; switch (button.Name) { case "1": { - FrameLayout fLayout = new FrameLayout + bool is_bool = false; + Input _input = Logic.currlogic.input[indexVulae]; + if (_input.condition_type == "1") { - BackgroundColor = CSS.CSS_Color.viewTrans60lucence, - }; - thisView.AddChidren(fLayout); - TimeTpye timeTpye = new TimeTpye(); - timeTpye.TimePoint(fLayout, edit, indexVulae); + var dicLists = _input.condition as List<Dictionary<string, string>>; + foreach (var dic in dicLists) + { + string keyValue = dic["key"]; + if (keyValue != "timepoint") + { + //閫氳繃閿�兼煡鎵鹃敭鍊兼槸鍚︽槸 + //锛堟棩鍑�/鏃ヨ惤/姝e崍锛� + is_bool = true; + break; + } + + } + + } + if (is_bool) + { + //璺宠浆鍒帮紙鏃ュ嚭/鏃ヨ惤/姝e崍锛夌晫闈� + SpeciaTime speciaTime = new SpeciaTime(); + MainPage.BasePageView.AddChidren(speciaTime); + speciaTime.Show(edit, indexVulae); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + } + else + { + //璺宠浆鍒帮紙鏃堕棿鐐癸級鐣岄潰 + FrameLayout fLayout = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + thisView.AddChidren(fLayout); + TimeTpye timeTpye = new TimeTpye(); + timeTpye.TimePoint(fLayout, edit, indexVulae); + } } break; case "2": @@ -131,7 +483,6 @@ timeTpye.TimeHorizon(fLayout, edit, indexVulae); } break; - case "3": { //鐢╯id鎵惧埌璁惧锛� @@ -142,8 +493,78 @@ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } break; + case "4": + { + ///褰撳墠鐨勭储寮曞�兼暟鎹璞� + Input inputedit = Logic.currlogic.input[indexVulae]; + ///鐘舵�佸�� + string stateValue = ""; + ///鐘舵�佸�兼枃鏈� + int intValue = -1; + foreach (var dic in inputedit.condition) + { + string key = dic["key"]; + string comparator = dic["comparator"]; + stateValue = dic["value"]; + switch (key) + { + case "outdoor_temp": + { + if (comparator == ">") + { + intValue = StringId.wendugaoyu; + } + else if (comparator == "<") + { + intValue = StringId.wendudiyu; + } + } + break; + case "outdoor_humity": + { + + if (comparator == ">") + { + intValue = StringId.shidugaoyu; + } + else if (comparator == "<") + { + intValue = StringId.shidudiyu; + } + + } + break; + case "pm2.5": + { + intValue = StringId.PM25; + } + break; + + } + } + OutdoorEnvironment outdoorEnvironment = new OutdoorEnvironment(); + if (intValue == StringId.PM25) + { + outdoorEnvironment.PmAction(thisView, stateValue); + } + else + { + outdoorEnvironment.InputBoxAction(intValue, stateValue); + } + + } + break; + case "6": + { + + WeatherCondition weatherCondition = new WeatherCondition(); + MainPage.BasePageView.AddChidren(weatherCondition); + weatherCondition.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + } + break; } }; ///鍒犻櫎鎺т欢 @@ -172,10 +593,12 @@ ///璁板綍鏉′欢绫诲瀷 targetView.btnClick.Name = outputTarget.target_type; ///璁板綍鏉′欢绱㈠紩 - targetView.btnClick.Tag = i; + targetView.btnClick.Tag = outputTarget.sid; ///鏉′欢鐘舵�佹暟缁� List<Dictionary<string, string>> dicList = outputTarget.status as List<Dictionary<string, string>>; - //鏄剧ず鏉′欢鍚勭绫诲瀷鐘舵�� + //鏄剧ず鐘舵�佸�� + string stateStr = ""; + //鏄剧ず杈撳嚭鏉′欢鍚勭绫诲瀷鐘舵�� switch (outputTarget.target_type) { case "1": @@ -183,17 +606,16 @@ //鐢╯id鎵惧埌璁惧锛� var device = LogicMethod.GetDevice(outputTarget.sid); //鐢ㄨ澶囩殑functionType绫诲瀷鎵惧埌瀵瑰簲鍥炬爣锛� - targetView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType); + targetView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.spk); //鏄剧ず璁惧鍚嶇О targetView.btnText.Text = device.name; //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害 targetView.btnText.Width = Application.GetRealWidth(80); - //绗竴涓彉閲忔樉绀虹姸鎬佸�� - string stateStr = ""; + //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� - switch (device.functionType) + switch (device.spk) { - case FunctionType.Relay: + case SPK.LightSwitch: {//寮�鍏崇伅 foreach (var dic in dicList) @@ -209,47 +631,38 @@ stateStr = Language.StringByID(StringId.offLogic); } } - targetView.btnState.Text = stateStr; } break; - case FunctionType.RGB: - case FunctionType.RGBW: - case FunctionType.CCT: - case FunctionType.Dimmer: + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + case SPK.LightDimming: { string on_off = GetKeyValue("on_off", dicList); string brightness = GetKeyValue("brightness", dicList); - if (on_off != "") + if (on_off == "on" && brightness != "") { - if (on_off == "on") - { - stateStr = Language.StringByID(StringId.onLogic); - - } - else - { - stateStr = Language.StringByID(StringId.offLogic); - - } + stateStr = Language.StringByID(StringId.onLogic) + brightness + "%"; } - if (brightness != "") + else if (on_off == "on") { - stateStr += brightness + "%"; + stateStr = Language.StringByID(StringId.onLogic); } - if (on_off != "" && on_off == "off") + else if (on_off == "off") { - targetView.btnState.Text = Language.StringByID(StringId.offLogic); + stateStr = Language.StringByID(StringId.offLogic); } - else + else if (brightness != "") { - targetView.btnState.Text = stateStr; - + stateStr = brightness + "%"; } - + } break; - case FunctionType.Curtain: - {//寮�鍏崇伅 + case SPK.CurtainSwitch: + case SPK.CurtainTrietex: + case SPK.CurtainRoller: + { foreach (var dic in dicList) { string value = dic["value"]; @@ -272,66 +685,21 @@ break; } } - targetView.btnState.Text = stateStr; } break; - case FunctionType.TrietexCurtain: - case FunctionType.RollerCurtain: - {//寮�鍏崇伅 + case SPK.AcStandard: + { string on_off = GetKeyValue("on_off", dicList); - string brightness = GetKeyValue("brightness", dicList); + string set_temp = GetKeyValue("set_temp", dicList); + string mode = GetKeyValue("mode", dicList); + string fan = GetKeyValue("fan", dicList); if (on_off != "") { switch (on_off) { case "on": { - stateStr = Language.StringByID(StringId.onLogic); - - } - break; - case "off": - { - stateStr = Language.StringByID(StringId.offLogic); - - } - break; - case "stop": - { - stateStr = Language.StringByID(StringId.stop); - } - break; - } - } - if (brightness != "") - { - stateStr += brightness + "%"; - - } - - if (on_off != "" && on_off == "stop") - { - targetView.btnState.Text = Language.StringByID(StringId.stop); - } - else - { - targetView.btnState.Text = stateStr; - - } - - } - break; - case FunctionType.AC: { - string on_off = GetKeyValue("on_off", dicList); - string set_temp = GetKeyValue("set_temp", dicList); - string mode = GetKeyValue("mode", dicList); - string fan = GetKeyValue("fan", dicList); - if (on_off != "") { - switch (on_off) - { - case "on": - { - stateStr = Language.StringByID(StringId.onLogic)+","; + stateStr = Language.StringByID(StringId.onLogic) + ","; } break; case "off": @@ -339,7 +707,7 @@ stateStr = Language.StringByID(StringId.offLogic) + ","; } break; - + } } @@ -356,7 +724,7 @@ { case "cool": { - stateStr += Language.StringByID(StringId.coolLogic)+","; + stateStr += Language.StringByID(StringId.coolLogic) + ","; } break; case "heat": @@ -385,7 +753,7 @@ { case "high": { - stateStr += Language.StringByID(StringId.HighWindSpeed)+","; + stateStr += Language.StringByID(StringId.HighWindSpeed) + ","; } break; case "medium": @@ -408,16 +776,17 @@ } if (on_off != "" && on_off == "off") { - targetView.btnState.Text = Language.StringByID(StringId.offLogic); + stateStr = Language.StringByID(StringId.offLogic); } - else { - targetView.btnState.Text = stateStr.TrimEnd(','); + else + { + stateStr = stateStr.TrimEnd(','); } } break; - case FunctionType.FloorHeating: + case SPK.FloorHeatStandard: { string on_off = GetKeyValue("on_off", dicList); string set_temp = GetKeyValue("set_temp", dicList); @@ -451,7 +820,7 @@ { case "day": { - stateStr += Language.StringByID(StringId.dayMode)+","; + stateStr += Language.StringByID(StringId.dayMode) + ","; } break; case "night": @@ -505,11 +874,11 @@ } if (on_off != "" && on_off == "off") { - targetView.btnState.Text =Language.StringByID(StringId.offLogic); + stateStr = Language.StringByID(StringId.offLogic); } else { - targetView.btnState.Text = stateStr.TrimEnd(','); + stateStr = stateStr.TrimEnd(','); } } @@ -524,26 +893,46 @@ targetView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png"; targetView.btnNextIcon.Visible = false; //鏄剧ず鍦烘櫙鍚嶇О - targetView.btnText.Text = scene.name; + stateStr = scene.name; } break; case "3": { - targetView.btnIcon.UnSelectedImagePath = "LogicIcon/delayed.png"; + targetView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png"; foreach (var dic in dicList) { string value = dic["value"]; - targetView.btnText.Text = value; + stateStr = value; } } break; + } + + if (outputTarget.target_type == "1") + { + targetView.btnState.Text =new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay) + stateStr; + } + else + { + targetView.btnText.Text = new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay)+ stateStr; } //鍐嶆缂栬緫鏉′欢鐘舵�佺偣鍑讳簨浠� targetView.btnClick.MouseUpEventHandler += (sen, e) => { Button button = (Button)sen; //鎵惧埌褰撳墠缂栬緫鐨勭储寮� - int indexVulae = int.Parse(targetView.btnClick.Tag.ToString()); + int indexVulae = 0; + for (int index = 0; index < Logic.currlogic.output.Count; index++) + { + Output target = Logic.currlogic.output[index]; + if (target.sid == targetView.btnClick.Tag.ToString()) + { + //鐢ㄦ埛鍙兘鍒犻櫎鏁版嵁锛屼娇鍒楄〃绱㈠紩鍙戠敓鏀瑰彉锛� + //閫氳繃鍞竴sid閲嶆柊鏌ユ壘鍒扮储寮曚笖鏇存柊绱㈠紩鍊� + indexVulae = index; + break; + } + } //鏍囪缂栬緫鐘舵�� bool edit = true; switch (button.Name) @@ -574,6 +963,25 @@ break; } }; + //寤舵椂鐐瑰嚮浜嬩欢 + targetView.btnDelay.MouseUpEventHandler += (sen, e) => + { + + InpOrOutLogicMethod inpOrOutLogicMethod = new InpOrOutLogicMethod(); + inpOrOutLogicMethod.Delayed(thisView, outputTarget, (value) => + { + outputTarget.delay = value.ToString(); + if (outputTarget.target_type == "1") + { + targetView.btnState.Text = new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay) + stateStr; + } + else + { + targetView.btnText.Text = new InpOrOutLogicMethod { }.GetTimeText(outputTarget.delay) + stateStr; + } + }); + + }; ///鍒犻櫎鎺т欢 targetView.btnDel.MouseUpEventHandler += (sender, e) => { @@ -582,14 +990,412 @@ }; } } + /// <summary> + /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + /// </summary> + /// <param name="device">缂栬緫璁惧</param> + /// <param name="button1">鏄剧ずBtn</param> + /// <param name="button2">鏄剧ずBtn</param> + /// <param name="button3">鏄剧ずBtn</param> + /// <param name="button4">鏄剧ずBtn</param> + public static void EditState(Entity.Function device, List<Dictionary<string, string>> dicList, Button button1, Button button2, Button button3, Button button4) + { + switch (device.spk) + { + //寮�鍏崇伅鍏� + case SPK.LightSwitch: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "on") + { + button1.Text = Language.StringByID(StringId.onLogic); + } + else + { + button1.Text = Language.StringByID(StringId.offLogic); + } + } + } + break; + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "on_off": + { + if (value == "on") + { + button1.Text = Language.StringByID(StringId.onLogic); + } + else + { + button1.Text = Language.StringByID(StringId.offLogic); + } + } + break; + case "brightness": + { + button2.Text = value + "%"; + } + break; + } + + } + } + break; + case SPK.CurtainSwitch: + case SPK.CurtainTrietex: + case SPK.CurtainRoller: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (value) + { + case "on": + { + button1.Text = Language.StringByID(StringId.onLogic); + } + break; + case "off": + { + button1.Text = Language.StringByID(StringId.offLogic); + } + break; + case "stop": + { + button1.Text = Language.StringByID(StringId.stop); + } + break; + } + } + } + break; + case SPK.AcStandard: + { + 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 "set_temp": + { + button2.Text = value + "鈩�"; + } + break; + case "mode": + { + switch (value) + { + case "cool": + { + button3.Text = Language.StringByID(StringId.coolLogic); + } + break; + case "heat": + { + button3.Text = Language.StringByID(StringId.heatingLogic); + } + break; + case "auto": + { + button3.Text = Language.StringByID(StringId.autoLogic); + } + break; + case "dry": + { + button3.Text = Language.StringByID(StringId.dehumidifyLogic); + } + break; + } + + + + } + break; + case "fan": + { + switch (value) + { + case "high": + { + button4.Text = Language.StringByID(StringId.HighWindSpeed); + } + break; + case "medium": + { + button4.Text = Language.StringByID(StringId.MiddleWindSpeed); + } + break; + case "low": + { + button4.Text = Language.StringByID(StringId.LowWindSpeed); + } + break; + case "auto": + { + button4.Text = Language.StringByID(StringId.Auto); + } + break; + } + + + } + break; + + + } + + } + + } + break; + case SPK.FloorHeatStandard: + { + + 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 "set_temp": + { + button2.Text = value + "鈩�"; + } + break; + case "mode": + { + switch (value) + { + case "day": + { + button3.Text = Language.StringByID(StringId.dayMode); + } + break; + case "night": + { + button3.Text = Language.StringByID(StringId.nightMode); + } + break; + + case "away": + { + button3.Text = Language.StringByID(StringId.leaveMode); + } + break; + case "normal": + { + button3.Text = Language.StringByID(StringId.ordinaryMode); + } + break; + case "timer": + { + button3.Text = Language.StringByID(StringId.timeMode); + } + break; + } + + + + } + break; + + } + + } + + } + break; + case SPK.SensorGas: + case SPK.SensorSmoke: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "alarm") + { + button1.Text = Language.StringByID(StringId.xieluo); + } + else + { + button1.Text = Language.StringByID(StringId.wuxieluo); + } + } + } + break; + case SPK.SensorWater: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "alarm") + { + button1.Text = Language.StringByID(StringId.luoshui); + } + else + { + button1.Text = Language.StringByID(StringId.wuluoshui); + } + } + } + break; + case SPK.SensorDryContact: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "on") + { + button1.Text = Language.StringByID(StringId.onLogic); + } + else + { + button1.Text = Language.StringByID(StringId.offLogic); + } + } + } + break; + case SPK.SensorShanLan: + case SPK.SensorDuiShe: + case SPK.SensorPir: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "true") + { + button1.Text = Language.StringByID(StringId.youren); + } + else + { + button1.Text = Language.StringByID(StringId.wuren); + } + } + } + break; + case SPK.SensorDoorWindow: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "open") + { + button1.Text = Language.StringByID(StringId.kaiqi); + } + else + { + button1.Text = Language.StringByID(StringId.bihe); + } + } + } + break; + case SPK.SensoruUtrasonic: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "status": + { + if (value == "true") + { + button1.Text = Language.StringByID(StringId.youren); + } + else + { + button1.Text = Language.StringByID(StringId.wuren); + } + + + } + break; + case "dismantle": + { + if (value == "true") + { + button1.Text = Language.StringByID(StringId.zaixian); + } + else + { + button1.Text = Language.StringByID(StringId.buzaixian); + } + } + break; + + } + + } + } + break; + case SPK.SenesorMegahealth: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "fall") + { + button1.Text = Language.StringByID(StringId.diedao); + } + else + { + button1.Text = Language.StringByID(StringId.wuren); + } + } + } + break; + } + } /// <summary> /// 鑾峰彇value閿�� /// </summary> /// <param name="keyValue"></param> /// <param name="dicList"></param> /// <returns></returns> - private static string GetKeyValue(string keyValue, List<Dictionary<string, string>> dicList) + public static string GetKeyValue(string keyValue, List<Dictionary<string, string>> dicList) { string valueStr = ""; @@ -604,5 +1410,263 @@ } return valueStr; } + /// <summary> + ///鑾峰彇鑷姩鍖栧悕绉� + /// </summary> + /// <returns> 鏂板缓鑷姩鍖栧懡鍚嶈鍒�</returns> + public static string GetLogicName(Logic logic) + { + + string name = ""; + try + { + //榛樿鍙栫涓�涓潯浠� + Input inputCondition = logic.input[0]; + //鏄剧ず鏉′欢鍚勭绫诲瀷鐘舵�� + switch (inputCondition.condition_type) + { + case "1": + { + name = Language.StringByID(StringId.hour) + "-"; + } + break; + case "2": + { + name = Language.StringByID(StringId.timeHorizon) + "-"; + + } + break; + case "3": + { + //鐢╯id鎵惧埌璁惧锛� + var device = LogicMethod.GetDevice(inputCondition.sid); + name = device.name + "-"; + } + break; + + } + //榛樿鍙栫涓�涓洰鏍� + Output outputTarget = logic.output[0]; + List<Dictionary<string, string>> dicList = outputTarget.status as List<Dictionary<string, string>>; + //鏄剧ず杈撳嚭鏉′欢鍚勭绫诲瀷鐘舵�� + switch (outputTarget.target_type) + { + case "1": + { + //鐢╯id鎵惧埌璁惧锛� + var device = LogicMethod.GetDevice(outputTarget.sid); + //鏄剧ず璁惧鍚嶇О + name += device.name; + string stateStr = ""; + //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� + switch (device.spk) + { + case SPK.LightSwitch: + {//寮�鍏崇伅 + + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "on") + { + stateStr = Language.StringByID(StringId.onLogic); + + } + else + { + stateStr = Language.StringByID(StringId.offLogic); + } + } + } + break; + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + case SPK.LightDimming: + { + string on_off = InpOrOutLogicMethod.GetKeyValue("on_off", dicList); + string brightness = InpOrOutLogicMethod.GetKeyValue("brightness", dicList); + if (on_off == "on" && brightness != "") + { + stateStr = Language.StringByID(StringId.onLogic) + brightness + "%"; + } + else if (on_off == "on") + { + stateStr = Language.StringByID(StringId.onLogic); + } + else if (on_off == "off") + { + stateStr = Language.StringByID(StringId.offLogic); + } + else if (brightness != "") + { + stateStr = brightness + "%"; + } + } + break; + case SPK.CurtainSwitch: + case SPK.CurtainTrietex: + case SPK.CurtainRoller: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (value) + { + case "on": + { + stateStr = Language.StringByID(StringId.onLogic); + } + break; + case "off": + { + stateStr = Language.StringByID(StringId.offLogic); + } + break; + case "stop": + { + stateStr = Language.StringByID(StringId.stop); + } + break; + } + } + } + break; + case SPK.AcStandard: + case SPK.FloorHeatStandard: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + if (value == "on") + { + stateStr = Language.StringByID(StringId.onLogic); + + } + else if (value == "off") + { + stateStr = Language.StringByID(StringId.offLogic); + } + } + + } + break; + + } + name += stateStr; + } + break; + case "2": + { + //鐢╯id鎵惧埌鍦烘櫙锛� + var scene = LogicMethod.GetSecne(outputTarget.sid); + name += scene.name; + + } + break; + } + } + catch { } + return name; + } + + + /// <summary> + /// 寤舵椂鏃堕棿鏂规硶 + /// </summary> + /// <param name="fLayout">鍦ㄥ摢涓晫闈㈡樉绀�</param> + /// <param name="edit">锛坱rue=缂栬緫锛沠alse=鏂板缓锛�</param> + /// <param name="index">缂栬緫鏉′欢鐨勭储寮�</param> + private void Delayed(FrameLayout thisFLayout, Output output,Action<int>action) + { + FrameLayout fLayout = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + thisFLayout.AddChidren(fLayout); + LogicView.TimeView timePointView = new LogicView.TimeView(); + timePointView.FLayoutView(fLayout); + EventHandler<MouseEventArgs> RemovefLayout = (sender, e1) => + { + //绉婚櫎fLayout鐣岄潰 + fLayout.RemoveFromParent(); + }; + //鍙栨秷鐐瑰嚮浜嬩欢 + timePointView.btnCancel.MouseUpEventHandler += RemovefLayout; + + //鍔犺浇鏁版嵁鐣岄潰鐨勮缃柟娉�(鍒楄〃浜掍笉鑱斿姩) + timePointView.mUIPickerView.setNPicker(timePointView.GetmStringList(), timePointView.GetsStringList(), null); + //榛樿鍒濆閫変腑鐘舵�� + timePointView.mUIPickerView.setCurrentItems(0, 5, 0); + //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿 + int timepoint = 5; + + if (output.delay != "0") + { + int intValue = int.Parse(output.delay); + var m = intValue / 60; + var s = intValue % 60; + + string timeValue = m.ToString() + ":" + s.ToString(); + int mIndex = timePointView.GetValueIndex(timeValue, 0, 1, timePointView.GetmIntList()); + int sIndex = timePointView.GetValueIndex(timeValue, 1, 0, timePointView.GetmIntList()); + //鏇存柊鍒濆鐘舵�� + timePointView.mUIPickerView.setCurrentItems(mIndex, sIndex, 0); + timepoint = intValue; + } + + + //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆� + timePointView.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) => + { + string minuet = timePointView.GethStringList0()[index1].Split(' ')[0]; + string second = timePointView.GetmStringList()[index2].Split(' ')[0]; + int minuetIntValue = int.Parse(minuet); + int secondIntValue = int.Parse(second); + timepoint = minuetIntValue*60+secondIntValue; + }; + //纭畾鐐瑰嚮浜嬩欢 + timePointView.btnConfirm.MouseUpEventHandler += (sender, e3) => + { + if (timepoint==0) + { + //鎻愮ず + return; + } + fLayout.RemoveFromParent(); + action(timepoint); + }; + } + /// <summary> + /// 鑾峰彇鏃堕棿鏂囨湰鎻忚堪 + /// </summary> + /// <param name="strTimeValue">鏃堕棿鍊硷紙鍗曚綅s绉掞級</param> + /// <returns></returns> + private string GetTimeText(string strTimeValue) + { + var timeValue = int.Parse(strTimeValue); + string state = ""; + var minutes = timeValue / 60; + var seconds = timeValue % 60; + if (minutes != 0) + { + if (seconds == 0) + { + state = minutes.ToString() + Language.StringByID(StringId.minute); + } + else + { + state = minutes.ToString() + Language.StringByID(StringId.minute) + seconds.ToString() + Language.StringByID(StringId.s); + } + } + else + { + if (seconds != 0) + { + state = seconds.ToString() + Language.StringByID(StringId.s); + } + } + return state; + } } } -- Gitblit v1.8.0