wxr
2020-08-13 6a9ad7ec93218913a2ce3b898bb036f18f8f0da4
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>
        /// 所有微信对一端口的控制都会放到这个集合里
@@ -45,6 +49,8 @@
            return control.UsefulBytes;
        }
        static DAL.Net.TcpListener tcpListener;
        /// <summary>
        /// 000E 搜索回复
        /// </summary>
@@ -59,6 +65,11 @@
                    return;
                }
                if (tcpListener == null)
                {
                    tcpListener = new DAL.Net.TcpListener();
                    tcpListener.OpenServer(8586);
                }
                if (!CommonPage.isHttpListenerStart)
                {
@@ -173,6 +184,9 @@
                        Console.WriteLine("buspro 读备注回复");
                        ReceiveReadRemark(usefulBytes);
                        break;
                    case Command.ReadLightAllLoopBrightnessACK:
                        receiveFlag += "";
                        break;
                    //case Command.YIPanelDeviceInofACK:
                    //    for (int i = 0; i < 4; i++)
                    //    {
@@ -222,8 +236,6 @@
                    //case Command.SetSensorPushValuesACK:
                    //case Command.ReadSensorPushValuesACK:
                    //    receiveFlag += string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]);
                    //    break;
                    //case Command.ReadLightEquipmentAllLoopBrightnessACK:
                    //    break;
                    //case Command.UpLoadInfraredACK:
                    //    receiveFlag += string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]);
@@ -339,14 +351,14 @@
                    //case Command.ReadWirelessPanelButtonKeyACK:
                    //case Command.WriteWirelessPanelButtonKeyACK:
                    //case Command.ReadDryContactStatusACK:
                    //case Command.InstructionPanelKeyACK:
                    //case Command.ReadInstructionPanelKeyACK:
                    //case Command.ReadAnalogValueACK:
                    //case Command.ReadSensorTargetRemarkACK:
                    //case Command.SetHornTargetStateACK:
                    //case Command.ReadHornTargetStateACK:
                    //    receiveFlag += string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]);
                    //    break;
                    case Command.InstructionPanelKeyACK:
                    case Command.ReadInstructionPanelKeyACK:
                        //case Command.ReadAnalogValueACK:
                        //case Command.ReadSensorTargetRemarkACK:
                        //case Command.SetHornTargetStateACK:
                        //case Command.ReadHornTargetStateACK:
                        receiveFlag += string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]);
                        break;
                    //case Command.AssignedAddressACK:
                    //case Command.UpdataCurtainModelRunTimeACK:
                    //case Command.ReadCurtainStutasACK:
@@ -502,6 +514,19 @@
             
            }
            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);
@@ -511,10 +536,11 @@
                    //这里是重发两次
                    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);
                            controlLostCount++;
                        }
                        System.Threading.Thread.Sleep(100);
                    }
@@ -551,6 +577,9 @@
                    break;
                case Command.SetLogicLoopColor:
                    this.sendFlag += string.Format("{0},{1},{2}", target.AddData[0], target.AddData[1], target.AddData[2]);
                    break;
                case Command.ReadLightAllLoopBrightness:
                    this.SendFlag += "";
                    break;
                //case Command.YIPanelDeviceInof:
                //    for (int i = 0; i < 4; i++)
@@ -696,12 +725,12 @@
                //case Command.SetCurtainModelStutas:
                //case Command.DownloadInfrared:
                //case Command.UpLoadInfrared:
                //case Command.InstructionPanelKey:
                //case Command.ReadInstructionPanelKey:
                //case Command.ReadSensorTargetRemark:
                //case Command.SetHornTargetState:
                //    this.sendFlag += string.Format("{0},{1}", target.AddData[0], target.AddData[1]);
                //    break;
                case Command.InstructionPanelKey:
                case Command.ReadInstructionPanelKey:
                    //case Command.ReadSensorTargetRemark:
                    //case Command.SetHornTargetState:
                    this.sendFlag += string.Format("{0},{1}", target.AddData[0], target.AddData[1]);
                    break;
                //case Command.AssignedAddress:
                //case Command.UpdataCurtainModelRunTime:
                //case Command.ReadCurtainStatus: