JLChen
2020-04-03 be95e839f40eb3ddf64706b60cba6dfcf4fad5e5
Crabtree/SmartHome/HDL/Operation/Control.cs
@@ -63,7 +63,7 @@
                AddData = gatewayBytes,
            }, sendCount, false);
            CommonPage.FindGateway = false;
            System.Console.WriteLine (command.ToString () + "::" + CommonPage.EndPoint.ToString ());
            Utlis.WriteLine (command.ToString () + "::" + CommonPage.EndPoint.ToString ());
        }
        /// <summary>
@@ -287,7 +287,7 @@
                default:
                    break;
                }
                //System.Console.WriteLine ("接收到数据:" + receiveFlag);
                //Utlis.WriteLine ("接收到数据:" + receiveFlag);
                for (int i = 0; i < controlList.Count; i++) {
                    try {
@@ -302,7 +302,7 @@
                    }
                }
            } catch (Exception ex) {
                Console.WriteLine ("ManagerReceive抛出异常:" + ex.ToString ());
                Utlis.WriteLine ("ManagerReceive抛出异常:" + ex.ToString ());
            }
        }
@@ -325,7 +325,7 @@
                    }
                }
                //System.Console.WriteLine ("++++++++"+controlList.Count.ToString ());
                //Utlis.WriteLine ("++++++++"+controlList.Count.ToString ());
            }
            controlList.Add (this);
        }
@@ -390,19 +390,19 @@
            if (CommonPage.IsRemote && !isLocal) {
                if (!SmartHome.MqttCommon.IsGatewayOnline) {
                    System.Threading.Thread.Sleep (500);
                    System.Console.WriteLine ($"网关不在线 取消发送:" + SendFlag);
                    Utlis.WriteLine ($"网关不在线 取消发送:" + SendFlag);
                    Packet.HaveSendCount = 3;
                    allDone.Set ();
                    return;
                }
                if (IsEnterBackground) {
                    System.Threading.Thread.Sleep (500);
                    System.Console.WriteLine ("已进入后台 取消发送");
                    Utlis.WriteLine ("已进入后台 取消发送");
                    Packet.HaveSendCount = 3;
                    allDone.Set ();
                    return;
                }
                System.Console.WriteLine ("远程发送数据:" + SendFlag);
                Utlis.WriteLine ("远程发送数据:" + SendFlag);
                SmartHome.MqttCommon.MqttRemoteSend (Packet.Bytes);
                Packet.FlagDateTime = DateTime.Now;
                Packet.HaveSendCount--;
@@ -411,13 +411,13 @@
                    if (Packet.HaveSendCount < 2) {
                        if (Packet.FlagDateTime.AddMilliseconds (2000).Ticks <= System.DateTime.Now.Ticks) {
                            SmartHome.MqttCommon.MqttRemoteSend (Packet.Bytes);
                            System.Console.WriteLine ("重发远程发送数据:" + SendFlag);
                            Utlis.WriteLine ("重发远程发送数据:" + SendFlag);
                            Packet.FlagDateTime = DateTime.Now;
                            Packet.HaveSendCount++;
                        }
                    } else {
                        if (Packet.FlagDateTime.AddMilliseconds (5000).Ticks <= System.DateTime.Now.Ticks) {
                            System.Console.WriteLine ("远程发送数据: 等待5s超时");
                            Utlis.WriteLine ("远程发送数据: 等待5s超时");
                            Packet.FlagDateTime = DateTime.Now;
                            Packet.HaveSendCount++;
                        }
@@ -425,7 +425,7 @@
                    System.Threading.Thread.Sleep (100);
                }
                allDone.Set ();
            } else {
                try {
                    System.Console.WriteLine ("发送数据:" + SendFlag);
                    Utlis.WriteLine ("发送数据:" + SendFlag);
                    BusSocket.AsyncBeginSend (Packet);
                    Packet.FlagDateTime = DateTime.Now;
@@ -434,14 +434,14 @@
                    //这里是重发两次
                    while (Packet.HaveSendCount < 3 && BusSocket.IsRunning) {
                        if (Packet.FlagDateTime.AddMilliseconds (1000).Ticks <= System.DateTime.Now.Ticks) {
                            System.Console.WriteLine ("重发数据:" + SendFlag);
                            Utlis.WriteLine ("重发数据:" + SendFlag);
                            BusSocket.AsyncBeginSend (Packet);
                        }
                        System.Threading.Thread.Sleep (100);
                    }
                } catch (Exception ex) {
                    Console.WriteLine ("managerSendCount:" + ex.ToString ());
                    Utlis.WriteLine ("managerSendCount:" + ex.ToString ());
                } finally {
                    allDone.Set ();
                }