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 | 116 +++++++++++++++++++++++++++++++++------------------------- 1 files changed, 66 insertions(+), 50 deletions(-) diff --git a/HDL_ON/DriverLayer/Control.cs b/HDL_ON/DriverLayer/Control.cs index b2e310e..c696878 100644 --- a/HDL_ON/DriverLayer/Control.cs +++ b/HDL_ON/DriverLayer/Control.cs @@ -1,32 +1,32 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using HDL_ON.DAL; -using HDL_ON.DAL.Net; using HDL_ON.Entity; -using HDL_ON.Entity.Enumerative; -using HDL_ON.UI; using Newtonsoft.Json.Linq; +using Shared; namespace HDL_ON { public partial class Control { - - public static byte[] Send(JObject commandString, Function function, int sendCount) + /// <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.A_Protocol)) + if (function.bus_Data!=null) { try { - var subnetID = Convert.ToByte(JObject.FromObject(function.Bus_Protocol).GetValue("SubnetID")); - var deviceID = Convert.ToByte(JObject.FromObject(function.Bus_Protocol).GetValue("DeviceID")); - byte[] bytes = DataConversion_Bus(commandString); - - var sss = ControlBytesSendHasReturn(Command.SetSingleLight, subnetID, deviceID, bytes, sendCount); - return sss; + var ssd = function.GetSendJObject(commandString); + var revBytes = DataConversion_Bus(ssd, function.bus_Data, function); + return revBytes; } catch (Exception ex) { @@ -35,20 +35,20 @@ } else { - var jObject = new JObject { - { "DeviceAddr", 11}, - { "Epoint", 22}, - { "Cluster_ID", 8 }, - { "Command", 33}, - { "SendMode", 2 } - }; - var data = new JObject { - { "Level", 1 }, - { "TransitionTime", 0 } - }; - jObject.Add("Data", data); - return null; + //var jObject = new JObject { + //{ "DeviceAddr", 11}, + //{ "Epoint", 22}, + // { "Cluster_ID", 8 }, + // { "Command", 33}, + // { "SendMode", 2 } + //}; + //var data = new JObject { + // { "Level", 1 }, + // { "TransitionTime", 0 } + //}; + //jObject.Add("Data", data); + //return revBytes; } return null; } @@ -59,7 +59,7 @@ /// </summary> /// <param name="commandString"></param> /// <returns></returns> - static byte[] DataConversion_Bus(JObject commandString) + static byte[] DataConversion_Bus(JObject commandString,BusData bus_Data, Function function) { //鍙嶉: //{ @@ -67,32 +67,48 @@ //鈥淭ype鈥�:鈥漝evice鈥�, "objects": [{ //"sid": "0001002019101209000025670100010001鈥�, "statue": "success鈥� //}] } - byte[] sendBytes; - - switch (commandString.GetValue("Command").ToString()) + try { - case "write": - var jobj = JObject.FromObject(commandString.GetValue("objects")); - var functionType = jobj.GetValue("sid").ToString().Substring(24, 2); - switch ((FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(functionType))) - { - case FunctionType.Light: - if (jobj.ContainsKey("Switch"))//缁х數鍣� - { - if (jobj.ContainsKey("Dimmer")) - {//璋冨厜鍣� + var subnetId = bus_Data.SubnetID; + var deviceId = bus_Data.DeviceID; + var loopId = bus_Data.LoopID; - } - else//缁х數鍣� + 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": + 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.SetSingleLight, subnetId, deviceId, bytes); } - } - break; - } - break; - } + 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; + } + } + catch (Exception ex) { + MainPage.Log($"DataConversion_Bus Erorr : {ex.Message}"); + } return null; } -- Gitblit v1.8.0