陈嘉乐
2020-10-13 611786df5108dca0bdcff03834cc285cba4b8e61
HDL_ON/DriverLayer/Control_Bus.cs
@@ -15,6 +15,10 @@
    public partial class Control
    {
        public DateTime LatestDateTime = DateTime.Now;
        /// <summary>
        /// 控制失败次数
        /// </summary>
        public static int controlLostCount = 0;
        /// <summary>
        /// 所有微信对一端口的控制都会放到这个集合里
@@ -502,16 +506,30 @@
             
            }
            else
            {
                //Bus socket无法控制,重启机制
                if (controlLostCount > 10)
                {
                    BusSocket.Stop();
                    new System.Threading.Thread(() =>
                    {
                        System.Threading.Thread.Sleep(1000);
                        BusSocket.Start(6000);
                        controlLostCount = 0;
                    })
                    { IsBackground = true }.Start();
                }
                try
                {
                    MainPage.Log("发送数据:" + SendFlag);
                    BusSocket.AsyncBeginSend(Packet);
                    Packet.HaveSendCount--;
                    controlLostCount++;
                    //这里是重发两次
                    while (Packet.HaveSendCount < 3)
                    {
                        if (Packet.FlagDateTime.AddMilliseconds(1000).Ticks <= System.DateTime.Now.Ticks)
                        if (Packet.FlagDateTime.AddMilliseconds(1000).Ticks <= DateTime.Now.Ticks)
                        {
                            MainPage.Log("重发数据:" + SendFlag);
                            BusSocket.AsyncBeginSend(Packet);