Crabtree/SmartHome/HDL/Operation/Control.cs
@@ -390,7 +390,7 @@
            if (CommonPage.IsRemote && !isLocal) {
                if (!SmartHome.MqttCommon.IsGatewayOnline) {
                    System.Threading.Thread.Sleep (500);
                    System.Console.WriteLine ($"网关不在线 取消发送:"+ SendFlag);
                    System.Console.WriteLine ($"网关不在线 取消发送:" + SendFlag);
                    Packet.HaveSendCount = 3;
                    allDone.Set ();
                    return;
@@ -405,20 +405,30 @@
                System.Console.WriteLine ("远程发送数据:" + SendFlag);
                SmartHome.MqttCommon.MqttRemoteSend (Packet.Bytes);
                Packet.FlagDateTime = DateTime.Now;
                Packet.HaveSendCount++;
                Packet.HaveSendCount--;
                //这里是重发两次
                while (Packet.HaveSendCount < 3) {
                    if (Packet.FlagDateTime.AddMilliseconds (2000).Ticks <= System.DateTime.Now.Ticks) {
                        SmartHome.MqttCommon.MqttRemoteSend (Packet.Bytes);
                        System.Console.WriteLine ("重发远程发送数据:" + SendFlag);
                        Packet.FlagDateTime = DateTime.Now;
                        Packet.HaveSendCount++;
                    if (Packet.HaveSendCount < 2) {
                        if (Packet.FlagDateTime.AddMilliseconds (2000).Ticks <= System.DateTime.Now.Ticks) {
                            SmartHome.MqttCommon.MqttRemoteSend (Packet.Bytes);
                            System.Console.WriteLine ("重发远程发送数据:" + SendFlag);
                            Packet.FlagDateTime = DateTime.Now;
                            Packet.HaveSendCount++;
                        }
                    } else {
                        if (Packet.FlagDateTime.AddMilliseconds (5000).Ticks <= System.DateTime.Now.Ticks) {
                            System.Console.WriteLine ("远程发送数据: 等待5s超时");
                            Packet.FlagDateTime = DateTime.Now;
                            Packet.HaveSendCount++;
                        }
                    }
                    System.Threading.Thread.Sleep (100);
                }
                allDone.Set ();
            } else {
                try {
                    System.Console.WriteLine ("发送数据:" + SendFlag);
                    BusSocket.AsyncBeginSend (Packet);
                    Packet.FlagDateTime = DateTime.Now;
                    Packet.HaveSendCount--;
                    //这里是重发两次