using System;
|
using System.Collections.Generic;
|
using Newtonsoft.Json.Linq;
|
|
namespace HDL_ON.Entity
|
{
|
public class Light : Function
|
{
|
/*
|
灯光类:trait: [switch,brightness,color,cct,delay,fadeTime]
|
属性 描述
|
switch on/off;
|
brightness 0-100;
|
color int (red (0-255) green (0-255) blue (0-255))
|
cct int (warm light(0-255) cold light (0-255) )
|
delay 0-3600s
|
fadetime 0-3600s
|
*/
|
public Light()
|
{
|
}
|
|
[Newtonsoft.Json.JsonIgnore]
|
FunctionAttributes trait_brightness;
|
/// <summary>
|
/// 亮度值
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int brightness
|
{
|
get
|
{
|
if (trait_brightness == null)
|
{
|
trait_brightness = attributes.Find((obj) => obj.key == "brightness");
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_brightness == null)
|
{
|
trait_brightness = new FunctionAttributes()
|
{
|
key = "brightness",
|
value = new List<string> { "up", "down" },
|
max = 100,
|
min = 0,
|
curValue = 0,
|
};
|
}
|
if (trait_brightness.curValue.ToString() == "{}")
|
trait_brightness.curValue = 0;
|
}
|
return Convert.ToInt32(trait_brightness.curValue);
|
}
|
set
|
{
|
try
|
{
|
if (trait_brightness == null)
|
{
|
trait_brightness = attributes.Find((obj) => obj.key == "brightness");
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_brightness == null)
|
{
|
trait_brightness = new FunctionAttributes()
|
{
|
key = "brightness",
|
value = new List<string> { "up", "down" },
|
max = 100,
|
min = 0,
|
curValue = 0
|
};
|
}
|
}
|
trait_brightness.curValue = value;
|
}
|
catch
|
{
|
MainPage.Log("brightness 数据刷新失败.");
|
}
|
}
|
}
|
/// <summary>
|
/// 上一次打开的亮度
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int lastBrightness = 100;
|
[Newtonsoft.Json.JsonIgnore]
|
FunctionAttributes trait_fadeTime;
|
/// <summary>
|
/// 亮度值
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int fadeTime
|
{
|
get
|
{
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime);
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = new FunctionAttributes()
|
{
|
key = FunctionAttributeKey.FadeTime,
|
value = new List<string> { "up", "down" },
|
max = 10,
|
min = 0,
|
curValue = 0
|
};
|
}
|
}
|
int result = 0;
|
int.TryParse(trait_fadeTime.curValue.ToString(), out result);
|
return result;
|
}
|
set
|
{
|
try
|
{
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime);
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = new FunctionAttributes()
|
{
|
key = FunctionAttributeKey.FadeTime,
|
value = new List<string> { "up", "down" },
|
max = 100,
|
min = 0,
|
curValue = 0
|
};
|
}
|
}
|
trait_fadeTime.curValue = value;
|
}
|
catch
|
{
|
}
|
}
|
}
|
/// <summary>
|
/// 获取rgb颜色
|
/// </summary>
|
/// <returns></returns>
|
public int GetRGBcolor()
|
{
|
if (trait_color == null)
|
{
|
trait_color = attributes.Find((obj) => obj.key == FunctionAttributeKey.RGB);
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_color == null)
|
{
|
trait_color = new FunctionAttributes()
|
{
|
key = "color",
|
value = new List<string> { "255,255,255" },
|
curValue = "255,255,255"
|
};
|
}
|
if (trait_color.curValue.ToString() == "{}")
|
trait_color.curValue = "255,255,255";
|
int.TryParse(trait_color.curValue.ToString().Split(",")[0], out redColor);
|
int.TryParse(trait_color.curValue.ToString().Split(",")[1], out greenColor);
|
int.TryParse(trait_color.curValue.ToString().Split(",")[2], out blueColor);
|
}
|
|
int recolor = redColor * 256 * 256 + greenColor * 256 + blueColor;
|
|
return recolor;
|
}
|
/// <summary>
|
/// 获取rgb 控制字符串
|
/// </summary>
|
/// <returns></returns>
|
public string GetRGBcolorString()
|
{
|
return redColor + "," + greenColor + "," + blueColor;
|
}
|
|
/// <summary>
|
/// 设置rgb颜色
|
/// </summary>
|
public void SetRGBcolor(byte[] color)
|
{
|
redColor = color[0];
|
greenColor = color[1];
|
blueColor = color[2];
|
}
|
|
[Newtonsoft.Json.JsonIgnore]
|
public FunctionAttributes trait_color;
|
int redColor = 255;
|
int greenColor = 255;
|
int blueColor = 255;
|
|
public int RedColor {
|
get
|
{
|
return redColor;
|
}
|
}
|
public int GreenColor {
|
get
|
{
|
return greenColor;
|
}
|
}
|
public int BlueColor
|
{
|
get
|
{
|
return blueColor;
|
}
|
}
|
}
|
}
|