From 691dbe24f5724f153e07947c7b75bdfea5f0b6d5 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 24 九月 2024 16:15:15 +0800 Subject: [PATCH] 离线控制模式 --- HDL_ON/DAL/DriverLayer/Control_Udp.cs | 129 ++++++++++++++++++++++++++++++------------ 1 files changed, 91 insertions(+), 38 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs index 2791215..a697e0b 100644 --- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs +++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs @@ -104,7 +104,7 @@ try { //璐﹀彿娌$櫥褰曚笉鍥炲 - if ( UserInfo.Current == null || ! UserInfo.Current.IsLogin) + if ( UserInfo.Current == null )///|| ! UserInfo.Current.IsLogin) { return; } @@ -302,7 +302,8 @@ break; case SPK.LightRGB: break; - case SPK.HvacFloorHeat:case SPK.FloorHeatStandard: + case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel: + case SPK.FloorHeatStandard: if (f.status.Find((obj)=>obj.key ==FunctionAttributeKey.Mode) == null) { foreach (var dic in f.status) @@ -392,6 +393,27 @@ } } break; + case SPK.OtherCommon://2024-02-01 15:19:28 + foreach (var attr in f.status) + { + if (attr.key == FunctionAttributeKey.OnOff) + { + byte onOffValue = 0; + switch (attr.value) + { + case "on": + onOffValue = 0; + break; + case "off": + onOffValue = 255; + break; + } + ControlBytesSend(Command.SetCommonSwitch, f.localFunction.bus.SubnetID, f.localFunction.bus.DeviceID, + new byte[] { f.localFunction.bus.LoopId, onOffValue }); + break; + } + } + break; } } } @@ -442,21 +464,24 @@ { case SPK.LightCCT: #region cct light - byte b0 = 100; - if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) + byte b0 = Convert.ToByte(function.lastBrightness); + if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness)) { - if (function.trait_on_off.curValue.ToString() == "off") - { - b0 = 0; - } - else - { - b0 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); - } + b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); } else { - b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); + if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) + { + if (function.trait_on_off.curValue.ToString() == "off") + { + b0 = 0; + } + else + { + b0 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); + } + } } var bytes0 = new byte[] { function.bus.LoopId, b0, @@ -470,21 +495,24 @@ break; case SPK.LightRGB: #region rgb light - byte b = 100; - if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) + byte b = Convert.ToByte(function.lastBrightness); + if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness)) { - if (function.trait_on_off.curValue.ToString() == "off") - { - b = 0; - } - else - { - b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); - } + b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); } else { - b = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); + if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) + { + if (function.trait_on_off.curValue.ToString() == "off") + { + b = 0; + } + else + { + b = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); + } + } } var tempLight = new Light(); var bytes = new byte[] { function.bus.LoopId, @@ -499,21 +527,24 @@ break; case SPK.LightDimming: #region dimming light - byte b1 = 100; - if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) + byte b1 = Convert.ToByte(function.lastBrightness); + if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness)) { - if (function.trait_on_off.curValue.ToString() == "off") - { - b1 = 0; - } - else - { - b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); - } + b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); } else { - b1 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness)); + if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff)) + { + if (function.trait_on_off.curValue.ToString() == "off") + { + b1 = 0; + } + else + { + b1 = function.lastBrightness == 0 ? (byte)100 : Convert.ToByte(function.lastBrightness); + } + } } ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, @@ -552,7 +583,28 @@ } else { - ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { (byte)(((int)function.bus.LoopId) + 16), Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Percent)) }); + if (commandDictionary.ContainsKey(FunctionAttributeKey.Percent)) + { + ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { (byte)(((int)function.bus.LoopId) + 16), Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Percent)) }); + } + else + { + + byte tempCurtainState = 0; + if (function.trait_on_off.curValue.ToString() == "stop") + { + tempCurtainState = 0; + } + else if (function.trait_on_off.curValue.ToString() == "on") + { + tempCurtainState = 1; + } + else + { + tempCurtainState = 2; + } + ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { function.bus.LoopId, tempCurtainState }); + } } break; @@ -683,7 +735,7 @@ 0,0,0,0,0,0,0,onoff,mode,fan,temp,sanfan}); break; - case SPK.HvacFloorHeat:case SPK.FloorHeatStandard: + case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel: var fhTemp = new FloorHeating(); if (function.Fh_Mode_Temp.Count == 4) { @@ -908,7 +960,7 @@ case SPK.HvacAC: ControlBytesSend(Command.ReadACMode, subnetId, deviceId, new byte[] { function.bus.LoopId }); break; - case SPK.HvacFloorHeat:case SPK.FloorHeatStandard: + case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel: ControlBytesSend(Command.ReadFloorHeat, subnetId, deviceId, new byte[] { function.bus.LoopId }); break; case SPK.HvacFan: @@ -1166,6 +1218,7 @@ /// </summary> public void SearchLocalGateway(bool broadcast = false) { + //MainPage.Log("SearchLocalGateway"); try { var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", Utlis.GetTimestamp ()} }; -- Gitblit v1.8.0