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/DAL/Server/NewAPI.cs | 6
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs | 15 +
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs | 126 ++--------
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs | 40 +--
.vs/HDL_APP_Project/xs/UserPrefs.xml | 41 ++-
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs | 24 -
HDL_ON/DAL/Mqtt/MqttClient.cs | 9
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs | 103 +++++++-
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs | 258 ++++++++++++++++++++---
9 files changed, 399 insertions(+), 223 deletions(-)
diff --git a/.vs/HDL_APP_Project/xs/UserPrefs.xml b/.vs/HDL_APP_Project/xs/UserPrefs.xml
index d825d53..8d9a23d 100644
--- a/.vs/HDL_APP_Project/xs/UserPrefs.xml
+++ b/.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,27 +1,42 @@
锘�<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
<MonoDevelop.Ide.ItemProperties.HDL-ON__iOS automaticSigning="False" PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-001674E61438002E" />
- <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs">
+ <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs">
<Files>
- <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs" Line="234" Column="18" />
- <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs" />
- <File FileName="HDL-ON_Android/Assets/Language.ini" />
- <File FileName="HDL_ON/Common/R.cs" />
- <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TipPopView.cs" />
- <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs" />
- <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs" />
- <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs" />
- <File FileName="HDL_ON/UI/CSS/CSS.cs" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" Line="276" Column="82" />
+ <File FileName="HDL_ON/DAL/Mqtt/MqttClient.cs" Line="294" Column="1" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs" Line="170" Column="1" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs" Line="12" Column="33" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs" Line="10" Column="23" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs" Line="50" Column="46" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/View/SaveView.cs" Line="11" Column="57" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs" Line="267" Column="70" />
+ <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/BrandList.cs" Line="435" Column="63" />
+ <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs" Line="147" Column="32" />
+ <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/Set.cs" Line="8" Column="16" />
+ <File FileName="HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs" Line="252" Column="18" />
</Files>
<Pads>
<Pad Id="ProjectPad">
<State name="__root__">
<Node name="HDL_APP_Project" expanded="True">
<Node name="HDL_ON" expanded="True">
+ <Node name="Common" expanded="True" />
+ <Node name="DAL" expanded="True">
+ <Node name="Mqtt" expanded="True" />
+ <Node name="Server" expanded="True" />
+ </Node>
+ <Node name="Entity" expanded="True">
+ <Node name="Function" expanded="True" />
+ </Node>
<Node name="UI" expanded="True">
<Node name="UI2" expanded="True">
+ <Node name="3-Intelligence" expanded="True">
+ <Node name="Automation" expanded="True" />
+ </Node>
<Node name="4-PersonalCenter" expanded="True">
<Node name="PirDevice" expanded="True">
- <Node name="PirSend.cs" selected="True" />
+ <Node name="View" expanded="True" />
+ <Node name="Method.cs" selected="True" />
</Node>
</Node>
</Node>
@@ -41,7 +56,9 @@
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
<MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.4b65c4650918" />
<MonoDevelop.Ide.DebuggingService.Breakpoints>
- <BreakpointStore />
+ <BreakpointStore>
+ <Breakpoint file="/Users/hdl/Desktop/wjc/HDL_APP_Project/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" relfile="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" line="274" column="1" />
+ </BreakpointStore>
</MonoDevelop.Ide.DebuggingService.Breakpoints>
<MultiItemStartupConfigurations />
</Properties>
\ No newline at end of file
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index a7dea34..d597565 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -194,7 +194,7 @@
//App璁㈤槄绾㈠瀹� / 缃戝叧閬ユ帶鍣ㄦ坊鍔犳垚鍔熼�氱煡
var pirStatus = new MqttTopicFilter()
{
- Topic = $"/user/${DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found",
+ Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found",
QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
};
@@ -287,10 +287,11 @@
ReceiveNotifySqueezeAsync(mMes);
}
//App璁㈤槄绾㈠瀹�/缃戝叧閬ユ帶鍣ㄦ坊鍔犳垚鍔熼�氱煡
- else if (topic == $"/user/${DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found")
+ else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.RegionID}/app/thing/topo/found")
{
- var ss = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
- HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.addcontronsid = ss;
+ var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
+ var revString = Encoding.UTF8.GetString(bytes);
+ HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.addcontronsid = revString;
//ReceiveCheckGateway(ss);
//return;
}
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index c78788f..c1bdf1d 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -495,11 +495,7 @@
/// </summary>
public const string API_POST_Ir_CodeRemove = "/home-wisdom/app/device/ir/codeRemove";
/// <summary>
- /// 閬ユ帶鍣ㄥ垹闄�
- /// </summary>
- public const string API_POST_Ir_DeviceRemove = "/home-wisdom/program/device/delete";
- /// <summary>
- /// 绾㈠瀹濆垹闄�
+ /// 绾㈠瀹�/閬ユ帶鍣ㄥ垹闄�
/// </summary>
public const string API_POST_Ir_DeviceDel= "/home-wisdom/app/device/remove";
/// <summary>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index 99458f3..17453a7 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -263,10 +263,17 @@
// var page = new ThirdPartyBrandListPage();
// MainPage.BasePageView.AddChidren(page);
// page.LoadPage();
- var page = new UI2.PersonalCenter.PirDevice.PirMain();
- MainPage.BasePageView.AddChidren(page);
- page.Show();
- MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ //鑾峰彇鍒楄〃
+ HDL_ON.UI.UI2.PersonalCenter.PirDevice.Method.GetPirDeviceList(this, () =>
+ {
+ Application.RunOnMainThread(() =>
+ {
+ var page = new UI2.PersonalCenter.PirDevice.PirMain();
+ MainPage.BasePageView.AddChidren(page);
+ page.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ });
+ });
};
btnResidenceAddFunctionIcon.MouseUpEventHandler = eventHandler;
btnResidenceAddFunctionText.MouseUpEventHandler = eventHandler;
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs
index 7a72667..d7b7c56 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/DeviceSet.cs
@@ -11,7 +11,8 @@
{
Tag = "PirView";
}
- public void Show() {
+ public void Show()
+ {
#region 鐣岄潰甯冨眬
this.BackgroundColor = CSS.CSS_Color.viewMiddle;
PirDevice.View.TopView topView = new View.TopView();
@@ -19,10 +20,25 @@
topView.topIconBtn.Visible = true;
this.AddChidren(topView.FLayoutView());
topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); };
- VerticalScrolViewLayout vv = new VerticalScrolViewLayout();
+ VerticalRefreshLayout vv = new VerticalRefreshLayout();
vv.Height = Application.GetRealHeight(667 - 64);
vv.Y = Application.GetRealHeight(64);
this.AddChidren(vv);
+ vv.BeginHeaderRefreshingAction += () =>
+ {
+ //鍏抽棴鍒锋柊View锛�
+ vv.EndHeaderRefreshing();
+ //鑾峰彇鍒楄〃
+ Method.GetPirDeviceList(this,() =>
+ {
+ Application.RunOnMainThread(() =>
+ {
+ //鍒锋柊鐣岄潰
+ UIView(vv);
+ });
+ });
+
+ };
#endregion
UIView(vv);
@@ -31,16 +47,17 @@
/// 鍔犺浇UI鐣岄潰
/// </summary>
/// <param name="vv">涓婁笅婊戞帶浠�</param>
- void UIView(VerticalScrolViewLayout vv) {
+ void UIView(VerticalRefreshLayout vv)
+ {
vv.RemoveAll();
- int a = 3;
for (int i = 0; i < Pir.pirDeviceList.Count; i++)
{
+ var pirDevice = Pir.pirDeviceList[i];
#region 绾㈠瀹濆浘鏍� 鐗堟湰鍙� 鍚嶇О 鐘舵��
FrameLayout fLayout = new FrameLayout
{
Width = Application.GetRealWidth(375),
- Height = Application.GetRealHeight(12 + 92 + (50 * a)),
+ Height = Application.GetRealHeight(12 + 92 + (50 * pirDevice.FunctioList.Count)),
};
vv.AddChidren(fLayout);
@@ -50,7 +67,7 @@
Y = Application.GetRealHeight(12),
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(375 - 16 * 2),
- Height = Application.GetRealHeight(92 + (50 * a)),
+ Height = Application.GetRealHeight(92 + (50 * pirDevice.FunctioList.Count)),
BackgroundColor = CSS.CSS_Color.view,
Radius = (uint)Application.GetRealHeight(12),
};
@@ -75,7 +92,7 @@
X = priequipmentBtn.Right + Application.GetRealWidth(7),
Width = Application.GetRealWidth(120),
Height = Application.GetRealHeight(20),
- Text = "绾㈠瀹滱" + i.ToString(),
+ Text = pirDevice.name,
TextAlignment = TextAlignment.CenterLeft,
TextSize = TextSize.text14,
TextColor = CSS.CSS_Color.textColor,
@@ -102,7 +119,7 @@
X = priequipmentBtn.Right + Application.GetRealWidth(7),
Width = Application.GetRealWidth(120),
Height = Application.GetRealHeight(17),
- Text = "2",
+ Text = pirDevice.FunctioList.Count.ToString(),
TextAlignment = TextAlignment.CenterLeft,
TextSize = TextSize.text12,
TextColor = CSS.CSS_Color.textConfirmColor,
@@ -163,15 +180,16 @@
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(375 - 16 * 2),
Height = Application.GetRealHeight(92),
- BackgroundColor = CSS.CSS_Color.view,
+ BackgroundColor = 0x00000000, //CSS.CSS_Color.view,
Radius = (uint)Application.GetRealHeight(12),
Tag = Pir.pirDeviceList[i],
};
fLayout.AddChidren(clickFram);
- clickFram.MouseUpEventHandler += (sender, e) => {
+ clickFram.MouseUpEventHandler += (sender, e) =>
+ {
var pirclick = (clickFram.Tag as Pir);
- NewSwitchView( pirclick, vv);
+ NewSwitchView(pirclick, vv);
};
if (Pir.pirDeviceList.Count - 1 == i)
@@ -181,8 +199,9 @@
}
#endregion
- for (int j = 0; j < a; j++)
+ for (int j = 0; j < pirDevice.FunctioList.Count; j++)
{
+ var control = pirDevice.FunctioList[i];
RowLayout funControlRow = new RowLayout
{
Y = Application.GetRealHeight(92 + (50 * j)),
@@ -198,7 +217,7 @@
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(150),
Height = Application.GetRealHeight(20),
- Text = j.ToString(),
+ Text = control.name,
TextAlignment = TextAlignment.CenterLeft,
TextSize = TextSize.text14,
TextColor = CSS.CSS_Color.textColor,
@@ -239,6 +258,7 @@
TextColor = CSS.CSS_Color.textWhiteColor,
IsBold = true,
BackgroundColor = CSS.CSS_Color.textRedColor,
+ Tag = control,
};
funControlRow.AddRightView(delBtn);
//绾�
@@ -251,15 +271,54 @@
BackgroundColor = CSS.CSS_Color.viewLine,
};
funControlRow.AddChidren(line1Btn);
- if (j == a - 1)
+ if (j == pirDevice.FunctioList.Count - 1)
{
//鏈�鍚庢敼鍙樹竴涓嚎鐨勯鑹�
line1Btn.BackgroundColor = CSS.CSS_Color.viewTranslucence;
funControlRow.LineColor = CSS.CSS_Color.viewTranslucence;
}
- delBtn.MouseUpEventHandler += (sender, e) => {
+ delBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ var Function = delBtn.Tag as Entity.Function;
+ //鍔犺浇log
+ Loading loading = new Loading();
+ this.AddChidren(loading);
+ HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
+ loading.Start();
+ new System.Threading.Thread(() =>
+ {
+ try
+ {
+ responsePackNew = PirSend.DeleteDevice(Function.deviceId);
+ }
+ catch { }
+ finally
+ {
+ Application.RunOnMainThread(() =>
+ {
+ loading.Hide();
+ try
+ {
+ if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+ {
+ pirDevice.FunctioList.Remove(Function);
+ UIView(vv);
+ }
+ else
+ {
+ Method method = new Method();
+ method.ErrorShow(responsePackNew);
+ }
+ }
+ catch { }
+
+ });
+ }
+
+ })
+ { IsBackground = true }.Start();
};
}
@@ -272,7 +331,8 @@
/// </summary>
/// <param name="pirclick"></param>
/// <param name="vv"></param>
- void NewSwitchView(Pir pirclick,VerticalScrolViewLayout vv) {
+ void NewSwitchView(Pir pirclick, VerticalRefreshLayout vv)
+ {
FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
this.AddChidren(frame);
SwitchView switchView = new SwitchView();
@@ -324,7 +384,8 @@
})
{ IsBackground = true }.Start();
- }, () => {
+ }, () =>
+ {
NewSwitchView(pirclick, vv);
}, false);
@@ -333,7 +394,8 @@
{
string text = Language.StringByID(StringId.shanchushebei) + pirclick.name + "?";
TipPopView tipPopView = new TipPopView();
- tipPopView.TipBox(StringId.tip, text, (dialog) => {
+ tipPopView.TipBox(StringId.tip, text, (dialog) =>
+ {
//鍔犺浇log
Loading loading = new Loading();
dialog.AddChidren(loading);
@@ -368,12 +430,15 @@
})
{ IsBackground = true }.Start();
- }, () => {
+ }, () =>
+ {
NewSwitchView(pirclick, vv);
}, false);
}
});
}
+
+
}
}
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;
+ }
+
}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
index cc45c1f..e985b71 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Pir.cs
@@ -3,7 +3,7 @@
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
{
[System.Serializable]
- public class Pir
+ public class Pir: Entity.Function
{
/// <summary>
/// 娣诲姞鎸夐敭鍒楄〃
@@ -15,36 +15,15 @@
/// </summary>
public static Pir currPir;
/// <summary>
- /// 璁惧ID
+ /// 閬ユ帶鍣ㄥ垪琛�
/// </summary>
- public string deviceId = string.Empty;
- public string homeId = string.Empty;
- public string gatewayId = string.Empty;
- public string name = string.Empty;
- public string sid = string.Empty;
- public string spk = string.Empty;
- public string oid = string.Empty;
- public string omodel = string.Empty;
- public bool collect =false;
- public bool online = false;
- public string controlCounter = string.Empty;
+ public List<Entity.Function> FunctioList = new List<Entity.Function>();
- public List<Attributes> attributes = new List<Attributes>();
+ }
+
-}
-[Serializable]
-public class Attributes
-{
- public string key = string.Empty;
- public string data_type = string.Empty;
- public int max = 0;
- public int min = 0;
- public int sort = 0;
- public List<string> value = new List<string>();
-}
-
-
-public class Control
+ [System.Serializable]
+ public class Control
{
/// <summary>
/// 绾㈠瀹濊澶嘔d
@@ -75,6 +54,7 @@
/// </summary>
public List<ButtonObj> status = new List<ButtonObj>();
}
+ [System.Serializable]
public class ButtonObj
{
public string Key = string.Empty;
@@ -83,6 +63,7 @@
/// </summary>
public string value = string.Empty;
}
+ [System.Serializable]
public class DeviceType
{
/// <summary>
@@ -94,6 +75,7 @@
/// </summary>
public string deviceType = string.Empty;
}
+ [System.Serializable]
public class Brand
{
/// <summary>
@@ -127,5 +109,5 @@
public string irIndex = string.Empty;
}
-
+
}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
index 1aebd1f..902b7ee 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -10,7 +10,7 @@
public PirMain()
{
Tag = "PirMain";
- GetPirDeviceList();
+
}
/// <summary>
/// 涓存椂鍌ㄥ瓨璁惧绫诲瀷鍒楄〃
@@ -179,7 +179,8 @@
Text = "mini鏅鸿兘閬ユ帶鍣�",
};
deviceListFLayout.AddChidren(deviceNameBtn);
- if (Pir.pirDeviceList.Count!=0) {
+ if (Pir.pirDeviceList.Count != 0)
+ {
deviceNameBtn.Text = Pir.pirDeviceList[0].name;
Pir.currPir = Pir.pirDeviceList[0];
}
@@ -209,7 +210,7 @@
fLayout.RemoveFromParent();
};
- FrameLayout iconFLyout = new FrameLayout
+ FrameLayout iconFLyout = new FrameLayout
{
X = Application.GetRealWidth(205),
Y = Application.GetRealHeight(314),
@@ -219,14 +220,14 @@
};
fLayout.AddChidren(iconFLyout);
- FrameLayout textFLyout = new FrameLayout
+ FrameLayout textFLyout = new FrameLayout
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(144),
Height = Application.GetRealHeight(44),
};
- VerticalScrolViewLayout vv = new VerticalScrolViewLayout
+ VerticalScrolViewLayout vv = new VerticalScrolViewLayout
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(14),
@@ -234,7 +235,7 @@
Height = Application.GetRealHeight(44 * 4),
};
- if (Pir.pirDeviceList.Count >4)
+ if (Pir.pirDeviceList.Count > 4)
{
iconFLyout.Height = Application.GetRealHeight(21 + 44 * 4);
iconFLyout.AddChidren(vv);
@@ -252,8 +253,8 @@
for (int i = 0; i < Pir.pirDeviceList.Count; i++)
{
- var pirJson = Pir.pirDeviceList[i];
- View.PirNameView pirNameView = new View.PirNameView();
+ var pirJson = Pir.pirDeviceList[i];
+ View.PirNameView pirNameView = new View.PirNameView();
if (Pir.pirDeviceList.Count > 4)
{
vv.AddChidren(pirNameView.FLayoutView());
@@ -330,7 +331,8 @@
if (if_value == 7)
{
Method method = new Method();
- method.AddControl(this,(control) => {
+ method.AddControl(this, (control) =>
+ {
AddButton addButton = new AddButton();
MainPage.BasePageView.AddChidren(addButton);
addButton.Show(control);
@@ -347,35 +349,36 @@
}
GetBrandList(jobDeviceType.id, (brandList) =>
{
- var brandSupportStrList= GetBrandSupport(if_value);
+ var brandSupportStrList = GetBrandSupport(if_value);
var strList = new List<string>();
for (int str = 0; str < brandList.Count; str++)
{
string s = brandList[str].brandName;
- var bool_if = brandSupportStrList.Find((c)=>s.Contains(c));
- if (bool_if!=null)
+ var bool_if = brandSupportStrList.Find((c) => s.Contains(c));
+ if (bool_if != null)
{
strList.Add(s);
}
}
- Application.RunOnMainThread(()=> {
+ Application.RunOnMainThread(() =>
+ {
BrandList brandObj = new BrandList();
MainPage.BasePageView.AddChidren(brandObj);
brandObj.Show(brandList, strList, strings[1]);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
});
-
+
});
-
+
}
-
+
};
}
GetDeviceTypeList();
-
+
}
/// <summary>
/// 鑾峰彇鍝佺墝鏀寔
@@ -425,7 +428,7 @@
{
}
break;
-
+
}
return strList;
@@ -442,13 +445,13 @@
case 1:
{
//绌鸿皟
- type = "ac-"+SPK.AcIr;
+ type = "ac-" + SPK.AcIr;
}
break;
case 2:
{
//鐢佃
- type = "tv-"+SPK.ElectricTV;
+ type = "tv-" + SPK.ElectricTV;
}
break;
case 3:
@@ -460,22 +463,22 @@
case 4:
{
//鏈洪《鐩�
- // type = "set_top_box-" + SPK.ElectricTV;
+ // type = "set_top_box-" + SPK.ElectricTV;
}
break;
case 5:
{
- //褰辩鏈�
- // type = "dvd-" + SPK.ElectricTV;
+ //褰辩鏈�
+ // type = "dvd-" + SPK.ElectricTV;
}
break;
case 6:
{
//鎶曞奖浠�
- // type = "projector-" + SPK.ElectricTV;
+ // type = "projector-" + SPK.ElectricTV;
}
break;
-
+
}
return type;
@@ -573,11 +576,10 @@
}
}, "", "璁惧绫诲瀷鍒楄〃");
}
-
/// <summary>
/// 璇诲彇绾㈠璁惧绫诲瀷鐨勫搧鐗屽垪琛�
/// </summary>
- private void GetBrandList(string id,Action<List<Brand>> actionBrand)
+ private void GetBrandList(string id, Action<List<Brand>> actionBrand)
{
List<Brand> brandList = new List<Brand>();
PirSend.GetDeviceTypesList(this, (responsePackNew) =>
@@ -610,74 +612,6 @@
}
}, id, "鍝佺墝鍒楄〃");
}
-
-
- /// <summary>
- /// 鑾峰彇绾㈠璁惧鍒楄〃
- /// </summary>
- private void GetPirDeviceList( )
- {
-
- //鍔犺浇log
- Loading loading = new Loading();
- this.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);
- }
- }
- }
-
- }
- }
- else
- {
- Method method = new Method();
- method.ErrorShow(responsePackNew);
- }
- }
- catch { }
-
- });
- }
-
- })
- { IsBackground = true }.Start();
- }
-
}
-
+
}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
index 537f1a0..6c253dc 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -53,9 +53,9 @@
/// <summary>
/// 鑾峰彇閬ユ帶鍣ㄥ垪琛�
/// </summary>
- public static ResponsePackNew GetList()
+ public static ResponsePackNew ControlList(Pir pir)
{
- var jObject = new JObject { { "homeId", HomeId }, { "deviceId", pirId } };
+ var jObject = new JObject { { "homeId", HomeId }, { "deviceId", pir.deviceId } };
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_List);
return responsePackNew;
}
@@ -69,7 +69,7 @@
{
var jObject = new JObject { };
jObject.Add("homeId", HomeId);
- jObject.Add("deviceId", pirId);
+ jObject.Add("deviceId", control.deviceId);
jObject.Add("name", control.name);
jObject.Add("spk", control.spk);
jObject.Add("type", control.type);
@@ -95,7 +95,7 @@
{
var jObject = new JObject { };
jObject.Add("homeId", HomeId);
- jObject.Add("deviceId", pirId);
+ jObject.Add("deviceId", control.deviceId);
jObject.Add("spk", control.spk);
if (control.spk== Entity.SPK.AcStandard) {
jObject.Add("group_id", control.group_id);
@@ -181,23 +181,9 @@
var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_CodeRemove);
return responsePackNew;
}
- /// <summary>
- /// 閬ユ帶鍣ㄥ垹闄�
- /// </summary>
- /// <returns></returns>
- public static ResponsePackNew DeleteControl(string deviceId)
- {
- var job = new JObject { };
- job.Add("deviceId", deviceId);
- var jArray = new JArray { };
- jArray.Add(job);
- var jObject = new JObject { { "homeId", HomeId }, { "deviceId", pirId }, { "devices", jArray } };
- var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Ir_DeviceRemove);
- return responsePackNew;
- }
/// <summary>
- /// 绾㈠瀹濊澶囧垹闄�
+ /// 绾㈠瀹�/閬ユ帶鍣ㄥ垹闄�
/// </summary>
/// <returns></returns>
public static ResponsePackNew DeleteDevice(string deviceId)
--
Gitblit v1.8.0