From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 14:16:20 +0800 Subject: [PATCH] 增加本地发送的重发机制 --- HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 366 insertions(+), 20 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs index 5f3a71b..eedb16c 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs @@ -10,14 +10,14 @@ /// </summary> /// <param name="thisView">褰撳墠鐣岄潰</param> /// <param name="viewLayout">涓婁笅婊戝姩鎺т欢</param> - public static void InputCondition(FrameLayout thisView,VerticalScrolViewLayout viewLayout) + public static void InputCondition(FrameLayout thisView, VerticalScrolViewLayout viewLayout) { for (int i = 0; i < Logic.currlogic.input.Count; i++) { Input inputCondition = Logic.currlogic.input[i]; ///鍚勭鏉′欢鐨刅iew LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView(); - viewLayout.AddChidren(inputView.FLayoutView()); + inputView.FLayoutView(viewLayout); ///璁板綍鏉′欢绫诲瀷 inputView.btnClick.Name = inputCondition.condition_type; ///璁板綍鏉′欢绱㈠紩 @@ -36,7 +36,6 @@ inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value; inputView.btnClick.AddTag("timepoint", value); } - } break; case "2": @@ -64,11 +63,24 @@ //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� switch (device.functionType) { + //寮�鍏崇伅鍏� light.Switch + case FunctionType.Dimmer: + case FunctionType.RGB: + case FunctionType.RGBW: + case FunctionType.ColorTemperature: case FunctionType.Relay: + //绐楀笜 + case FunctionType.Curtain: + case FunctionType.RollingShutter: + case FunctionType.MotorCurtain: + //绌鸿皟 + case FunctionType.AC: + //鍦扮儹 + case FunctionType.FloorHeating: {//寮�鍏崇伅 foreach (var dic in dicList) { - + string value = dic["value"]; if (value == "on") { @@ -95,8 +107,6 @@ int indexVulae = int.Parse(inputView.btnClick.Tag.ToString()); //鏍囪缂栬緫鐘舵�� bool edit = true; - //琛ㄧず鏄潯浠� - string if_type = LogicMethod.condition_if; switch (button.Name) { case "1": @@ -126,15 +136,21 @@ { //鐢╯id鎵惧埌璁惧锛� var device = LogicMethod.GetDevice(inputCondition.sid); - DeviceFunList deviceFunList = new DeviceFunList(); + ConditionDeviceFunList deviceFunList = new ConditionDeviceFunList(); MainPage.BasePageView.AddChidren(deviceFunList); - deviceFunList.Show(device, indexVulae,edit, if_type); + deviceFunList.Show(device, indexVulae, edit); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } break; - + } + }; + ///鍒犻櫎鎺т欢 + inputView.btnDel.MouseUpEventHandler += (sender, e) => + { + Logic.currlogic.input.Remove(inputCondition); + inputView.frameLayout.RemoveFromParent(); }; } @@ -147,12 +163,12 @@ public static void OutputTarget(FrameLayout thisView, VerticalScrolViewLayout viewLayout) { - for (int i = 0; i < Logic.currlogic.output.Count; i++) + for (int i = 0; i < Logic.currlogic.output.Count; i++) { Output outputTarget = Logic.currlogic.output[i]; ///鍚勭鏉′欢鐨刅iew LogicView.AddOutputInputView targetView = new LogicView.AddOutputInputView(); - viewLayout.AddChidren(targetView.FLayoutView()); + targetView.FLayoutView(viewLayout); ///璁板綍鏉′欢绫诲瀷 targetView.btnClick.Name = outputTarget.target_type; ///璁板綍鏉′欢绱㈠紩 @@ -172,24 +188,329 @@ targetView.btnText.Text = device.name; //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害 targetView.btnText.Width = Application.GetRealWidth(80); + //绗竴涓彉閲忔樉绀虹姸鎬佸�� + string stateStr = ""; //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬� switch (device.functionType) { case FunctionType.Relay: {//寮�鍏崇伅 + foreach (var dic in dicList) { - string value = dic["value"]; if (value == "on") { - targetView.btnState.Text = Language.StringByID(StringId.onLogic); + stateStr = Language.StringByID(StringId.onLogic); } else { - targetView.btnState.Text = Language.StringByID(StringId.offLogic); + stateStr = Language.StringByID(StringId.offLogic); } + } + targetView.btnState.Text = stateStr; + } + break; + case FunctionType.RGB: + case FunctionType.RGBW: + case FunctionType.ColorTemperature: + case FunctionType.Dimmer: + { + string on_off = GetKeyValue("on_off", dicList); + string brightness = GetKeyValue("brightness", dicList); + if (on_off != "") + { + if (on_off == "on") + { + stateStr = Language.StringByID(StringId.onLogic); + + } + else + { + stateStr = Language.StringByID(StringId.offLogic); + + } + } + if (brightness != "") + { + stateStr += brightness + "%"; + } + if (on_off != "" && on_off == "off") + { + targetView.btnState.Text = Language.StringByID(StringId.offLogic); + } + else + { + targetView.btnState.Text = stateStr; + + } + + } + break; + case FunctionType.Curtain: + {//寮�鍏崇伅 + 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; + } + } + targetView.btnState.Text = stateStr; + } + break; + case FunctionType.MotorCurtain: + case FunctionType.RollingShutter: + {//寮�鍏崇伅 + string on_off = GetKeyValue("on_off", dicList); + string brightness = GetKeyValue("brightness", 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"|| on_off != "" && on_off == "off") + { + 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)+";"; + } + break; + case "off": + { + stateStr = Language.StringByID(StringId.offLogic) + ";"; + } + break; + + } + } + + if (set_temp != "") + { + + stateStr += set_temp + "鈩�;"; + } + + if (mode != "") + { + + switch (mode) + { + case "cool": + { + stateStr += Language.StringByID(StringId.coolLogic)+";"; + } + break; + case "heat": + { + stateStr += Language.StringByID(StringId.heatingLogic) + ";"; + } + break; + case "auto": + { + stateStr += Language.StringByID(StringId.autoLogic) + ";"; + } + break; + case "dry": + { + stateStr += Language.StringByID(StringId.dehumidifyLogic) + ";"; + } + 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.Auto) + ";"; + } + break; + } + + } + if (on_off != "" && on_off == "off") + { + targetView.btnState.Text = Language.StringByID(StringId.offLogic); + } + else { + targetView.btnState.Text = stateStr.TrimEnd(';'); + + } + + } + break; + case FunctionType.FloorHeating: + { + string on_off = GetKeyValue("on_off", dicList); + string set_temp = GetKeyValue("set_temp", dicList); + string mode = GetKeyValue("mode", dicList); + if (on_off != "") + { + switch (on_off) + { + case "on": + { + stateStr = Language.StringByID(StringId.onLogic) + ";"; + } + break; + case "off": + { + stateStr = Language.StringByID(StringId.offLogic) + ";"; + } + break; + + } + } + if (set_temp != "") + { + + stateStr += set_temp + "鈩�;"; + } + if (mode != "") + { + + switch (mode) + { + case "day": + { + stateStr += Language.StringByID(StringId.dayMode)+";"; + } + break; + case "night": + { + stateStr += Language.StringByID(StringId.nightMode) + ";"; + } + break; + + case "away": + { + stateStr += Language.StringByID(StringId.leaveMode) + ";"; + } + break; + case "normal": + { + stateStr += Language.StringByID(StringId.ordinaryMode) + ";"; + } + break; + case "timer": + { + stateStr += Language.StringByID(StringId.timeMode) + ";"; + } + break; + } + + + switch (mode) + { + case "cool": + { + stateStr += Language.StringByID(StringId.coolLogic) + ";"; + } + break; + case "heat": + { + stateStr += Language.StringByID(StringId.heatingLogic) + ";"; + } + break; + case "auto": + { + stateStr += Language.StringByID(StringId.autoLogic) + ";"; + } + break; + case "dry": + { + stateStr += Language.StringByID(StringId.dehumidifyLogic) + ";"; + } + break; + } + + } + if (on_off != "" && on_off == "off") + { + targetView.btnState.Text =Language.StringByID(StringId.offLogic); + } + else + { + targetView.btnState.Text = stateStr.TrimEnd(';'); + } } break; @@ -212,7 +533,7 @@ foreach (var dic in dicList) { string value = dic["value"]; - targetView.btnText.Text =value; + targetView.btnText.Text = value; } } break; @@ -225,17 +546,15 @@ int indexVulae = int.Parse(targetView.btnClick.Tag.ToString()); //鏍囪缂栬緫鐘舵�� bool edit = true; - //琛ㄧず鏄洰鏍� - string if_type = LogicMethod.target_if; switch (button.Name) { case "1": { //鐢╯id鎵惧埌璁惧锛� var device = LogicMethod.GetDevice(outputTarget.sid); - DeviceFunList deviceFunList = new DeviceFunList(); + TargetDeviceFunList deviceFunList = new TargetDeviceFunList(); MainPage.BasePageView.AddChidren(deviceFunList); - deviceFunList.Show(device, indexVulae, edit, if_type); + deviceFunList.Show(device, indexVulae, edit); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; } break; @@ -250,13 +569,40 @@ AddTarget addTarget = new AddTarget(); addTarget.Delayed(fLayout, edit, indexVulae); - + } break; } }; + ///鍒犻櫎鎺т欢 + targetView.btnDel.MouseUpEventHandler += (sender, e) => + { + Logic.currlogic.output.Remove(outputTarget); + targetView.frameLayout.RemoveFromParent(); + }; } } + /// <summary> + /// 鑾峰彇value閿�� + /// </summary> + /// <param name="keyValue"></param> + /// <param name="dicList"></param> + /// <returns></returns> + private static string GetKeyValue(string keyValue, List<Dictionary<string, string>> dicList) + { + + string valueStr = ""; + foreach (var dic in dicList) + { + if (dic["key"] == keyValue) + { + valueStr = dic["value"]; + break; + } + + } + return valueStr; + } } } -- Gitblit v1.8.0