From 6eb21769c74cfcd10084f73ff3f212355849a3c7 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 17 五月 2021 15:00:13 +0800
Subject: [PATCH] 2021-5-17-2
---
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 1463 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 1,443 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 5648d36..3de977d 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
@@ -10,18 +12,18 @@
/// </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;
///璁板綍鏉′欢绱㈠紩
- inputView.btnClick.Tag = i;
+ inputView.btnClick.Tag = inputCondition.sid;
///鏉′欢鐘舵�佹暟缁�
List<Dictionary<string, string>> dicList = inputCondition.condition as List<Dictionary<string, string>>;
//鏄剧ず鏉′欢鍚勭绫诲瀷鐘舵��
@@ -29,24 +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);
}
}
@@ -56,18 +125,32 @@
//鐢╯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)
{
- case FunctionType.Relay:
+ //寮�鍏崇伅鍏� light.Switch
+ case SPK.LightDimming:
+ case SPK.LightRGB:
+ case SPK.LightRGBW:
+ case SPK.LightCCT:
+ case SPK.LightSwitch:
+ //绐楀笜
+ case SPK.CurtainSwitch:
+ case SPK.CurtainRoller:
+ case SPK.CurtainTrietex:
+ //绌鸿皟
+ case SPK.AcStandard:
+ //鍦扮儹
+ case SPK.FloorHeatStandard:
{//寮�鍏崇伅
foreach (var dic in dicList)
{
+
string value = dic["value"];
if (value == "on")
{
@@ -81,6 +164,264 @@
}
}
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;
+
+ }
+ }
+ 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;
+ case "9":
+ {
+ 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;
}
}
break;
@@ -90,17 +431,63 @@
inputView.btnClick.MouseUpEventHandler += (sen, e) =>
{
Button button = (Button)sen;
+ //鎵惧埌褰撳墠缂栬緫鐨勭储寮�
+ 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, true, int.Parse(inputView.btnClick.Tag.ToString()));
+ 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":
@@ -111,10 +498,107 @@
};
thisView.AddChidren(fLayout);
TimeTpye timeTpye = new TimeTpye();
- timeTpye.TimeHorizon(fLayout, true, int.Parse(inputView.btnClick.Tag.ToString()));
+ 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;
+ 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;
+ case "9":
+ {
+
+ AirQuality airQuality = new AirQuality();
+ MainPage.BasePageView.AddChidren(airQuality);
+ airQuality.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
break;
}
+ };
+ ///鍒犻櫎鎺т欢
+ inputView.btnDel.MouseUpEventHandler += (sender, e) =>
+ {
+ Logic.currlogic.input.Remove(inputCondition);
+ inputView.frameLayout.RemoveFromParent();
};
}
@@ -127,8 +611,947 @@
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 = outputTarget.sid;
+ ///鏉′欢鐘舵�佹暟缁�
+ 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.spk);
+ //鏄剧ず璁惧鍚嶇О
+ targetView.btnText.Text = device.name;
+ //鏀瑰彉璁惧鍚嶇О鏄剧ず鎺т欢瀹藉害
+ targetView.btnText.Width = Application.GetRealWidth(80);
+ //绗竴涓彉閲忔樉绀虹姸鎬佸��
+ 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);
+ }
+ }
+ targetView.btnState.Text = stateStr;
+ }
+ break;
+ 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 == "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 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;
+ }
+ }
+ targetView.btnState.Text = stateStr;
+ }
+ break;
+ case SPK.AcStandard:
+ {
+ 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 SPK.FloorHeatStandard:
+ {
+ 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/time.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 = 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)
+ {
+ 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>
+ /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬�
+ /// </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;
+ }
+ }
+ /// <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;
+ }
+ /// <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;
+ }
}
}
--
Gitblit v1.8.0