From 207b7261e989e4271578eddb933b33ba008379bb Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 22 十一月 2021 14:14:25 +0800
Subject: [PATCH] 1
---
HDL_ON/Entity/FunctionList.cs | 153 ++++++++++++++++++++++++++------------------------
1 files changed, 79 insertions(+), 74 deletions(-)
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 707c057..b76cae2 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -5,6 +5,7 @@
using HDL_ON.Common;
using HDL_ON.DAL;
using HDL_ON.DAL.Server;
+using HDL_ON.DriverLayer;
using Shared;
namespace HDL_ON.Entity
@@ -127,7 +128,7 @@
/// </summary>
public List<Function> GetEnvirSensorsList()
{
- var spkList = SPK.EnvironSpkList();
+ var spkList = SPK.EnvironDeviceSpkList();
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
/// <summary>
@@ -174,6 +175,7 @@
/// </summary>
public List<SecurityAlarm> securities = new List<SecurityAlarm>();
+
/// <summary>
/// 鍔犺浇鍔熻兘鍒楄〃
/// </summary>
@@ -184,73 +186,79 @@
/// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param>
public void IniFunctionList(string filePath, bool checkRepeat = false)
{
- MainPage.Log("鍒濆鍖栧姛鑳芥暟鎹�");
- // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃
- if (filePath.StartsWith("FunctionData_"))
+ try
{
- var functionDataBytes = FileUtlis.Files.ReadFile(filePath);
- var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes);
- var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString);
- if (tempFunction == null)
+ // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃
+ if (filePath.StartsWith("FunctionData_"))
{
- MainPage.Log("null");
- FileUtlis.Files.DeleteFile(filePath);
- return;
- }
- //闊充箰閮ㄥ垎瑕佷慨鏀�
- //if(tempFunction.spk.ToString() == SPK.MusicStandard)
- //{
- // UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString));
- //}
- if (checkRepeat == true)
- {
- //妫�娴嬮噸澶�
- for (int i = 0; i < Functions.Count; i++)
+ var functionDataBytes = FileUtlis.Files.ReadFile(filePath);
+ var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes);
+ var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString);
+ if (tempFunction == null)
{
- if (Functions[i].deviceId == tempFunction.deviceId)
+ MainPage.Log("null");
+ FileUtlis.Files.DeleteFile(filePath);
+ return;
+ }
+ //闊充箰閮ㄥ垎瑕佷慨鏀�
+ //if(tempFunction.spk.ToString() == SPK.MusicStandard)
+ //{
+ // UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString));
+ //}
+ if (checkRepeat == true)
+ {
+ //妫�娴嬮噸澶�
+ for (int i = 0; i < Functions.Count; i++)
{
- //鍏堢Щ闄ゆ帀鍐嶅姞
- Functions.RemoveAt(i);
- Functions.Add(tempFunction);
- return;
+ if (Functions[i].deviceId == tempFunction.deviceId)
+ {
+ //鍏堢Щ闄ゆ帀鍐嶅姞
+ Functions.RemoveAt(i);
+ Functions.Add(tempFunction);
+ return;
+ }
}
}
+ Functions.Add(tempFunction);
}
- Functions.Add(tempFunction);
- }
- if (filePath.StartsWith("SceneData_"))
- {
- var sceneDataBytes = FileUtlis.Files.ReadFile(filePath);
- var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes);
- var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(sceneDataString);
- List.scenes.Add(tempScene);
- }
- else if (filePath.StartsWith("SecurityData_"))
- {
- var dataBytes = FileUtlis.Files.ReadFile(filePath);
- var dataString = System.Text.Encoding.UTF8.GetString(dataBytes);
- var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString);
- if (temp == null)
+ if (filePath.StartsWith("SceneData_"))
{
- MainPage.Log("null");
- FileUtlis.Files.DeleteFile(filePath);
- return;
+ var sceneDataBytes = FileUtlis.Files.ReadFile(filePath);
+ var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes);
+ var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(sceneDataString);
+ List.scenes.Add(tempScene);
}
- if (checkRepeat == true)
+ else if (filePath.StartsWith("SecurityData_"))
{
- //妫�娴嬮噸澶�
- for (int i = 0; i < securities.Count; i++)
+ var dataBytes = FileUtlis.Files.ReadFile(filePath);
+ var dataString = System.Text.Encoding.UTF8.GetString(dataBytes);
+ var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString);
+ if (temp == null)
{
- if (securities[i].sid == temp.sid)
+ MainPage.Log("null");
+ FileUtlis.Files.DeleteFile(filePath);
+ return;
+ }
+ if (checkRepeat == true)
+ {
+ //妫�娴嬮噸澶�
+ for (int i = 0; i < securities.Count; i++)
{
- //鍏堢Щ闄ゆ帀鍐嶅姞
- securities.RemoveAt(i);
- securities.Add(temp);
- return;
+ if (securities[i].sid == temp.sid)
+ {
+ //鍏堢Щ闄ゆ帀鍐嶅姞
+ securities.RemoveAt(i);
+ securities.Add(temp);
+ return;
+ }
}
}
+ securities.Add(temp);
}
- securities.Add(temp);
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"IniFunctionList error : {ex.Message}");
}
}
@@ -278,11 +286,14 @@
break;
case SPK.BrandType.Tuya:
- foreach (var function in Functions)
+ lock (Functions)
{
- if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk))
+ foreach (var function in Functions)
{
- resultFunctions.Add(function);
+ if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk))
+ {
+ resultFunctions.Add(function);
+ }
}
}
break;
@@ -414,24 +425,18 @@
{
foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl))
{
- switch (function.Spk_Prefix)
- {
- case FunctionCategory.Music:
- case FunctionCategory.DryContact:
- continue;
- }
- DriverLayer.Control.Ins.SendReadCommand(function);
- //switch (function.Spk_Prefix)
- //{
- // case FunctionCategory.Light:
- // case FunctionCategory.Electric:
- // case FunctionCategory.Curtain:
- // case FunctionCategory.AC:
- // case FunctionCategory.FloorHeat:
- // case FunctionCategory.Sensor:
- // DriverLayer.Control.Ins.SendReadCommand(function);
- // break;
- //}
+ Control.Ins.SendReadCommand(function);
+ }
+ if(DB_ResidenceData.Instance.GatewayType == 1)
+ {
+ Dictionary<string, string> pairs = new Dictionary<string, string>();
+ string sendId = Control.Ins.msg_id.ToString();
+ pairs.Add("id", sendId);
+ pairs.Add("time_stamp", Utlis.GetTimestamp());
+ var readSecurityStatusJson = Newtonsoft.Json.JsonConvert.SerializeObject(pairs);
+ var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadSecurityStatus, readSecurityStatusJson);
+ MainPage.Log($"鏈湴閫氳 璇诲彇瀹夐槻鐘舵��:{readSecurityStatusJson}");
+ new Control_Udp().SendLocalHdlLinkData(sendBytes, sendId);
}
}
else
--
Gitblit v1.8.0