From b1ced15165c0c120483f821079fc23c63d455e8e Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 05 三月 2021 17:54:49 +0800
Subject: [PATCH] 2021-3-5-1
---
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs | 258 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 223 insertions(+), 35 deletions(-)
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
index 4825826..0bc89c6 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
@@ -11,26 +11,26 @@
/// <summary>
/// 娣诲姞閬ユ帶鍣ㄧ殑鏂规硶
/// </summary>
- public void AddControl(FrameLayout frameLayout,Action<Control> action)
+ public void AddControl(FrameLayout frameLayout, Action<Control> action)
{
View.TipView tipView = new View.TipView();
- tipView.InputBox(frameLayout,"", (name, frame) =>
- {
- ///娓呴櫎涔嬪墠鍒楄〃鏁版嵁
- Pir.BuottonList.Clear();
- if (!string.IsNullOrEmpty(name))
- {
- Control control = new Control();
- control.name = name;
- control.type = "learn";
- control.spk = "ir.learn";
-
- ThreadAddControl(control, frame, action);
+ tipView.InputBox(frameLayout, "", (name, frame) =>
+ {
+ ///娓呴櫎涔嬪墠鍒楄〃鏁版嵁
+ Pir.BuottonList.Clear();
+ if (!string.IsNullOrEmpty(name))
+ {
+ Control control = new Control();
+ control.name = name;
+ control.type = "learn";
+ control.spk = "ir.learn";
+ control.deviceId = Pir.currPir.deviceId;
+ ThreadAddControl(control, frame, action);
- }
- }, false);
+ }
+ }, false);
}
/// <summary>
@@ -38,7 +38,8 @@
/// </summary>
/// <param name="control"></param>
/// <param name="frame"></param>
- public void ThreadAddControl(Control control, FrameLayout frame,Action<Control> action) {
+ public void ThreadAddControl(Control control, FrameLayout frame, Action<Control> action)
+ {
DAL.Server.ResponsePackNew responsePackNew = null;
Loading loading = new Loading();
@@ -56,10 +57,26 @@
Application.RunOnMainThread(() =>
{
loading.Hide();
- if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
- {
+ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+ {
+ bool bool_if = false;
string sid = responsePackNew.Data.ToString();
- if (string.IsNullOrEmpty(Sid(sid)))
+ var mqttdate = MqttDate();
+ for (int i = 0; i < mqttdate.objects.Count; i++) {
+ var objects = mqttdate.objects[i];
+ if (sid == objects.sid) {
+ bool_if = true;
+ break;
+ }
+ }
+ if (bool_if)
+ {
+ control.deviceId = mqttdate.id;
+ ///杩欓噷锛氱洃鍚琈TTP鎺ㄩ�佷笅鏉ヤ富棰橈紝鎵嶇煡閬撴槸鍚︽坊鍔犳垚鍔�
+ frame.RemoveFromParent();//娣诲姞鎴愬姛鍏抽棴寮圭獥
+ action(control);
+ }
+ else
{
//鐩戝惉Mqtt鎺ㄩ�佷笅鏉ョ姸鎬佺爜鍋氭彁绀�
View.FailView failView = new View.FailView();
@@ -69,14 +86,8 @@
ThreadAddControl(control, frame, action);
});
}
- else
- {
- ///杩欓噷锛氱洃鍚琈TTP鎺ㄩ�佷笅鏉ヤ富棰橈紝鎵嶇煡閬撴槸鍚︽坊鍔犳垚鍔�
- frame.RemoveFromParent();//娣诲姞鎴愬姛鍏抽棴寮圭獥
- action(control);
- }
-
+
}
else
{
@@ -88,7 +99,152 @@
{ IsBackground = true }.Start();
}
-
+
+ /// <summary>
+ /// 鑾峰彇绾㈠璁惧鍒楄〃
+ /// </summary>
+ public static void GetPirDeviceList(FrameLayout frame, Action action)
+ {
+ //娓呴櫎涔嬪墠鍒楄〃;
+ Pir.pirDeviceList.Clear();
+ //鍔犺浇log
+ Loading loading = new Loading();
+ frame.AddChidren(loading);
+ HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
+ loading.Start();
+ new System.Threading.Thread(() =>
+ {
+ try
+ {
+ responsePackNew = PirSend.GetDeviceList("ir.module");
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ loading.Hide();
+ try
+ {
+ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+ {
+ var jobject = Newtonsoft.Json.Linq.JObject.Parse(responsePackNew.Data.ToString());
+ string list = jobject["list"].ToString();
+
+ var jArray = Newtonsoft.Json.Linq.JArray.Parse(list);
+ for (int a = 0; a < jArray.Count; a++)
+ {
+ var jay = jArray[a];
+ string spk = jay["spk"].ToString();
+ if (spk == "ir.module")
+ {
+ //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
+ var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+ var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Pir>(str);
+ if (pirJosn != null)
+ {
+ if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
+ {
+
+ Pir.pirDeviceList.Add(pirJosn);
+
+ }
+ }
+ }
+
+ }
+ GetControlList(frame, action);
+
+ }
+ else
+ {
+ Method method = new Method();
+ method.ErrorShow(responsePackNew);
+ }
+ }
+ catch { }
+
+ });
+ }
+
+ })
+ { IsBackground = true }.Start();
+
+ }
+ /// <summary>
+ /// 鑾峰彇閬ユ帶鍣ㄥ垪琛�
+ /// </summary>
+ public static void GetControlList(FrameLayout frame, Action action)
+ {
+ //鍔犺浇log
+ Loading loading = new Loading();
+ frame.AddChidren(loading);
+ HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
+ loading.Start();
+ new System.Threading.Thread(() =>
+ {
+ try
+ {
+ for (int i = 0; i < Pir.pirDeviceList.Count; i++)
+ {
+ var pirDevice = Pir.pirDeviceList[i];
+ try
+ {
+ responsePackNew = PirSend.ControlList(pirDevice);
+
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ try
+ {
+ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+ {
+ var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString());
+ for (int a = 0; a < jArray.Count; a++)
+ {
+ var jay = jArray[a];
+ //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
+ var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+ var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(str);
+ if (pirJosn != null)
+ {
+ if (null == pirDevice.FunctioList.Find((c) => c.sid == pirJosn.sid))
+ {
+ pirDevice.FunctioList.Add(pirJosn);
+ }
+ }
+
+ }
+ }
+ else
+ {
+ //Method method = new Method();
+ //method.ErrorShow(responsePackNew);
+ }
+ }
+ catch { }
+
+ });
+ }
+ }
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ loading.Hide();
+ action();
+ });
+ }
+ })
+ { IsBackground = true }.Start();
+
+ }
+
/// <summary>
/// MQTT涓婚鎺ㄩ�佷笅鏉ョ殑鏁版嵁(閬ユ帶鍣ㄦ坊鍔�)
/// </summary>
@@ -96,26 +252,40 @@
/// <summary>
///
/// </summary>
- /// <param name="sid"></param>
/// <returns></returns>
- public string Sid(string sid)
+ public Cloud MqttDate()
{
var dateTime = DateTime.Now;
- while ((DateTime.Now - dateTime).TotalMilliseconds < 5* 1000)
+ while ((DateTime.Now - dateTime).TotalMilliseconds < 5 * 1000)
{
- if (!string.IsNullOrEmpty(addcontronsid) && addcontronsid == sid)
+ if (!string.IsNullOrEmpty(addcontronsid))
{
break;
}
}
- return addcontronsid;
+ return PushData();
}
+
+ public Cloud PushData()
+ {
+ Cloud cloud = new Cloud();
+ if (addcontronsid != "")
+ {
+ //var date = Newtonsoft.Json.JsonConvert.SerializeObject(addcontronsid);
+ cloud = Newtonsoft.Json.JsonConvert.DeserializeObject<Cloud>(addcontronsid);
+
+ }
+ return cloud;
+ }
+
+
+
/// <summary>
/// 閿欒鐮佹彁绀�
/// </summary>
/// <param name="responsePackNew"></param>
- public void ErrorShow(ResponsePackNew responsePackNew)
+ public void ErrorShow(ResponsePackNew responsePackNew)
{
if (responsePackNew != null && responsePackNew.Code == "14005")
@@ -129,7 +299,25 @@
}
}
-
+
}
-
+ [Serializable]
+ public class Cloud
+ {
+ /// <summary>
+ /// 璁惧id
+ /// </summary>
+ public string id = string.Empty;
+ public List<Objects> objects = new List<Objects>();
+ public string time_stamp = string.Empty;
+
+
+ }
+ [Serializable]
+ public class Objects
+ {
+ public string sid = string.Empty;
+ public string spk = string.Empty;
+ }
+
}
--
Gitblit v1.8.0