From a56a485926a8927f904d7f4795c371c25b35753a Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 22 十二月 2020 18:18:15 +0800
Subject: [PATCH] Merge branch 'WJC' into NewFilePath
---
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 644 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 615 insertions(+), 29 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
old mode 100644
new mode 100755
index 5f3a71b..b520c56
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -10,18 +10,24 @@
/// </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];
+ if (inputCondition == null)
+ {
+ //闃叉鏈夌殑绌哄璞★紱
+ //姝e父鎯呭喌涓嬩笉浼氳鐜拌薄锛�
+ continue;
+ }
///鍚勭鏉′欢鐨刅iew
LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView();
- viewLayout.AddChidren(inputView.FLayoutView());
+ inputView.FLayoutView(viewLayout);
///璁板綍鏉′欢绫诲瀷
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,19 +35,18 @@
{
case "1":
{
- 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.hour) + ": " + value;
inputView.btnClick.AddTag("timepoint", value);
}
-
}
break;
case "2":
{
- inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png";
+ inputView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png";
foreach (var dic in dicList)
{
string value = dic["value"];
@@ -64,11 +69,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")
{
@@ -92,11 +110,21 @@
{
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;
- //琛ㄧず鏄潯浠�
- string if_type = LogicMethod.condition_if;
switch (button.Name)
{
case "1":
@@ -121,20 +149,25 @@
timeTpye.TimeHorizon(fLayout, edit, indexVulae);
}
break;
-
case "3":
{
//鐢╯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();
};
}
@@ -146,20 +179,26 @@
/// <param name="viewLayout">涓婁笅婊戝姩鎺т欢</param>
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];
+ if (outputTarget == null)
+ {
+ //闃叉鏈夌殑绌哄璞★紱
+ //姝e父鎯呭喌涓嬩笉浼氳鐜拌薄锛�
+ continue;
+ }
///鍚勭鏉′欢鐨刅iew
LogicView.AddOutputInputView targetView = new LogicView.AddOutputInputView();
- viewLayout.AddChidren(targetView.FLayoutView());
+ targetView.FLayoutView(viewLayout);
///璁板綍鏉′欢绫诲瀷
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>>;
- //鏄剧ず鏉′欢鍚勭绫诲瀷鐘舵��
+ //鏄剧ず杈撳嚭鏉′欢鍚勭绫诲瀷鐘舵��
switch (outputTarget.target_type)
{
case "1":
@@ -172,24 +211,275 @@
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 == "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 + "%";
+ }
+ targetView.btnState.Text = stateStr;
+ }
+ break;
+ case FunctionType.Curtain:
+ case FunctionType.MotorCurtain:
+ case FunctionType.RollingShutter:
+ {
+ 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.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 +502,7 @@
foreach (var dic in dicList)
{
string value = dic["value"];
- targetView.btnText.Text =value;
+ targetView.btnText.Text = value;
}
}
break;
@@ -222,20 +512,29 @@
{
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;
- //琛ㄧず鏄洰鏍�
- 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 +549,300 @@
AddTarget addTarget = new AddTarget();
addTarget.Delayed(fLayout, edit, indexVulae);
-
+
}
break;
}
};
+ ///鍒犻櫎鎺т欢
+ targetView.btnDel.MouseUpEventHandler += (sender, e) =>
+ {
+ Logic.currlogic.output.Remove(outputTarget);
+ targetView.frameLayout.RemoveFromParent();
+ };
}
}
+ /// <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.functionType)
+ {
+ //寮�鍏崇伅鍏�
+ case FunctionType.Relay:
+ {
+ 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 FunctionType.Dimmer:
+ case FunctionType.RGB:
+ case FunctionType.RGBW:
+ case FunctionType.ColorTemperature:
+ {
+ 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 FunctionType.Curtain:
+ case FunctionType.MotorCurtain:
+ case FunctionType.RollingShutter:
+ {
+ 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 FunctionType.AC:
+ {
+ 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 FunctionType.FloorHeating:
+ {
+
+ 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;
+ }
+ }
+ /// <summary>
+ /// 鑾峰彇value閿��
+ /// </summary>
+ /// <param name="keyValue"></param>
+ /// <param name="dicList"></param>
+ /// <returns></returns>
+ public 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