From 37c33341f75841dc39c535eb62a3603f596516a1 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 27 二月 2020 17:11:53 +0800 Subject: [PATCH] 20200227 --- HDL_ON/DriverLayer/Control.cs | 61 ++++++++++++++++-------------- 1 files changed, 32 insertions(+), 29 deletions(-) diff --git a/HDL_ON/DriverLayer/Control.cs b/HDL_ON/DriverLayer/Control.cs index ddc4a95..c696878 100644 --- a/HDL_ON/DriverLayer/Control.cs +++ b/HDL_ON/DriverLayer/Control.cs @@ -9,10 +9,18 @@ public partial class Control { - + /// <summary> + /// 鍙戦�佸懡浠� + /// 鑷姩鍒ゆ柇鏄惁涓篈鍗忚璁惧锛� + /// 涓嶆槸A鍗忚锛岃嚜鍔ㄨ浆鍖朾us鍛戒护鏁版嵁 + /// </summary> + /// <param name="commandString"></param> + /// <param name="function"></param> + /// <param name="sendCount"></param> + /// <returns></returns> public static byte[] Send(string commandString, Function function, int sendCount = 3) { - if (!string.IsNullOrEmpty(function.bus_Data)) + if (function.bus_Data!=null) { try { @@ -51,7 +59,7 @@ /// </summary> /// <param name="commandString"></param> /// <returns></returns> - static byte[] DataConversion_Bus(JObject commandString,string bus_Data, Function function) + static byte[] DataConversion_Bus(JObject commandString,BusData bus_Data, Function function) { //鍙嶉: //{ @@ -61,44 +69,39 @@ //}] } try { - var sss = JObject.Parse(bus_Data); - var subnetId = Convert.ToByte(sss.GetValue("SubnetID").ToString()); - var deviceId = Convert.ToByte(sss.GetValue("DeviceID").ToString()); - var loopId = sss.GetValue("LoopID").ToString(); + var subnetId = bus_Data.SubnetID; + var deviceId = bus_Data.DeviceID; + var loopId = bus_Data.LoopID; + + var jobj = JObject.FromObject(commandString.GetValue("objects")); + var functionType = jobj.GetValue("sid").ToString().Substring(22, 2);//鎴彇24锛�25瀛楃鑾峰彇鎺у埗鐨勮澶囩殑绫诲瀷 switch (commandString.GetValue("Command").ToString()) { case "write": - var jobj = JObject.FromObject(commandString.GetValue("objects")); - var functionType = jobj.GetValue("sid").ToString().Substring(24, 2);//鎴彇24锛�25瀛楃鑾峰彇鎺у埗鐨勮澶囩殑绫诲瀷 switch ((FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(functionType))) { case FunctionType.Light: - if (jobj.ContainsKey("Switch"))//缁х數鍣� + if (jobj.ContainsKey("switch"))//缁х數鍣� { - var state = jobj.GetValue("Switch").ToString() == "0" ? (byte)0 : (byte)100; - if (jobj.ContainsKey("Dimmer")) - { //璋冨厜鍣� - var brightness = Convert.ToByte(jobj.GetValue("Dimmer").ToString()); - if (brightness > 0) - { - (function as Dimmer).brightness = brightness; - } - (function as Dimmer).state = state; - var bytes = new byte[] { Convert.ToByte(loopId), brightness, 0, 0 }; - (function as Dimmer).lastState = Language.StringByID(StringId.Brightness) + " : " + brightness.ToString() + "%"; - return ControlBytesSendHasReturn(Command.SetSingleLight, subnetId, deviceId, bytes); - } - else//缁х數鍣� - { - var bytes = new byte[] { Convert.ToByte(loopId), state, 0, 0 }; - return ControlBytesSendHasReturn(Command.SetSingleLight, subnetId, deviceId, bytes); - } + var state = jobj.GetValue("switch").ToString() == "0" ? (byte)0 : (byte)100; + var bytes = new byte[] { Convert.ToByte(loopId), state, 0, 0 }; + return ControlBytesSendHasReturn(Command.SetSingleLight, subnetId, deviceId, bytes); } break; } break; case "read": - + switch ((FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(functionType))) + { + case FunctionType.Light: + if (jobj.ContainsKey("switch"))//缁х數鍣� + { + var state = jobj.GetValue("switch").ToString() == "0" ? (byte)0 : (byte)100; + var bytes = new byte[] { Convert.ToByte(loopId), state, 0, 0 }; + return ControlBytesSendHasReturn(Command.ReadLightSingleLoopBrightness, subnetId, deviceId, bytes); + } + break; + } break; } -- Gitblit v1.8.0