From b69d7735274b8d0f741da8a6bb8b8e1347477a5a Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 19 三月 2020 17:14:16 +0800 Subject: [PATCH] 20200319 --- HDL_ON/Entity/Function/Light/Light.cs | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 172 insertions(+), 5 deletions(-) diff --git a/HDL_ON/Entity/Function/Light/Light.cs b/HDL_ON/Entity/Function/Light/Light.cs index b3d064f..7aeb593 100644 --- a/HDL_ON/Entity/Function/Light/Light.cs +++ b/HDL_ON/Entity/Function/Light/Light.cs @@ -42,7 +42,171 @@ /// 0:鍏� /// 1:寮� /// </summary> - public int state = 0; + [Newtonsoft.Json.JsonIgnore] + public int on_off + { + get + { + try + { + string o = "0"; + dicPropert.TryGetValue("on_off", out o); + return Convert.ToInt32(o == "" ? "0" : o); + } + catch + { + MainPage.Log("on_off 鏁版嵁鑾峰彇澶辫触."); + dicPropert.TryAdd("on_off", "0"); + return 0; + } + } + set + { + try + { + dicPropert["on_off"] = value.ToString(); + } + catch + { + MainPage.Log("on_off 鏁版嵁鍒锋柊澶辫触."); + dicPropert.TryAdd("on_off", value.ToString()); + } + } + } + /// <summary> + /// 浜害鍊� + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public int brightness + { + get + { + string b = "0"; + dicPropert.TryGetValue("brightness", out b); + return Convert.ToInt32(b == "" ? "0" : b); + } + set + { + try + { + dicPropert["brightness"] = value.ToString(); + } + catch + { + MainPage.Log("brightness 鏁版嵁鍒锋柊澶辫触."); + } + } + } + + /// <summary> + /// RGB棰滆壊 + /// 255255255 + /// </summary> + [Newtonsoft.Json.JsonIgnore] + public string color + { + get + { + string c = "255255255"; + dicPropert.TryGetValue("color", out c); + if (c.Length != 9) + { + dicPropert["color"] = "255255255"; + } + return c.Length == 9 ? c : "255255255"; + } + set + { + try + { + dicPropert["color"] = value.ToString(); + } + catch + { + MainPage.Log("color 鏁版嵁鍒锋柊澶辫触."); + } + } + } + [Newtonsoft.Json.JsonIgnore] + public byte redColor + { + get { + try + { + return Convert.ToByte(color.Substring(0, 3)); + } + catch (Exception ex) + { + MainPage.Log($"Get red color error : {ex.Message}"); + return 0; + } + } + set + { + try + { + dicPropert["color"] = dicPropert["color"].ToString().Remove(0, 3).Insert(0, value.ToString().PadLeft(3, '0')); + } + catch (Exception ex) + { + MainPage.Log($"set red color error : {ex.Message}"); + } + } + } + [Newtonsoft.Json.JsonIgnore] + public byte greenColor + { + get + { + try + { + return Convert.ToByte(color.Substring(3, 3)); + } + catch (Exception ex) + { + MainPage.Log($"Get green color error : {ex.Message}"); + return 0; + } + } + set + { + try + { + dicPropert["color"] = dicPropert["color"].ToString().Remove(3, 3).Insert(3, value.ToString().PadLeft(3, '0')); + } + catch (Exception ex) + { + MainPage.Log($"set green color error : {ex.Message}"); + } + } + } + [Newtonsoft.Json.JsonIgnore] + public byte blueColor + { + get + { + try + { + return Convert.ToByte(color.Substring(6, 3)); + } + catch (Exception ex) + { + MainPage.Log($"Get blue color error : {ex.Message}"); + return 0; + } + } + set + { + try + { + dicPropert["color"] = dicPropert["color"].ToString().Remove(6, 3).Insert(6, value.ToString().PadLeft(3, '0')); + } + catch (Exception ex) + { + MainPage.Log($"set blue color error : {ex.Message}"); + } + } + } /// <summary> @@ -54,22 +218,25 @@ if (command == "write") { - sendJob = new JObject { { "Namespace", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" } }; + sendJob = new JObject { { "vendor_code", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" } }; JObject data = null; switch (functionType) { case "Relay"://缁х數鍣ㄦ帶鍒� - data = new JObject { { "switch", state }, { "sid", sid } }; + data = new JObject { { "sid", sid }, { "switch", on_off } }; break; case "Dimmer": - data = new JObject { { "switch", state }, { "brightness", dicPropert["brightness"] }, { "sid", sid } }; + data = new JObject { { "sid", sid }, { "brightness", brightness } }; + break; + case "RGB": + data = new JObject { { "sid", sid }, { "brightness", brightness }, { "color", color } }; break; } sendJob.Add("objects", data); } else if(command == "read") { - sendJob = new JObject { { "Namespace", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" } }; + sendJob = new JObject { { "vendor_code", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" } }; var data = new JObject {{ "sid", sid } }; sendJob.Add("objects", data); } -- Gitblit v1.8.0