using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using HDL_ON.DAL;
|
|
namespace HDL_ON.Entity
|
{
|
public class FunctionList
|
{
|
public FunctionList()
|
{
|
|
}
|
|
/// <summary>
|
/// 空调列表
|
/// </summary>
|
public List<AC> aCs = new List<AC>();
|
/// <summary>
|
/// 灯光列表
|
/// </summary>
|
public List<Light> lights = new List<Light>();
|
/// <summary>
|
/// 窗帘列表
|
/// </summary>
|
public List<Curtain> curtains = new List<Curtain>();
|
/// <summary>
|
/// 地热列表
|
/// </summary>
|
public List<FloorHeating> floorHeatings = new List<FloorHeating>();
|
#region 家电列表 electricals
|
/// <summary>
|
/// 家电列表
|
/// </summary>
|
public List<Function> electricals
|
{
|
get
|
{
|
if(fans == null)
|
{
|
fans = new List<Fan>();
|
}
|
if(switchSockets == null)
|
{
|
switchSockets = new List<SwitchSocket>();
|
}
|
if(tVs == null)
|
{
|
tVs = new List<TV>();
|
}
|
var list = new List<Function>();
|
list.AddRange(fans);
|
list.AddRange(switchSockets);
|
list.AddRange(tVs);
|
return list;
|
}
|
}
|
/// <summary>
|
/// 风扇列表
|
/// </summary>
|
public List<Fan> fans = new List<Fan>();
|
/// <summary>
|
/// 电视列表
|
/// </summary>
|
public List<TV> tVs = new List<TV>();
|
/// <summary>
|
/// 家电列表
|
/// </summary>
|
public List<SwitchSocket> switchSockets = new List<SwitchSocket>();
|
#endregion
|
/// <summary>
|
/// 环境传感器列表
|
/// </summary>
|
public List<Sensor> sensorsEnvironmentalScience = new List<Sensor>();
|
|
/// <summary>
|
/// 场景列表
|
/// </summary>
|
public List<Scene> scenes = new List<Scene>();
|
/// <summary>
|
/// 功能列表
|
/// </summary>
|
List<Function> deviceFunctionList;
|
//[Newtonsoft.Json.JsonIgnore]
|
//public List<Function> functions = new List<Function>();
|
|
|
|
/// <summary>
|
/// 获取所有功能列表
|
/// </summary>
|
public List<Function> GetAllFunction()
|
{
|
var fs = new List<Function>();
|
fs.AddRange(GetAllDeviceFunctionList());
|
fs.AddRange(scenes);
|
return fs;
|
}
|
|
/// <summary>
|
/// 获取设备功能列表
|
/// </summary>
|
public List<Function> GetAllDeviceFunctionList()
|
{
|
if (deviceFunctionList == null)
|
{
|
deviceFunctionList = new List<Function>();
|
deviceFunctionList.AddRange(aCs);
|
deviceFunctionList.AddRange(lights);
|
deviceFunctionList.AddRange(curtains);
|
deviceFunctionList.AddRange(floorHeatings);
|
deviceFunctionList.AddRange(electricals);
|
deviceFunctionList.AddRange(sensorsEnvironmentalScience);
|
deviceFunctionList.AddRange(UI.Music.A31MusicModel.A31MusicModelList);
|
}
|
try
|
{
|
deviceFunctionList.OrderByDescending(o => o.usageCount).ToList();
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"设备功能排序异常:{ex.Message}");
|
}
|
return deviceFunctionList;
|
}
|
/// <summary>
|
/// 清空设备功能列表
|
/// </summary>
|
public void ClearAllDeviceFunctionList()
|
{
|
aCs = new List<AC>();
|
lights = new List<Light>();
|
curtains = new List<Curtain>();
|
floorHeatings = new List<FloorHeating>();
|
tVs = new List<TV>();
|
switchSockets = new List<SwitchSocket>();
|
fans = new List<Fan>();
|
sensorsEnvironmentalScience = new List<Sensor>();
|
//functions = new List<Function>();
|
scenes = new List<Scene>();
|
deviceFunctionList = null;
|
}
|
|
/// <summary>
|
/// 接收bus软件上传的功能
|
/// tcp方式
|
/// </summary>
|
/// <param name="sidObj"></param>
|
public void AddDeviceFunction(Function sidObj0)
|
{
|
switch (sidObj0.functionType)
|
{
|
case FunctionType.AC:
|
var sidObj = Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.aCs.Add(sidObj);
|
sidObj.SaveFunctionData();
|
break;
|
case FunctionType.FloorHeating:
|
var sidObj1 = Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.floorHeatings.Add(sidObj1);
|
sidObj1.SaveFunctionData();
|
break;
|
case FunctionType.Dimmer:
|
case FunctionType.RGB:
|
case FunctionType.Relay:
|
var sidObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.lights.Add(sidObj2);
|
sidObj2.SaveFunctionData();
|
break;
|
case FunctionType.Curtain:
|
case FunctionType.RollingShutter:
|
case FunctionType.MotorCurtain:
|
var sidObj3 = Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.curtains.Add(sidObj3 );
|
sidObj3.SaveFunctionData();
|
break;
|
case FunctionType.TV:
|
var sidObj4 = Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.tVs.Add(sidObj4);
|
sidObj4.SaveFunctionData();
|
break;
|
case FunctionType.Socket:
|
var sidObj5 = Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.switchSockets.Add(sidObj5);
|
sidObj5.SaveFunctionData();
|
break;
|
case FunctionType.Fan:
|
var sidObj6 = Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.fans.Add(sidObj6);
|
sidObj6.SaveFunctionData();
|
break;
|
case FunctionType.CO2:
|
case FunctionType.TVOC:
|
case FunctionType.PM25:
|
case FunctionType.Temp:
|
case FunctionType.Humidity:
|
var sidObj7 = Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(Newtonsoft.Json.JsonConvert.SerializeObject(sidObj0));
|
DB_ResidenceData.functionList.sensorsEnvironmentalScience.Add(sidObj7);
|
sidObj7.SaveFunctionData();
|
break;
|
}
|
}
|
/// <summary>
|
/// 接收bus软件上传的功能
|
/// http udp
|
/// </summary>
|
/// <param name="obj"></param>
|
public void AddFunction(object obj)
|
{
|
var f = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(obj.ToString());
|
|
switch (f.functionCategory)
|
{
|
case FunctionCategory.Thermostat:
|
switch (f.functionType)
|
{
|
case FunctionType.AC:
|
aCs.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<AC>(obj.ToString()));
|
break;
|
case FunctionType.FloorHeating:
|
floorHeatings.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<FloorHeating>(obj.ToString()));
|
break;
|
}
|
break;
|
case FunctionCategory.Light:
|
lights.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Light>(obj.ToString()));
|
break;
|
case FunctionCategory.Curtain:
|
curtains.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Curtain>(obj.ToString()));
|
break;
|
case FunctionCategory.Electrical:
|
switch(f.functionType)
|
{
|
case FunctionType.TV:
|
electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<TV>(obj.ToString()));
|
break;
|
case FunctionType.Socket:
|
electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<SwitchSocket>(obj.ToString()));
|
break;
|
case FunctionType.Fan:
|
electricals.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Fan>(obj.ToString()));
|
break;
|
}
|
break;
|
case FunctionCategory.Sensor:
|
switch(f.functionType)
|
{
|
case FunctionType.TVOC:
|
case FunctionType.CO2:
|
case FunctionType.PM25:
|
case FunctionType.Humidity:
|
//case FunctionType.Noise:
|
sensorsEnvironmentalScience.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Sensor>(obj.ToString()));
|
break;
|
}
|
break;
|
}
|
}
|
}
|
|
}
|