From 17c8d94258154ab2e9f6d2cf821202c873b9f118 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 16 十二月 2020 15:39:15 +0800
Subject: [PATCH] 22222
---
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 608 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 608 insertions(+), 0 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
new file mode 100644
index 0000000..eedb16c
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -0,0 +1,608 @@
+锘縰sing System;
+using Shared;
+using System.Collections.Generic;
+namespace HDL_ON.UI.UI2.Intelligence.Automation
+{
+ public class InpOrOutLogicMethod
+ {
+ /// <summary>
+ /// 杈撳叆鏉′欢澶勭悊鏂规硶
+ /// </summary>
+ /// <param name="thisView">褰撳墠鐣岄潰</param>
+ /// <param name="viewLayout">涓婁笅婊戝姩鎺т欢</param>
+ 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();
+ inputView.FLayoutView(viewLayout);
+ ///璁板綍鏉′欢绫诲瀷
+ inputView.btnClick.Name = inputCondition.condition_type;
+ ///璁板綍鏉′欢绱㈠紩
+ inputView.btnClick.Tag = i;
+ ///鏉′欢鐘舵�佹暟缁�
+ List<Dictionary<string, string>> dicList = inputCondition.condition as List<Dictionary<string, string>>;
+ //鏄剧ず鏉′欢鍚勭绫诲瀷鐘舵��
+ switch (inputCondition.condition_type)
+ {
+ case "1":
+ {
+ inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png";
+ foreach (var dic in dicList)
+ {
+ string value = dic["value"];
+ inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value;
+ inputView.btnClick.AddTag("timepoint", value);
+ }
+ }
+ break;
+ case "2":
+ {
+ inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png";
+ foreach (var dic in dicList)
+ {
+ string value = dic["value"];
+ inputView.btnText.Text = Language.StringByID(StringId.timeHorizon) + ": " + value;
+ inputView.btnClick.AddTag("timeHorizon", value);
+ }
+
+ }
+ break;
+ case "3":
+ {
+ //鐢╯id鎵惧埌璁惧锛�
+ var device = LogicMethod.GetDevice(inputCondition.sid);
+ //鐢ㄨ澶囩殑functionType绫诲瀷鎵惧埌瀵瑰簲鍥炬爣锛�
+ inputView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType);
+ //鏄剧ず璁惧鍚嶇О
+ inputView.btnText.Text = device.name;
+ //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害
+ inputView.btnText.Width = Application.GetRealWidth(80);
+ //鍖哄埆涓嶅悓璁惧锛屾樉绀轰笉鍚岃澶囩姸鎬�
+ 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")
+ {
+ inputView.btnState.Text = Language.StringByID(StringId.onLogic);
+
+ }
+ else
+ {
+ inputView.btnState.Text = Language.StringByID(StringId.offLogic);
+ }
+ }
+ }
+ break;
+ }
+ }
+ break;
+
+ }
+ //鍐嶆缂栬緫鏉′欢鐘舵�佺偣鍑讳簨浠�
+ inputView.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
+ Button button = (Button)sen;
+ //鎵惧埌褰撳墠缂栬緫鐨勭储寮�
+ int indexVulae = int.Parse(inputView.btnClick.Tag.ToString());
+ //鏍囪缂栬緫鐘舵��
+ bool edit = true;
+ switch (button.Name)
+ {
+ case "1":
+ {
+ FrameLayout fLayout = new FrameLayout
+ {
+ BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+ };
+ thisView.AddChidren(fLayout);
+ TimeTpye timeTpye = new TimeTpye();
+ timeTpye.TimePoint(fLayout, edit, indexVulae);
+ }
+ break;
+ case "2":
+ {
+ FrameLayout fLayout = new FrameLayout
+ {
+ BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+ };
+ thisView.AddChidren(fLayout);
+ TimeTpye timeTpye = new TimeTpye();
+ timeTpye.TimeHorizon(fLayout, edit, indexVulae);
+ }
+ break;
+
+ case "3":
+ {
+ //鐢╯id鎵惧埌璁惧锛�
+ var device = LogicMethod.GetDevice(inputCondition.sid);
+ ConditionDeviceFunList deviceFunList = new ConditionDeviceFunList();
+ MainPage.BasePageView.AddChidren(deviceFunList);
+ 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();
+ };
+ }
+
+ }
+ /// <summary>
+ /// 杈撳嚭鏉′欢澶勭悊鏂规硶
+ /// </summary>
+ /// <param name="thisView">褰撳墠鐣岄潰</param>
+ /// <param name="viewLayout">涓婁笅婊戝姩鎺т欢</param>
+ public static void OutputTarget(FrameLayout thisView, VerticalScrolViewLayout viewLayout)
+ {
+
+ for (int i = 0; i < Logic.currlogic.output.Count; i++)
+ {
+ Output outputTarget = Logic.currlogic.output[i];
+ ///鍚勭鏉′欢鐨刅iew
+ LogicView.AddOutputInputView targetView = new LogicView.AddOutputInputView();
+ targetView.FLayoutView(viewLayout);
+ ///璁板綍鏉′欢绫诲瀷
+ targetView.btnClick.Name = outputTarget.target_type;
+ ///璁板綍鏉′欢绱㈠紩
+ targetView.btnClick.Tag = i;
+ ///鏉′欢鐘舵�佹暟缁�
+ 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);
+ //鐢ㄨ澶囩殑functionType绫诲瀷鎵惧埌瀵瑰簲鍥炬爣锛�
+ targetView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType);
+ //鏄剧ず璁惧鍚嶇О
+ 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")
+ {
+ stateStr = Language.StringByID(StringId.onLogic);
+
+ }
+ else
+ {
+ 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;
+ }
+ }
+ break;
+ case "2":
+ {
+ //鐢╯id鎵惧埌鍦烘櫙锛�
+ var scene = LogicMethod.GetSecne(outputTarget.sid);
+ targetView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
+ targetView.btnNextIcon.Visible = false;
+ //鏄剧ず鍦烘櫙鍚嶇О
+ targetView.btnText.Text = scene.name;
+ }
+ break;
+ case "3":
+ {
+ targetView.btnIcon.UnSelectedImagePath = "LogicIcon/delayed.png";
+ foreach (var dic in dicList)
+ {
+ string value = dic["value"];
+ targetView.btnText.Text = value;
+ }
+ }
+ break;
+ }
+ //鍐嶆缂栬緫鏉′欢鐘舵�佺偣鍑讳簨浠�
+ targetView.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
+ Button button = (Button)sen;
+ //鎵惧埌褰撳墠缂栬緫鐨勭储寮�
+ int indexVulae = int.Parse(targetView.btnClick.Tag.ToString());
+ //鏍囪缂栬緫鐘舵��
+ bool edit = true;
+ switch (button.Name)
+ {
+ case "1":
+ {
+ //鐢╯id鎵惧埌璁惧锛�
+ var device = LogicMethod.GetDevice(outputTarget.sid);
+ TargetDeviceFunList deviceFunList = new TargetDeviceFunList();
+ MainPage.BasePageView.AddChidren(deviceFunList);
+ deviceFunList.Show(device, indexVulae, edit);
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ }
+ break;
+ case "3":
+ {
+
+ FrameLayout fLayout = new FrameLayout
+ {
+ BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
+ };
+ thisView.AddChidren(fLayout);
+ 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