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]
|
Trait trait_brightness;
|
/// <summary>
|
/// 亮度值
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int brightness
|
{
|
get
|
{
|
if (trait_brightness == null)
|
{
|
trait_brightness = function.Find((obj) => obj.name == "brightness");
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_brightness == null)
|
{
|
trait_brightness = new Trait()
|
{
|
name = "brightness",
|
value_key = new List<string> { "up", "down" },
|
max = 100,
|
min = 0,
|
};
|
}
|
trait_brightness.value = trait_brightness.min;
|
}
|
return Convert.ToInt32(trait_brightness.value);
|
}
|
set
|
{
|
try
|
{
|
if (trait_brightness == null)
|
{
|
trait_brightness = function.Find((obj) => obj.name == "brightness");
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_brightness == null)
|
{
|
trait_brightness = new Trait()
|
{
|
name = "brightness",
|
value_key = new List<string> { "up", "down" },
|
max = 100,
|
min = 0,
|
};
|
}
|
trait_brightness.value = trait_brightness.min;
|
}
|
trait_brightness.value = value;
|
MainPage.Log($"brightness 数据刷新{value}.");
|
}
|
catch
|
{
|
MainPage.Log("brightness 数据刷新失败.");
|
}
|
}
|
}
|
|
[Newtonsoft.Json.JsonIgnore]
|
Trait trait_fadeTime;
|
/// <summary>
|
/// 亮度值
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int fadeTime
|
{
|
get
|
{
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = function.Find((obj) => obj.name == "fade_time");
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = new Trait()
|
{
|
name = "fade_time",
|
value_key = new List<string> { "up", "down" },
|
max = 10,
|
min = 0,
|
};
|
trait_fadeTime.value = 0;
|
function.Add(trait_fadeTime);
|
}
|
}
|
int result = 0;
|
int.TryParse(trait_fadeTime.value.ToString(), out result);
|
return result;
|
}
|
set
|
{
|
try
|
{
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = function.Find((obj) => obj.name == "fade_time");
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_fadeTime == null)
|
{
|
trait_fadeTime = new Trait()
|
{
|
name = "fade_time",
|
value_key = new List<string> { "up", "down" },
|
max = 100,
|
min = 0,
|
};
|
trait_fadeTime.value = 0;
|
function.Add(trait_fadeTime);
|
}
|
}
|
trait_fadeTime.value = value;
|
}
|
catch
|
{
|
}
|
}
|
}
|
|
[Newtonsoft.Json.JsonIgnore]
|
public Trait trait_color;
|
/// <summary>
|
/// RGB颜色
|
/// 255255255
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int color
|
{
|
get
|
{
|
if (trait_color == null)
|
{
|
trait_color = function.Find((obj) => obj.name == "color");
|
//找不到属性需要声明一个,防止报错闪退
|
if (trait_color == null)
|
{
|
trait_color = new Trait()
|
{
|
name = "color",
|
value_key = new List<string> { "FFFFFF" },
|
max = 0xFFFFFF,
|
min = 0x00000F,
|
};
|
}
|
trait_color.value = trait_color.min;
|
}
|
return Convert.ToInt32(trait_color.value);
|
}
|
set
|
{
|
try
|
{
|
trait_color.value = value;
|
}
|
catch
|
{
|
MainPage.Log("color 数据刷新失败.");
|
}
|
}
|
}
|
[Newtonsoft.Json.JsonIgnore]
|
public int redColor
|
{
|
get {
|
try
|
{
|
return color >> 16;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"Get red color error : {ex.Message}");
|
return 0;
|
}
|
}
|
set
|
{
|
try
|
{
|
var rc = value << 16;
|
color = rc + (color & 0xFFFF);
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"set red color error : {ex.Message}");
|
}
|
}
|
}
|
[Newtonsoft.Json.JsonIgnore]
|
public int greenColor
|
{
|
get
|
{
|
try
|
{
|
return (color & 0xFFFF) >> 8;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"Get green color error : {ex.Message}");
|
return 0;
|
}
|
}
|
set
|
{
|
try
|
{
|
var gc = value << 8;
|
color = gc + (color & 0xFF00FF);
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"set green color error : {ex.Message}");
|
}
|
}
|
}
|
[Newtonsoft.Json.JsonIgnore]
|
public int blueColor
|
{
|
get
|
{
|
try
|
{
|
return color & 0xFF;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"Get blue color error : {ex.Message}");
|
return 0;
|
}
|
}
|
set
|
{
|
try
|
{
|
color = value + (color & 0xFFFF00);
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"set blue color error : {ex.Message}");
|
}
|
}
|
}
|
}
|
}
|