From bfb9e8297311985a2614f73ce288051ecbf9f8b5 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 04 十一月 2021 11:52:02 +0800
Subject: [PATCH] 2021-11-04-01
---
HDL_ON/Entity/FunctionList.cs | 227 +++++++++++++++++++++++++++++++++++---------------------
1 files changed, 142 insertions(+), 85 deletions(-)
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index fdb28f3..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
@@ -101,6 +102,7 @@
return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
+
/// <summary>
/// 绾㈠瀹濆垪琛�
/// </summary>
@@ -108,15 +110,26 @@
{
return Functions.FindAll((obj) => obj.spk == SPK.IrModule);
}
-
#endregion
+
+ /// <summary>
+ /// 闊充箰鍒楄〃
+ /// </summary>
+ /// <returns></returns>
+ public List<Function> GetMusicList()
+ {
+ var spkList = SPK.MusicSpkList();
+ return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+ }
+
+
/// <summary>
/// 鐜浼犳劅鍣ㄥ垪琛�
/// </summary>
public List<Function> GetEnvirSensorsList()
{
- var spkList = SPK.EnvironSpkList();
- return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+ var spkList = SPK.EnvironDeviceSpkList();
+ return Functions.FindAll((obj) => spkList.Contains(obj.spk));
}
/// <summary>
/// 瀹夐槻璁惧鍒楄〃
@@ -128,9 +141,29 @@
}
/// <summary>
- /// 鍙瀵硅鍒楄〃
+ /// 鍙瀵硅鍒楄〃,褰撲负null鎴杝ize涓�0鍒欎笉鏄剧ず鍙瀵硅icon
/// </summary>
- public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
+ // public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
+ public List<UI.UI2.FuntionControlView.Video.Video> videoIntercom = new List<UI.UI2.FuntionControlView.Video.Video>();
+
+ List<Function> _OtherBrandFunction;
+ /// <summary>
+ /// 绗笁鏂瑰搧鐗屽姛鑳�
+ /// </summary>
+ public List<Function> OtherBrandFunction
+ {
+ get
+ {
+ if(_OtherBrandFunction == null)
+ {
+ _OtherBrandFunction = new List<Function>();
+ var spkList = SPK.GetAll3tySPK();
+ _OtherBrandFunction = Functions.FindAll((obj) => spkList.Contains(obj.spk));
+ }
+ return _OtherBrandFunction;
+ }
+ }
+
/// <summary>
/// 鍦烘櫙鍒楄〃
@@ -142,6 +175,7 @@
/// </summary>
public List<SecurityAlarm> securities = new List<SecurityAlarm>();
+
/// <summary>
/// 鍔犺浇鍔熻兘鍒楄〃
/// </summary>
@@ -152,67 +186,79 @@
/// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param>
public void IniFunctionList(string filePath, bool checkRepeat = false)
{
- // 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 (checkRepeat == true)
- {
- //妫�娴嬮噸澶�
- for (int i = 0; i < Functions.Count; i++)
- {
- if (Functions[i].deviceId == tempFunction.deviceId)
- {
- //鍏堢Щ闄ゆ帀鍐嶅姞
- Functions.RemoveAt(i);
- Functions.Add(tempFunction);
- return;
- }
- }
- }
- Functions.Add(tempFunction);
- }
- else 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)
- {
- MainPage.Log("null");
- FileUtlis.Files.DeleteFile(filePath);
- return;
- }
- if (checkRepeat == true)
- {
- //妫�娴嬮噸澶�
- for (int i = 0; i < securities.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 (securities[i].sid == temp.sid)
+ 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++)
{
- //鍏堢Щ闄ゆ帀鍐嶅姞
- securities.RemoveAt(i);
- securities.Add(temp);
- return;
+ if (Functions[i].deviceId == tempFunction.deviceId)
+ {
+ //鍏堢Щ闄ゆ帀鍐嶅姞
+ Functions.RemoveAt(i);
+ Functions.Add(tempFunction);
+ return;
+ }
}
}
+ Functions.Add(tempFunction);
}
- securities.Add(temp);
+ 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)
+ {
+ MainPage.Log("null");
+ FileUtlis.Files.DeleteFile(filePath);
+ return;
+ }
+ if (checkRepeat == true)
+ {
+ //妫�娴嬮噸澶�
+ for (int i = 0; i < securities.Count; i++)
+ {
+ if (securities[i].sid == temp.sid)
+ {
+ //鍏堢Щ闄ゆ帀鍐嶅姞
+ securities.RemoveAt(i);
+ securities.Add(temp);
+ return;
+ }
+ }
+ }
+ securities.Add(temp);
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"IniFunctionList error : {ex.Message}");
}
}
@@ -240,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;
@@ -254,6 +303,9 @@
return Functions;
}
+
+
+
/// <summary>
/// 娓呯┖璁惧鍔熻兘鍒楄〃
@@ -308,6 +360,7 @@
List.scenes.Remove(scene);
}
}
+
/// <summary>
/// 鍒犻櫎鏈湴鍔熻兘鍙婃枃浠�
/// </summary>
@@ -372,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
@@ -425,6 +472,7 @@
})
{ IsBackground = true }.Start();
}
+
#region 鍦烘櫙鐩稿叧
/// <summary>
/// 娣诲姞鍦烘櫙
@@ -436,11 +484,20 @@
var revPack = pm.AddScene(scene);
if (revPack.Code == StateCode.SUCCESS)
{
- var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString());
- tempScene = sceneList.Find((obj) => obj.sid == scene.sid);
- var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
- FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
- result = tempScene;
+ if (MainPage.NoLoginMode)
+ {
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(scene));
+ FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
+ result = scene;
+ }
+ else
+ {
+ var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString());
+ tempScene = sceneList.Find((obj) => obj.sid == scene.sid);
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
+ FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
+ result = tempScene;
+ }
}
else
{
--
Gitblit v1.8.0