| | |
| | | public Light() |
| | | { |
| | | } |
| | | |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | FunctionAttributes trait_brightness; |
| | | /// <summary> |
| | | /// 亮度值 |
| | | /// </summary> |
| | |
| | | { |
| | | get |
| | | { |
| | | string b = "0"; |
| | | dicPropert.TryGetValue("brightness", out b); |
| | | return Convert.ToInt32(b == "" ? "0" : b); |
| | | 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, |
| | | }; |
| | | } |
| | | trait_brightness.curValue = trait_brightness.min; |
| | | } |
| | | if(trait_brightness.curValue.ToString() == "") |
| | | { |
| | | trait_brightness.curValue = 0; |
| | | } |
| | | return Convert.ToInt32(trait_brightness.curValue); |
| | | } |
| | | set |
| | | { |
| | | try |
| | | { |
| | | dicPropert["brightness"] = value.ToString(); |
| | | 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, |
| | | }; |
| | | } |
| | | trait_brightness.curValue = trait_brightness.min; |
| | | } |
| | | trait_brightness.curValue = value; |
| | | MainPage.Log($"brightness 数据刷新{value}."); |
| | | } |
| | | catch |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | FunctionAttributes trait_fadeTime; |
| | | /// <summary> |
| | | /// RGB颜色 |
| | | /// 255255255 |
| | | /// 亮度值 |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public string color |
| | | public int fadeTime |
| | | { |
| | | get |
| | | { |
| | | string c = "255255255"; |
| | | dicPropert.TryGetValue("color", out c); |
| | | if (c.Length != 9) |
| | | if (trait_fadeTime == null) |
| | | { |
| | | dicPropert["color"] = "255255255"; |
| | | trait_fadeTime = attributes.Find((obj) => obj.key == "fade_time"); |
| | | //找不到属性需要声明一个,防止报错闪退 |
| | | if (trait_fadeTime == null) |
| | | { |
| | | trait_fadeTime = new FunctionAttributes() |
| | | { |
| | | key = "fade_time", |
| | | value = new List<string> { "up", "down" }, |
| | | max = 10, |
| | | min = 0, |
| | | }; |
| | | trait_fadeTime.curValue = 0; |
| | | attributes.Add(trait_fadeTime); |
| | | } |
| | | } |
| | | return c.Length == 9 ? c : "255255255"; |
| | | int result = 0; |
| | | int.TryParse(trait_fadeTime.curValue.ToString(), out result); |
| | | return result; |
| | | } |
| | | set |
| | | { |
| | | try |
| | | { |
| | | dicPropert["color"] = value.ToString(); |
| | | if (trait_fadeTime == null) |
| | | { |
| | | trait_fadeTime = attributes.Find((obj) => obj.key == "fade_time"); |
| | | //找不到属性需要声明一个,防止报错闪退 |
| | | if (trait_fadeTime == null) |
| | | { |
| | | trait_fadeTime = new FunctionAttributes() |
| | | { |
| | | key = "fade_time", |
| | | value = new List<string> { "up", "down" }, |
| | | max = 100, |
| | | min = 0, |
| | | }; |
| | | trait_fadeTime.curValue = 0; |
| | | attributes.Add(trait_fadeTime); |
| | | } |
| | | } |
| | | trait_fadeTime.curValue = value; |
| | | } |
| | | catch |
| | | { |
| | | } |
| | | } |
| | | } |
| | | |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public FunctionAttributes trait_color; |
| | | /// <summary> |
| | | /// RGB颜色 |
| | | /// 255255255 |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public int color |
| | | { |
| | | get |
| | | { |
| | | if (trait_color == null) |
| | | { |
| | | trait_color = attributes.Find((obj) => obj.key == "color"); |
| | | //找不到属性需要声明一个,防止报错闪退 |
| | | if (trait_color == null) |
| | | { |
| | | trait_color = new FunctionAttributes() |
| | | { |
| | | key = "color", |
| | | value = new List<string> { "FFFFFF" }, |
| | | max = 0xFFFFFF, |
| | | min = 0x00000F, |
| | | }; |
| | | } |
| | | trait_color.curValue = trait_color.min; |
| | | } |
| | | return Convert.ToInt32(trait_color.curValue); |
| | | } |
| | | set |
| | | { |
| | | try |
| | | { |
| | | trait_color.curValue = value; |
| | | } |
| | | catch |
| | | { |
| | |
| | | } |
| | | } |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public byte redColor |
| | | public int redColor |
| | | { |
| | | get { |
| | | try |
| | | { |
| | | return Convert.ToByte(color.Substring(0, 3)); |
| | | return color >> 16; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | dicPropert["color"] = dicPropert["color"].ToString().Remove(0, 3).Insert(0, value.ToString().PadLeft(3, '0')); |
| | | var rc = value << 16; |
| | | color = rc + (color & 0xFFFF); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | } |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public byte greenColor |
| | | public int greenColor |
| | | { |
| | | get |
| | | { |
| | | try |
| | | { |
| | | return Convert.ToByte(color.Substring(3, 3)); |
| | | return (color & 0xFFFF) >> 8; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | dicPropert["color"] = dicPropert["color"].ToString().Remove(3, 3).Insert(3, value.ToString().PadLeft(3, '0')); |
| | | var gc = value << 8; |
| | | color = gc + (color & 0xFF00FF); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | } |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public byte blueColor |
| | | public int blueColor |
| | | { |
| | | get |
| | | { |
| | | try |
| | | { |
| | | return Convert.ToByte(color.Substring(6, 3)); |
| | | return color & 0xFF; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | dicPropert["color"] = dicPropert["color"].ToString().Remove(6, 3).Insert(6, value.ToString().PadLeft(3, '0')); |
| | | color = value + (color & 0xFFFF00); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"set blue color error : {ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 拼接、获取A协议操作数据 |
| | | /// </summary> |
| | | public override JObject GetSendJObject(string command ) |
| | | { |
| | | var sendJob = new JObject(); |
| | | if (command == "write") |
| | | { |
| | | |
| | | sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command }, { "Type", "device" } }; |
| | | JObject data = null; |
| | | switch (functionType) |
| | | { |
| | | case FunctionType.Relay: |
| | | data = new JObject { { "sid", sid }, { "switch", on_off } }; |
| | | break; |
| | | case FunctionType.Dimmer: |
| | | data = new JObject { { "sid", sid }, { "brightness", brightness } }; |
| | | break; |
| | | case FunctionType.RGB: |
| | | data = new JObject { { "sid", sid }, { "brightness", brightness }, { "color", color } }; |
| | | break; |
| | | } |
| | | sendJob.Add("objects", data); |
| | | } |
| | | else if (command == "read") |
| | | { |
| | | sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command }, { "Type", "device" } }; |
| | | var data = new JObject {{ "sid", sid } }; |
| | | sendJob.Add("objects", data); |
| | | } |
| | | return sendJob; |
| | | } |
| | | } |
| | | } |