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/DriverLayer/Control.cs | 123 ++++++++++++++++++++++++++++------------ 1 files changed, 85 insertions(+), 38 deletions(-) diff --git a/HDL_ON/DriverLayer/Control.cs b/HDL_ON/DriverLayer/Control.cs index 812afed..f1eb051 100644 --- a/HDL_ON/DriverLayer/Control.cs +++ b/HDL_ON/DriverLayer/Control.cs @@ -16,17 +16,16 @@ /// </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) + public static void Send(string commandType, Function function) { if (function.bus_Data!=null) { try { - var ssd = function.GetSendJObject(commandString); - var revBytes = DataConversion_Bus(ssd, function.bus_Data, function); - return revBytes; + //var ssd = function.GetSendJObject(commandString); + ControlBusData(function, commandType); + //return revBytes; } catch (Exception ex) { @@ -50,7 +49,6 @@ //jObject.Add("Data", data); //return revBytes; } - return null; } @@ -59,7 +57,7 @@ /// </summary> /// <param name="commandString"></param> /// <returns></returns> - static byte[] DataConversion_Bus(JObject commandString,BusData bus_Data, Function function) + static void ControlBusData(Function function,string command)//JObject commandString,BusData bus_Data, { //鍙嶉: //{ @@ -69,45 +67,97 @@ //}] } try { - var subnetId = bus_Data.SubnetID; - var deviceId = bus_Data.DeviceID; - var loopId = bus_Data.LoopID; + var subnetId = function.bus_Data.SubnetID; + var deviceId = function.bus_Data.DeviceID; + var loopId = function.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()) + //var jobj = JObject.FromObject(commandString.GetValue("objects")); + //var functionType = jobj.GetValue("sid").ToString().Substring(22, 2);//鎴彇24锛�25瀛楃鑾峰彇鎺у埗鐨勮澶囩殑绫诲瀷 + switch (command) { case "write": - switch ((FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(functionType))) + switch (function.functionCategory) { case FunctionType.Light: - if (jobj.ContainsKey("brightness")) + var light = function as Light; + switch (light.functionType) { - var state = Convert.ToByte(jobj.GetValue("brightness")); - var bytes = new byte[] { Convert.ToByte(loopId), state, 0, 0 }; - return ControlBytesSendHasReturn(Command.SetSingleLight, subnetId, deviceId, bytes); + case "RGB": + byte b = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0 + if (light.on_off == 0) + { + b = 0; + } + else + { + b = (byte)light.brightness == 0 ? (byte)100 : (byte)light.brightness; + } + var bytes = new byte[] { function.bus_Data.LoopID, + b, + 254, 0,0,3, + light.redColor,light.greenColor, + light.blueColor, + 0,0}; + ControlBytesSend(Command.SetLogicLoopColor, subnetId, deviceId, bytes); + break; + case "Dimmer": + byte b1 = 100; + if (light.on_off == 0) + { + b1 = 0; + } + else + { + b1 = (byte)light.brightness == 0 ? (byte)100 : (byte)light.brightness; + } + ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { + function.bus_Data.LoopID, + b1, + 0, 0 }); + break; + case "Relay": + ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, light.on_off == 1 ? (byte)100 : (byte)0, 0, 0 }); + break; } - else 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.SetSingleLight, subnetId, deviceId, bytes); - } + break; + case FunctionType.Curtain: + //if (jobj.ContainsKey("Curtain"))//on/off/stop + //{ + // byte state = 0; + // switch (jobj.GetValue("switch").ToString()) + // { + // case "stop": + // state = 0; + // break; + // case "on": + // state = 1; + // break; + // case "off": + // state = 2; + // break; + // } + // return ControlBytesSendHasReturn(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { function.bus_Data.LoopID, state }); + //} + //else if (jobj.ContainsKey("MotorCurtain") || jobj.ContainsKey("RollingShutter")) + //{ + // var state = Convert.ToByte(jobj.GetValue("openLevel").ToString()); + // return ControlBytesSendHasReturn(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { 17, state }); + //} 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; - } + //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; } @@ -115,9 +165,6 @@ catch (Exception ex) { MainPage.Log($"DataConversion_Bus Erorr : {ex.Message}"); } - - return null; } - } } \ No newline at end of file -- Gitblit v1.8.0