| | |
| | | public partial class Control |
| | | { |
| | | public DateTime LatestDateTime = DateTime.Now; |
| | | /// <summary> |
| | | /// 控制失败次数 |
| | | /// </summary> |
| | | public static int controlLostCount = 0; |
| | | |
| | | /// <summary> |
| | | /// 所有微信对一端口的控制都会放到这个集合里 |
| | |
| | | return control.UsefulBytes; |
| | | } |
| | | |
| | | static DAL.Net.TcpListener tcpListener; |
| | | |
| | | /// <summary> |
| | | /// 000E 搜索回复 |
| | | /// </summary> |
| | |
| | | return; |
| | | } |
| | | |
| | | if (tcpListener == null) |
| | | { |
| | | tcpListener = new DAL.Net.TcpListener(); |
| | | tcpListener.OpenServer(8586); |
| | | } |
| | | |
| | | if (!CommonPage.isHttpListenerStart) |
| | | { |
| | |
| | | Console.WriteLine("buspro 读备注回复"); |
| | | ReceiveReadRemark(usefulBytes); |
| | | break; |
| | | case Command.ReadLightAllLoopBrightnessACK: |
| | | receiveFlag += ""; |
| | | break; |
| | | //case Command.YIPanelDeviceInofACK: |
| | | // for (int i = 0; i < 4; i++) |
| | | // { |
| | |
| | | //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]); |
| | |
| | | //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: |
| | |
| | |
} |
| | | 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); |
| | |
| | | //这里是重发两次 |
| | | 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); |
| | | } |
| | |
| | | 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++) |
| | |
| | | //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: |