From 4a446825261d475ac1e9b8402fb956c1d26b9ffe Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 17 十一月 2021 17:54:08 +0800
Subject: [PATCH] 2021-11-17-01
---
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs | 10
HDL-ON_Android/Properties/AndroidManifest.xml | 4
HDL_ON/DAL/Server/NewAPI.cs | 4
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs | 22 ++
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs | 208 ++++++++++++++--------------
HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs | 4
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs | 32 ++++
HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs | 22 +-
HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs | 43 +++++-
HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs | 33 ++++
10 files changed, 243 insertions(+), 139 deletions(-)
diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml
index e687343..81ae197 100644
--- a/HDL-ON_Android/Properties/AndroidManifest.xml
+++ b/HDL-ON_Android/Properties/AndroidManifest.xml
@@ -176,7 +176,7 @@
<meta-data android:name="OPPO_APPID" android:value="OP-30619979" />
<meta-data android:name="OPPO_APPSECRET" android:value="OP-11d511c42f654cafac99588322681003" />
<!-- 鏋佸厜鎺ㄩ�佺粨鏉� -->
- <!-- 璁剧疆楂樺痉鍦板浘key -->
- <meta-data android:name="com.amap.api.v2.apikey" android:value="9901dd06e30b229efdd4c5bf5e076224" />
+ <!-- 璁剧疆楂樺痉鍦板浘key -->
+ <meta-data android:name="com.amap.api.v2.apikey" android:value="9901dd06e30b229efdd4c5bf5e076224" />
</application>
</manifest>
\ No newline at end of file
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 180b762..d39f52d 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -563,6 +563,10 @@
/// 鍚敤绂佺敤鑷姩鍖�
/// </summary>
public const string API_POST_Logic_Enable = "/home-wisdom/app/logic/enable";
+ /// <summary>
+ /// 鑷姩鍖栧湴鐞嗗洿鏍忕姸鎬佷笂鎶�
+ /// </summary>
+ public const string API_POST_Logic_GeoFenceStateReport = "/home-wisdom/app/logic/geoFenceStateReport";
#endregion
#region -- 绗笁鏂硅澶囩浉鍏虫帴鍙__________________________
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
index 5ec11e6..1c15401 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
@@ -106,11 +106,11 @@
//瀹ゅ鍙樺寲
shiwaiView.btnClick.MouseUpEventHandler += (sen, e) =>
{
- if (string.IsNullOrEmpty(Entity.DB_ResidenceData.Instance.CurrentRegion.homeAddress))//.longitude == 0 && Entity.DB_ResidenceData.Instance.CurrentRegion.latitude == 0)
- {
- new PublicAssmebly().TipMsg(StringId.tip, StringId.GatewayLocationInformationIsNotConfigured);
- return;
- }
+ //if (string.IsNullOrEmpty(Entity.DB_ResidenceData.Instance.CurrentRegion.homeAddress))//.longitude == 0 && Entity.DB_ResidenceData.Instance.CurrentRegion.latitude == 0)
+ //{
+ // new PublicAssmebly().TipMsg(StringId.tip, StringId.GatewayLocationInformationIsNotConfigured);
+ // return;
+ //}
Weather weather = new Weather();
MainPage.BasePageView.AddChidren(weather);
weather.Show();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs
index 2ea187d..5734dfa 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AirQuality.cs
@@ -82,31 +82,35 @@
{
Input input = new Input();
input.sid = LogicMethod.CurrLogicMethod.NewSid();
- input.condition_type = "9";
+ input.condition_type = "6";
Dictionary<string, string> dic = new Dictionary<string, string>();
- LogicMethod.CurrLogicMethod.dictionary(dic, "key", "air_quality");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "key", "airquality");
LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
LogicMethod.CurrLogicMethod.dictionary(dic, "value", value);
input.condition.Add(dic);
- AddCondition(input);
+ AddCondition(input, "airquality" ,"=");
}
/// <summary>
/// 娣诲姞鏉′欢
/// </summary>
/// <param name="input"></param>
- private void AddCondition(Input input)
+ private void AddCondition(Input input, string keyValue, string comparator)
{
///璁板綍绱㈠紩鍊�
int index = -1;
for (var i = 0; i < Logic.currlogic.input.Count; i++)
{
var condition_type = Logic.currlogic.input[i].condition_type;
- if (condition_type == "9")
+ if (condition_type == "6")
{
- ///鎵惧埌鏍囪绱㈠紩锛岄��鍑哄惊鐜綋
- index = i;
- break;
+ var dicList = Logic.currlogic.input[i].condition;
+ if (ExistKey(dicList, keyValue, comparator))
+ {
+ ///鎵惧埌鏍囪绱㈠紩锛岄��鍑哄惊鐜綋
+ index = i;
+ break;
+ }
}
}
if (index != -1)
@@ -128,5 +132,28 @@
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
+
+ /// <summary>
+ /// 鍒ゆ柇鏄惁瀛樺湪Key
+ /// </summary>
+ /// <param name="dicList"></param>
+ /// <param name="keyValue"></param>
+ /// <param name="comparator">姣旇緝鍏崇郴</param>
+ /// <returns></returns>
+ private bool ExistKey(List<Dictionary<string, string>> dicList, string keyValue, string comparator)
+ {
+ for (int i = 0; i < dicList.Count; i++)
+ {
+ var dic = dicList[i];
+ string key = dic["key"];
+ string comparatorValue = dic["comparator"];
+ if (key == keyValue && comparatorValue == comparator)
+ {
+ //鍒ゆ柇鏄惁瀛樺湪
+ return true;
+ }
+ }
+ return false;
+ }
}
}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index cb26d92..f616e2c 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -147,9 +147,11 @@
case SPK.CurtainRoller:
case SPK.CurtainTrietex:
//绌鸿皟
- case SPK.AcStandard:case SPK.HvacAC:
+ case SPK.AcStandard:
+ case SPK.HvacAC:
//鍦扮儹
- case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:
+ case SPK.HvacFloorHeat:
+ case SPK.FloorHeatStandard:
//鏂伴
case SPK.AirFreshStandard:
case SPK.HvacAirFresh:
@@ -388,8 +390,8 @@
break;
case SPK.SensorTemperature:
{
-
- string str =new InpOrOutLogicMethod { }.GetText(dicList, "temperature");
+
+ string str = new InpOrOutLogicMethod { }.GetText(dicList, "temperature");
inputView.btnState.Text = str;
}
break;
@@ -431,8 +433,9 @@
}
}
break;
- case "4":
+ case "6":
{
+ //inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
string strtext = "";
string strvalue = "";
@@ -444,8 +447,9 @@
switch (key)
{
- case "outdoor_temp":
+ case "temperature":
{
+ //浜戠澶╂皵鏉′欢 鍩庡競娓╁害瑙﹀彂
strvalue = value + "鈩�";
if (comparator == ">")
{
@@ -458,8 +462,9 @@
}
break;
- case "outdoor_humity":
+ case "humidity":
{
+ //浜戠澶╂皵鏉′欢 鍩庡競婀垮害瑙﹀彂
strvalue = value + "%";
if (comparator == ">")
{
@@ -472,53 +477,74 @@
}
break;
- case "pm2.5":
+ case "pm25":
{
+ //浜戠澶╂皵鏉′欢 鍩庡競pm2.5瑙﹀彂
strtext = Language.StringByID(StringId.PM25);
strvalue = new PublicInterface { }.GetString("pm25", value);
}
break;
+ case "weather":
+ {
+ //浜戠澶╂皵鏉′欢 鍩庡競澶╂皵瑙﹀彂
+ strtext = Language.StringByID(StringId.tianqibianhua);
+ 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;
+
+ }
+ }
+ break;
+ case "airquality":
+ {
+ //浜戠澶╂皵鏉′欢 鍩庡競绌烘皵璐ㄩ噺
+ strtext = Language.StringByID(StringId.kongqizhiliang);
+ 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;
+ }
+ }
+ 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 "8":
@@ -542,40 +568,6 @@
break;
}
inputView.btnText.TextID = StringId.likiadaoda;
- 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;
}
}
@@ -762,10 +754,10 @@
else if (device.spk == SPK.SensorTemperature)
{
- new InpOrOutLogicMethod().SensorView(thisView, device, "temperature", indexVulae);
+ new InpOrOutLogicMethod().SensorView(thisView, device, "temperature", indexVulae);
}
- else if ( device.spk == SPK.SensorHumidity)
+ else if (device.spk == SPK.SensorHumidity)
{
new InpOrOutLogicMethod().SensorView(thisView, device, "humidity", indexVulae);
@@ -804,7 +796,7 @@
}
}
break;
- case "4":
+ case "6":
{
///褰撳墠鐨勭储寮曞�兼暟鎹璞�
Input inputedit = Logic.currlogic.input[indexVulae];
@@ -819,7 +811,7 @@
stateValue = dic["value"];
switch (key)
{
- case "outdoor_temp":
+ case "temperature":
{
if (comparator == ">")
{
@@ -833,7 +825,7 @@
}
break;
- case "outdoor_humity":
+ case "humidity":
{
if (comparator == ">")
@@ -847,49 +839,57 @@
}
break;
- case "pm2.5":
+ case "pm25":
{
intValue = StringId.PM25;
+ }
+ break;
+ case "weather":
+ {
+ intValue = StringId.tianqibianhua;
+ }
+ break;
+ case "airquality":
+ {
+ intValue = StringId.kongqizhiliang;
}
break;
}
}
OutdoorEnvironment outdoorEnvironment = new OutdoorEnvironment();
- if (intValue == StringId.PM25)
+ if (intValue == StringId.tianqibianhua)
{
+ //鍩庡競澶╂皵锛堟櫞澶╋紝涓嬮洦锛�
+ WeatherCondition weatherCondition = new WeatherCondition();
+ MainPage.BasePageView.AddChidren(weatherCondition);
+ weatherCondition.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ }
+ else if (intValue == StringId.PM25)
+ {
+ //鍩庡競澶╂皵锛坧m2.5锛�
outdoorEnvironment.PmAction(thisView, stateValue);
+ }
+ else if (intValue == StringId.kongqizhiliang)
+ {
+ //鍩庡競澶╂皵锛堢┖姘旇川閲忥級
+ AirQuality airQuality = new AirQuality();
+ MainPage.BasePageView.AddChidren(airQuality);
+ airQuality.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
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 "8":
{
AddInputType addInputType = new AddInputType();
- addInputType.LocationView(thisView,true);
- }
- break;
- case "9":
- {
-
- AirQuality airQuality = new AirQuality();
- MainPage.BasePageView.AddChidren(airQuality);
- airQuality.Show();
- MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ addInputType.LocationView(thisView, true);
}
break;
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
index d865bad..bbbea86 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -88,12 +88,12 @@
/// 鏃堕棿鐐规潯浠�=1;
/// 鏃堕棿娈垫潯浠�=2;
/// 璁惧鐘舵�佸彉鍖栨潯浠�=3;
- /// 鐜淇℃伅鏉′欢=4;
+ /// 鐜淇℃伅鏉′欢=4(搴熷純);
/// 瀹夐槻鏉′欢=5;
/// 浜戠澶╂皵鏉′欢=6;
/// 鏌愪釜閫昏緫/鍦烘櫙鐨勮緭鍑烘潯浠�=7;
/// 鍦扮悊鍥存爮=8;
- /// 绌烘皵璐ㄩ噺=9;
+ /// 绌烘皵璐ㄩ噺=9(搴熷純);
/// 鍦烘櫙=10;
/// </summary>
public string condition_type = "";
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index b896462..7b289d7 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -842,11 +842,12 @@
/// <summary>
/// 鑷姩鍖栧湴鐞嗗洿鏍忕姸鎬佷笂鎶ヤ簯绔�
/// </summary>
- /// <param name="out_lng">APP缁忓害</param>
- /// <param name="out_lat">APP绾害</param>
+ /// <param name="out_lng">APP GPS缁忓害</param>
+ /// <param name="out_lat">APP GPS绾害</param>
private void AutomatedGeofenceStatusReporting(double out_lng, double out_lat)
{
List<LogicData> logicDataList = new List<LogicData>();
+ logicDataList.Clear();
//鑾峰彇閫昏緫ID鍒楄〃
var idStr = Send.GetLogicIdList();
if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "")
@@ -863,19 +864,30 @@
///鑷姩鍖栨病鏈夐厤缃湴鐞嗗洿鏍忎笉澶勭悊
if (string.IsNullOrEmpty(logicDate.geo_fence.latitude) || string.IsNullOrEmpty(logicDate.geo_fence.longitude))
{
- //缁忕含搴︿负绌猴紝涓嶅鐞�
+ //缁忕含搴︿负绌�,璁や负鑷姩鍖栨病鏈夐厤缃湴鐞嗗洿鏍忥紝涓嶅鐞�;
continue;
}
//鑷姩鍖栫含搴�
double lat = Convert.ToDouble(logicDate.geo_fence.latitude);
//鑷姩鍖栫粡搴�
double lon = Convert.ToDouble(logicDate.geo_fence.longitude);
- //鑷姩鍖栧崐寰�<鍗曚綅绫�>
+ //鑷姩鍖栭厤缃緭鍏ユ潯浠�<鍦扮悊鍥存爮鍗婂緞><鍗曚綅锛屽叕閲屻�佸崈绫�.绫�>
int radius = int.Parse(logicDate.geo_fence.radius);
//璁$畻2涓粡绾害涔嬮棿鐨勮窛绂�
int r =Infrastructure.Service.Helper.CalculatedDistance.Distance(out_lat, out_lng, lat, lon);
+ //瀹氫箟涓�涓眬閮ㄥ彉閲�
+ string direction = string.Empty;
+ //涓ょ偣璺濈灏忎簬閰嶇疆璺濈<鏃㈣嚜鍔ㄥ寲閰嶇疆杈撳叆鏉′欢鍦扮悊鍥存爮鍗婂緞>,璇存槑杩涘叆鍖哄煙
+ if (r<radius) {
+ //鍒拌揪鏌愬湴
+ direction = "arrive";
+ } else {
+ //绂诲紑
+ direction = "leave";
+ }
+ bool f= Send.GeoFenceStateReport(logicDate.userLogicId,logicDate.sid, direction);
//if () { }
-
+ //Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
}
}
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs
index 661dbcd..0e7d6c0 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/OutdoorEnvironment.cs
@@ -129,31 +129,31 @@
{
case StringId.wendugaoyu:
{
- keyValue = "outdoor_temp";
+ keyValue = "temperature";
comparator = ">";
}
break;
case StringId.wendudiyu:
{
- keyValue = "outdoor_temp";
+ keyValue = "temperature";
comparator = "<";
}
break;
case StringId.shidugaoyu:
{
- keyValue = "outdoor_humity";
+ keyValue = "humidity";
comparator = ">";
}
break;
case StringId.shidudiyu:
{
- keyValue = "outdoor_humity";
+ keyValue = "humidity";
comparator = "<";
}
break;
}
- AddDic(keyValue, comparator, value);
+ AddDic(keyValue, comparator, value,"float");
});
}
/// <summary>
@@ -169,24 +169,24 @@
, (text) =>
{
var value= pmView.GetValue("pm25", text);
- AddDic("pm2.5", "in", value);
+ AddDic("pm25", "in", value, "integer");
});
}
/// <summary>
/// 灏佽鏁版嵁
/// </summary>
- /// <param name="keyValue">绫诲瀷鍊�(pm2.5锛沷utdoor_temp锛沷utdoor_humity)</param>
+ /// <param name="keyValue">绫诲瀷鍊�(pm25锛泃emperature锛沨umidity)</param>
/// <param name="comparator">姣旇緝鍏崇郴</param>
/// <param name="value">鍊�</param>
- private void AddDic(string keyValue, string comparator, string value)
+ public void AddDic(string keyValue, string comparator,string value,string data_type)
{
Input input = new Input();
input.sid = LogicMethod.CurrLogicMethod.NewSid();
- input.condition_type = "4";
+ input.condition_type = "6";
Dictionary<string, string> dic = new Dictionary<string, string>();
LogicMethod.CurrLogicMethod.dictionary(dic, "key", keyValue);
LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", comparator);
- LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "float");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", data_type);
LogicMethod.CurrLogicMethod.dictionary(dic, "value", value);
input.condition.Add(dic);
AddCondition(input, keyValue, comparator);
@@ -204,7 +204,7 @@
for (var i = 0; i < Logic.currlogic.input.Count; i++)
{
var condition_type = Logic.currlogic.input[i].condition_type;
- if (condition_type == "4")
+ if (condition_type == "6")
{
var dicList = Logic.currlogic.input[i].condition;
if (ExistKey(dicList, keyValue, comparator))
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index 35aa688..3097608 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -350,6 +350,38 @@
}
return responsePackNew;
}
+
+
+ /// <summary>
+ /// 鑷姩鍖栧湴鐞嗗洿鏍忕姸鎬佷笂鎶�
+ /// </summary>
+ /// <param name="userLogicId">鑷姩鍖栦簯绔痠d<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param>
+ /// <param name="logicSid">鑷姩鍖杝id<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param>
+ /// <param name="direction">arrive:鍒拌揪(杩涘叆) leave锛氱寮�</param>
+ /// <returns></returns>
+ public static bool GeoFenceStateReport(string userLogicId, string logicSid, string direction)
+ {
+ var jObject = new JObject();
+ jObject.Add("homeId", LogicMethod.CurrLogicMethod.HomeId);
+ jObject.Add("userLogicId", userLogicId);
+ jObject.Add("sid", logicSid);
+ jObject.Add("direction", direction);
+ var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_GeoFenceStateReport);
+ //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+ if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+ {
+ RefreshToken();
+ GeoFenceStateReport(userLogicId, logicSid, direction);
+ }
+ if (responsePackNew.Code == "0")
+ {
+ //鎴愬姛
+ return true;
+ }
+ //澶辫触
+ return false;
+ }
+
/// <summary>
///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛�
/// </summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs
index 7bbf196..1c7ba43 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/WeatherCondition.cs
@@ -86,13 +86,13 @@
LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
LogicMethod.CurrLogicMethod.dictionary(dic, "value", value);
input.condition.Add(dic);
- AddCondition(input);
+ AddCondition(input, "weather", "=");
}
/// <summary>
/// 娣诲姞鏉′欢
/// </summary>
/// <param name="input"></param>
- private void AddCondition(Input input)
+ private void AddCondition(Input input, string keyValue, string comparator)
{
///璁板綍绱㈠紩鍊�
int index = -1;
@@ -101,6 +101,13 @@
var condition_type = Logic.currlogic.input[i].condition_type;
if (condition_type == "6")
{
+ var dicList = Logic.currlogic.input[i].condition;
+ if (ExistKey(dicList, keyValue, comparator))
+ {
+ ///鎵惧埌鏍囪绱㈠紩锛岄��鍑哄惊鐜綋
+ index = i;
+ break;
+ }
///鎵惧埌鏍囪绱㈠紩锛岄��鍑哄惊鐜綋
index = i;
break;
@@ -125,5 +132,27 @@
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
+ /// <summary>
+ /// 鍒ゆ柇鏄惁瀛樺湪Key
+ /// </summary>
+ /// <param name="dicList"></param>
+ /// <param name="keyValue"></param>
+ /// <param name="comparator">姣旇緝鍏崇郴</param>
+ /// <returns></returns>
+ private bool ExistKey(List<Dictionary<string, string>> dicList, string keyValue, string comparator)
+ {
+ for (int i = 0; i < dicList.Count; i++)
+ {
+ var dic = dicList[i];
+ string key = dic["key"];
+ string comparatorValue = dic["comparator"];
+ if (key == keyValue && comparatorValue == comparator)
+ {
+ //鍒ゆ柇鏄惁瀛樺湪
+ return true;
+ }
+ }
+ return false;
+ }
}
}
--
Gitblit v1.8.0