From 702cad5d5236fe14c714fdc0f0d02a2399b772ac Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 10 四月 2024 16:07:30 +0800
Subject: [PATCH] Delete Shared.IOS-1.dll
---
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs | 257 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 228 insertions(+), 29 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index bd46f2d..7d2996e 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -4,6 +4,7 @@
using HDL_ON.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
+
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class ConditionDeviceFunList : FrameLayout
@@ -40,8 +41,12 @@
/// 浜轰綋浼犳劅鍣ㄦ寔缁椂闂翠笓鐢�
/// </summary>
private string hold_time=string.Empty;
+ /// <summary>
+ /// 妫�娴嬬被鍨� 閰嶅悎condition_type=3鏃朵娇鐢�,娌℃湁璇ュ瓧娈点�佽鍊兼垨0: 鐘舵�佹娴�(姣忔鏀跺埌鐘舵�佸氨鎴愮珛),1:鍔ㄤ綔妫�娴�(闇�瑕佸垏鎹㈢姸鎬佹墠鎴愮珛)
+ /// </summary>
+ private string detect_type = "0";
-
+
private static ConditionDeviceFunList m_Current = null;
@@ -59,6 +64,7 @@
public void Show(Entity.Function device, int index, bool edit)
{
+
this.function = device;
this.mEdit = edit;
this.mIndex = index;
@@ -196,7 +202,7 @@
//浜轰綋瀛樺湪浼犳劅鍣�
case SPK.SensorPirHold:
{
-
+
LogicView.FunTypeView view1 = new LogicView.FunTypeView();
view1.btnText.TextID = StringId.rentijiance;
@@ -224,6 +230,31 @@
};
+ LogicView.FunTypeView view3 = new LogicView.FunTypeView();
+ view3.frameLayout.Y = view2.frameLayout.Bottom;
+ view3.btnText.TextID = StringId.zhixingmoshi;
+ view3.btnState.TextID = StringId.shoudaojiuzhixing;
+ fLayout.AddChidren(view3.FLayoutView());
+ view3.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
+ this.AddChidren(frame);
+ LogicView.SwitchView switchView = new LogicView.SwitchView();
+ switchView.FLayoutView(frame, StringId.gaibiancaizhixing, StringId.shoudaojiuzhixing, view3.btnState.Text, 2, (intValue) =>
+ {
+ if (StringId.gaibiancaizhixing == intValue)
+ {
+ this.detect_type = "1";
+ }
+ else
+ {
+ this.detect_type = "0";
+ }
+ view3.btnState.TextID = intValue;
+ selectedState = device.spk + "_" + this.detect_type;
+ });
+ };
+
if (edit)
{
@@ -236,9 +267,21 @@
int h = time / (60 * 60);
int m = time % (60 * 60) / 60;
int s = (time % (60 * 60) % 60);
- view2.btnState.Text = inputs.hold_time + "s";
+ view2.btnState.Text = LogicMethod.Current.getTimeStr(inputs.hold_time);
view2.btnState.Name = h + ":" + m + ":" + s;
this.hold_time = inputs.hold_time;
+ }
+ if (!string.IsNullOrEmpty(inputs.detect_type))
+ {
+ this.detect_type = inputs.detect_type;
+ if (inputs.detect_type == "1")
+ {
+ view3.btnState.TextID = StringId.gaibiancaizhixing;
+ }
+ else
+ {
+ view3.btnState.TextID = StringId.shoudaojiuzhixing;
+ }
}
}
catch { }
@@ -255,6 +298,22 @@
view.btnClick.MouseUpEventHandler += (sender, e) =>
{
DeviceView(device, view.btnState, StringId.kaiqi, StringId.bihe);
+ };
+ if (edit)
+ {
+ GetEditState(device, index, view.btnState, null, null, null);
+ }
+ }
+ break;
+ //绱ф�ュ懠鍙紶鎰熷櫒
+ case SPK.SensorHelp:
+ {
+ LogicView.FunTypeView view = new LogicView.FunTypeView();
+ view.btnText.TextID = StringId.qiujiu;
+ fLayout.AddChidren(view.FLayoutView());
+ view.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ DeviceView(device, view.btnState, StringId.qiujiu, StringId.zhengchang,1);
};
if (edit)
{
@@ -573,6 +632,26 @@
};
}
break;
+ //鐓у害浼犳劅鍣�
+ case SPK.SensorLight:
+ {
+
+ ///鐓у害浼犳劅鍣�
+ LogicView.FunTypeView illuminanceView = new LogicView.FunTypeView();
+ illuminanceView.btnText.TextID = StringId.zhaomingdu;
+ fLayout.AddChidren(illuminanceView.FLayoutView());
+
+ ///鐐瑰嚮浜嬩欢
+ illuminanceView.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ new PublicInterface { }.ViewZuHe(this, StringId.zhaomingdugaoyu, StringId.zhaomingdudiyu, (intText, view) =>
+ {
+ InputBoxAction(device, intText, index, edit);
+ });
+
+ };
+ }
+ break;
//鐢查啗
case SPK.SensorHcho:
{
@@ -696,6 +775,40 @@
}
}
break;
+ //鐚溂
+ case SPK.Peephole:
+ LogicView.FunTypeView viewPeephole = new LogicView.FunTypeView();
+ viewPeephole.btnText.TextID = StringId.ActivityDetection;
+ //viewPeephole.btnText.Name = Language.StringByID(StringId.shipinmensuo);
+ fLayout.AddChidren(viewPeephole.FLayoutView());
+ viewPeephole.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ this.identifier = "pir_event";//浜轰綋鎰熷簲鍛婅
+ this.DeviceView(device, viewPeephole.btnState, StringId.shi, StringId.offLogic, 1);
+
+ };
+ if (edit)
+ {
+ this.GetEditState(device, index, viewPeephole.btnState, null, null, null);
+ }
+ break;
+ //钀ょ煶鎽勫儚澶�
+ case SPK.Ev_Ipcam:
+ LogicView.FunTypeView viewEzIpcam = new LogicView.FunTypeView();
+ viewEzIpcam.btnText.TextID = StringId.ActivityDetection;
+ //viewEzIpcam.btnText.Name = Language.StringByID(StringId.shipinmensuo);
+ fLayout.AddChidren(viewEzIpcam.FLayoutView());
+ viewEzIpcam.btnClick.MouseUpEventHandler += (sender, e) =>
+ {
+ this.identifier = Constant.intelligentDetection_event;//浜轰綋鎰熷簲鍛婅
+ this.DeviceView(device, viewEzIpcam.btnState, StringId.shi, StringId.offLogic, 1);
+
+ };
+ if (edit)
+ {
+ this.GetEditState(device, index, viewEzIpcam.btnState, null, null, null);
+ }
+ break;
}
#region 淇濆瓨
@@ -747,16 +860,32 @@
inputDevice.condition = new List<Dictionary<string, string>>();
}
}
+ else if(device.spk == SPK.Peephole)
+ {
+ //鐚溂-浜轰綋鎰熷簲鍛婅
+ inputDevice.condition_type = "9";
+ inputDevice.identifier = this.identifier;
+ inputDevice.condition = new List<Dictionary<string, string>>();
+ }
+ else if(device.spk == SPK.Ev_Ipcam)
+ {
+ //钀ょ煶鎽勫儚澶�-绉诲姩鐩戞祴鍛婅
+ inputDevice.condition_type = "9";
+ inputDevice.identifier = this.identifier;
+ inputDevice.condition = new List<Dictionary<string, string>>();
+ }
else if (device.spk == SPK.VideoDoorLock)
{
////钀ょ煶瑙嗛闂ㄩ攣
inputDevice.condition_type = "9";
inputDevice.identifier = this.identifier;
+ //inputDevice.condition = new List<Dictionary<string, string>>();
}
else if (device.spk == SPK.SensorPirHold)
{
//浜轰綋瀛樺湪浼犳劅鍣�
inputDevice.hold_time = this.hold_time;
+ inputDevice.detect_type = this.detect_type;
}
@@ -809,7 +938,7 @@
/// <param name="button">閫変腑鐘舵�佹樉绀烘枃鏈珺tn鎺т欢</param>
/// <param name="btnText1">灞炴�х姸鎬佸�兼枃鏈�1</param>
/// <param name="btnText2">灞炴�х姸鎬佸�兼枃鏈�2</param>
- /// <param name="viewCount">view鏁伴噺</param>
+ /// <param name="viewCount">view鏁伴噺,榛樿2涓獀iew</param>
private void DeviceView(Entity.Function device, Button button, int btnText1, int btnText2,int viewCount=2)
{
FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
@@ -826,6 +955,7 @@
case SPK.SensorGas:
case SPK.SensorWater:
case SPK.SensorSmoke:
+ case SPK.SensorHelp:
{
keyVlaue = "status";
if (!Is_SpkAttribute(keyVlaue)) {
@@ -896,12 +1026,14 @@
{
case StringId.xieluo:
case StringId.luoshui:
+ case StringId.qiujiu:
{
value = "alarm";
}
break;
case StringId.wuxieluo:
case StringId.wuluoshui:
+ case StringId.zhengchang:
{
value = "normal";
}
@@ -909,11 +1041,19 @@
case StringId.onLogic:
{
value = "on";
+ if (device.spk== SPK.SensorDryContact) {
+ value = "open";
+ }
+
}
break;
case StringId.offLogic:
{
value = "off";
+ if (device.spk == SPK.SensorDryContact)
+ {
+ value = "close";
+ }
}
break;
case StringId.youren:
@@ -1013,6 +1153,7 @@
{
if (edit)
{
+ this.function = device;
Input inputs = Logic.currlogic.input[index];
//娓呴櫎涔嬪墠鏃ф暟鎹�
dicSateteList.Clear();
@@ -1022,44 +1163,65 @@
dicSateteList.AddRange(inputs.condition);
}
}
+ int max = 100;
+ int min = 1;
+ if (device.spk == SPK.SensorLight)
+ {
+ //鐓ф槑浼犳劅鍣�
+ min = 0;
+ max =1200;
+ }
+
new LogicView.TipPopView { }.InputBox(textInt, stateValue, (value) =>
{
- string keyValue = "20";
+ string key = "20";
string data_type = "integer";
string comparator = "=";
switch (textInt)
{
case StringId.wendugaoyu:
{
- keyValue = "temperature";
+ key = "temperature";
comparator = ">";
data_type = "float";
}
break;
case StringId.wendudiyu:
{
- keyValue = "temperature";
+ key = "temperature";
comparator = "<";
data_type = "float";
}
break;
case StringId.shidugaoyu:
{
- keyValue = "humidity";
+ key = "humidity";
comparator = ">";
}
break;
case StringId.shidudiyu:
{
- keyValue = "humidity";
+ key = "humidity";
comparator = "<";
}
break;
+ case StringId.zhaomingdugaoyu:
+ {
+ key = "illuminance";
+ comparator = ">";
+ }
+ break;
+ case StringId.zhaomingdudiyu:
+ {
+ key = "illuminance";
+ comparator = "<";
+ }
+ break ;
}
selectedState = device.spk + "_" + value;
- AddDictionary(keyValue, value, data_type, comparator);
+ AddDictionary(key, value, data_type, comparator);
SaveInput(device,index, edit);
- });
+ },min,max);
}
/// PM2.5,Co2,Tvoc璁剧疆鍊�
/// </summary>
@@ -1149,27 +1311,30 @@
if (indexeList.Count > 0)
{
dicSateteList.Clear();
- string s = string.Empty;
+ string userNameStr = string.Empty;
+ string seleUsrIdStr = string.Empty;
string tag = string.Empty;
- //鏁版嵁灏佽
+ string[] arrayUserIds = new string[indexeList.Count];
+ //寮�闂ㄧ被鍨�
AddDictionary("open_type", "1", "integer");
for (int i = 0; i < indexeList.Count; i++)
{
-
if (i > faceIdList.Count)
{
continue;
}
var indexe = indexeList[i];
var face = faceIdList[indexe];
- AddDictionary("user_id", face.userId, "string");
- s += face.userName;
- s += ",";
tag += face.userId;
tag += "_";
+ userNameStr += face.userName;
+ userNameStr += ",";
+ arrayUserIds[i] = face.userId;
}
+ seleUsrIdStr = Newtonsoft.Json.JsonConvert.SerializeObject(arrayUserIds);
+ AddDictionary("user_id", seleUsrIdStr, "string", "[]");
//鐣岄潰鏄剧ず閫変腑鍊�
- btnState.Text = s;
+ btnState.Text = InpOrOutLogicMethod.Current.RemoveLastStr(userNameStr);
btnState.Tag = tag;
}
@@ -1217,8 +1382,10 @@
if (indexeList.Count > 0)
{
dicSateteList.Clear();
- string s = string.Empty;
+ string seleTxet = string.Empty;
string tag = string.Empty;
+ string[] array = new string[indexeList.Count];
+
for (int i = 0; i < indexeList.Count; i++)
{
if (i > faceIdList.Count)
@@ -1227,15 +1394,15 @@
}
var indexe = indexeList[i];
var face = faceIdList[indexe];
- //鏁版嵁灏佽<楂樿儨璇磋悿鐭抽偅杈规槸鎺ㄩ�佺敤鎴峰悕>
- AddDictionary("open_user", face.userName, "string");
- s += face.userName;
- s += ",";
tag += face.userId;
tag += "_";
+ array[i] = face.userName;
}
+ seleTxet = Newtonsoft.Json.JsonConvert.SerializeObject(array);
+ //鏁版嵁灏佽<楂樿儨璇磋悿鐭抽偅杈规槸鎺ㄩ�佺敤鎴峰悕>
+ AddDictionary("open_user",seleTxet, "string", "[]");
//鐣岄潰鏄剧ず閫変腑鍊�
- btnState.Text = s;
+ btnState.Text = InpOrOutLogicMethod.Current.RemoveLastStr(seleTxet);
btnState.Tag = tag;
}
@@ -1281,7 +1448,7 @@
this.hold_time = (h + m + s).ToString();
if (button != null)
{
- button.Text = this.hold_time + "s";
+ button.Text = LogicMethod.Current.getTimeStr(this.hold_time);
button.Name = timeValue;
}
selectedState = device.spk + "_" + timeValue;
@@ -1313,7 +1480,32 @@
//鏈夋暟鎹噸鏂拌祴鍊�
dicSateteList.AddRange(dicList);
}
- InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4);
+ //浜嬩欢涓撶敤
+ switch (device.spk)
+ {
+ case SPK.IpCam_Imou:
+ {
+ if (inputs.identifier == "ipcam_region_alram_event")
+ {
+ button1.Text = Language.StringByID(StringId.shi);
+ }
+
+ }
+ break;
+ case SPK.Peephole:
+ if (inputs.identifier == "pir_event")
+ {
+ button1.Text = Language.StringByID(StringId.shi );
+ }
+ break;
+ case SPK.Ev_Ipcam:
+ if (inputs.identifier == Constant.intelligentDetection_event)
+ {
+ button1.Text = Language.StringByID(StringId.shi);
+ }
+ break;
+ }
+ InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4, "");
}
/// <summary>
/// 娣诲姞閫変腑鏁版嵁
@@ -1405,7 +1597,7 @@
string value = dic["value"];
if (dictionaryA["key"] == key && dictionaryA["comparator"] == comparatorValue)
{
- if (this.checkSpk())
+ if (this.CheckSpk())
{
//鏈変簺璁惧闇�瑕佸鍔犺繖涓垽鏂�
if (dictionaryA["value"] == value)
@@ -1429,8 +1621,12 @@
/// 妫�鏌ユ槸鍚︽敮鎸�
/// </summary>
/// <returns></returns>
- private bool checkSpk()
+ private bool CheckSpk()
{
+ if (this.function == null)
+ {
+ return false;
+ }
if (this.function.spk == SPK.VideoDoorLock ||
this.function.spk == SPK.doorgate
)
@@ -1448,7 +1644,10 @@
/// <returns></returns>
public bool IsContainsAll(List<Dictionary<string, string>> dictionaryA, List<Dictionary<string, string>> dictionaryB)
{
-
+ if (dictionaryA.Count == 0 || dictionaryB.Count == 0) {
+ //钀ょ煶鐚溂锛屾憚鍍忓ご锛屽ぇ鍗庢憚鍍忓ご鍙湁浜嬩欢锛屾病鏈夎緭鍏ユ潯浠�
+ return true;
+ }
for (int i = 0; i < dictionaryA.Count; i++)
{
var dic = dictionaryA[i];
--
Gitblit v1.8.0