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