From 22c5c030f2262b6a9d6840bf3b5196b7ab2d4dd5 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 10 三月 2020 14:31:53 +0800 Subject: [PATCH] 2020-03-10 1.替换最新控件库,增加无网络监听,Loading效果优化。 2.电能插座修复点亮统计个数问题。 3 .定时检测网关是否在线,发送CheckGateway间隔为10S,收到主题刷新该时间,重置发送次数,发送次数到达3次以上,则判定网关为离线状态。 4.远程重复增加为3次,重发后等待5s才回调结果。 5.修复去掉普通继电器读电能操作。 6.读状态间隔缩短为200ms。 --- Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 57 insertions(+), 1 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs b/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs index 684043f..601ab84 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs @@ -279,7 +279,14 @@ hadBeUpdate = false; (common as LightDimming).CurrentBrightness = usefullBytes [2]; } else if (common.Type == DeviceType.FanModule) { + //if ((common as FanModule).Switch == usefullBytes [2]) { + // hadBeUpdate = false; + //} (common as FanModule).Switch = usefullBytes [2]; + if (usefullBytes [2] != 0) + (common as FanModule).WindSpeed = usefullBytes [2]; + + //(common as FanModule).Switch = usefullBytes [2]; } else if (common.Type == DeviceType.LightMixSwitch) { if ((common as LightMixSwitch).CurrentBrightness == usefullBytes [2]) hadBeUpdate = false; @@ -350,7 +357,7 @@ - int dddd = usefullBytes [0] & 0x3F; + int dddd = usefullBytes [0] & 0x3F; // 0xXX锛氬叕鍙稿唴閮ㄥ崗璁搴旂殑搴忓彿 // common.Type锛氬搴旂殑鏄紪杈戣蒋浠剁殑搴忓彿(娌℃湁涓�涓�瀵瑰簲锛屾槸涓轰簡灏嗙浉杩戠殑璋冩暣鍦ㄤ竴璧凤紝鏂逛究瀹㈡埛浣跨敤) @@ -966,7 +973,56 @@ //}); #endregion break; + case DeviceType.OnePortMqttFR: + #region + OnePortMqttFR onePortMqttFR = new OnePortMqttFR (); + string mqttFRPath = "Equipment_" + typeof (OnePortMqttFR).Name + "_" + subnetID + "_" + deviceID; + var bytesmqttFR = IO.FileUtils.ReadFile (mqttFRPath); + if (bytesmqttFR.Length > 1) { + onePortMqttFR = Newtonsoft.Json.JsonConvert.DeserializeObject<OnePortMqttFR> (MyEncodingUTF8.GetString (bytesmqttFR)); + } + onePortMqttFR.SubnetID = subnetID; + onePortMqttFR.DeviceID = deviceID; + onePortMqttFR.ChNumberCount = usefullBytes [4]; + onePortMqttFR.MAC = byteToHex16 (usefullBytes [5]) + "." + byteToHex16 (usefullBytes [6]) + "." + byteToHex16 (usefullBytes [7]) + "." + byteToHex16 (usefullBytes [8]) + "." + byteToHex16 (usefullBytes [9]) + "." + byteToHex16 (usefullBytes [10]) + "." + byteToHex16 (usefullBytes [11]) + "." + byteToHex16 (usefullBytes [12]); + onePortMqttFR.Name = MyEncodingGB2312.GetString (usefullBytes, 13, 20).Trim ('\0');//============= + onePortMqttFR.IPAddress = usefullBytes [33] + "." + usefullBytes [34] + "." + usefullBytes [35] + "." + usefullBytes [36]; + onePortMqttFR.RouteIPAddress = usefullBytes [37] + "." + usefullBytes [38] + "." + usefullBytes [39] + "." + usefullBytes [40]; + onePortMqttFR.IPMAC = usefullBytes [41] + "." + usefullBytes [42] + "." + usefullBytes [43] + "." + usefullBytes [44] + "." + usefullBytes [45] + "." + usefullBytes [46]; + onePortMqttFR.SubnetMask = usefullBytes [47] + "." + usefullBytes [48] + "." + usefullBytes [49] + "." + usefullBytes [50]; + onePortMqttFR.DHCP = usefullBytes [51] == 0 ? false : true; + if (usefullBytes.Length == 97) { + onePortMqttFR.AESEnable = usefullBytes [53] == 0 ? false : true; + onePortMqttFR.AESPassword = MyEncodingGB2312.GetString (usefullBytes, 54, 16).Trim ('\0'); + onePortMqttFR.DNSEnable = usefullBytes [70] == 0 ? false : true; + onePortMqttFR.DNSAddress = usefullBytes [71] + "." + usefullBytes [72] + "." + usefullBytes [73] + "." + usefullBytes [74]; + onePortMqttFR.DNSAlternateAddress = usefullBytes [75] + "." + usefullBytes [76] + "." + usefullBytes [77] + "." + usefullBytes [78]; + onePortMqttFR.WirelessBand = usefullBytes [79]; + onePortMqttFR.WirelessChannel = usefullBytes [80]; + onePortMqttFR.WirelessPassword = MyEncodingGB2312.GetString (usefullBytes, 81, 16).Trim ('\0'); + } + GateWayList.Add (onePortMqttFR); + if (onePortMqttFR.Name == "") { + onePortMqttFR.Name = onePortMqttFR.CommonLoopID.ToString (); + } + Application.RunOnMainThread (() => { + GuideAddGateway.InitGatewayRowView (onePortMqttFR); + }); + //IO.FileUtils.SaveEquipmentMessage (onePortWirelessFR); + //System.Threading.Tasks.Task.Run (() => { + // if (string.IsNullOrEmpty (UserConfig.Current.RemoteModeFile)) { + // var gatewayBytes = Control.ControlBytesSendHasReturn (Command.ReadGateWayModelInfo, onePortWirelessFR.SubnetID, onePortWirelessFR.DeviceID, new byte [] { }); + // if (gatewayBytes!=null&&gatewayBytes [0] == 2) { + // UserConfig.Current.RemoteModeFile = "Equipment_" + onePortWirelessFR.Type.ToString () + "_" + onePortWirelessFR.SubnetID.ToString () + "_" + onePortWirelessFR.DeviceID.ToString (); + // UserConfig.Current.SaveUserConfig (); + // } + // } + //}); + #endregion + + break; case DeviceType.OnePortWirelessFR: + #region OnePortWirelessFR onePortWirelessFR = new OnePortWirelessFR (); string wirelessPath = "Equipment_" + typeof (OnePortWirelessFR).Name + "_" + subnetID + "_" + deviceID; -- Gitblit v1.8.0