/// <summary>
        /// 响应串口层上传的数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void ReceiveData(object sender, DataTransmissionEventArgs args)
        {
            AsyncSocketUserToken socket = args.Token;

            if (socket == null)
            {
                return;
            }
            long         ip     = ControllerManager.GetLongIPFromSocket(socket);
            SocketBuffer buffer = null;

            lock (m_HashReceivedBuffer)
            {
                if (m_HashReceivedBuffer.ContainsKey(ip))
                {
                    buffer = (SocketBuffer)m_HashReceivedBuffer[ip];
                }
                else
                {
                    buffer = new SocketBuffer();
                    m_HashReceivedBuffer.Add(ip, buffer);
                }
                buffer.RemoteSock = socket;
                //lxm 20161013修改,传入的字节流要进行一次转换,将字符字节两两合成一个16进制数据,比如:'F'和'5' 合成0xF5
                buffer.ReceivedCharBuffer.AddRange(args.EventData);
                args.EventData.Clear();
                buffer.IsReady = Char2Hex(buffer);
                if (buffer.IsReady)
                {
                    m_SemReceiveCommand.Release(1);
                }
            }
        }
 /// <summary>
 /// 删除序列号
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void AntiMapIPFromWifi(object sender, DataTransmissionEventArgs args)
 {
     if (args.Token != null)
     {
         AsyncSocketUserToken socket = args.Token;
         if (socket.ConnectSocket == null || socket.ConnectSocket.RemoteEndPoint == null)
         {
             return;
         }
         if (SocketConnectOrCloseResponse != null)
         {
             SocketConnectOrCloseResponse(this, new SocketConnectArgs(false, socket));
         }
         long       ip         = ControllerManager.GetLongIPFromSocket(socket);
         Controller controller = ControllerManager.Instance().Get(ip);
         if (controller != null)
         {
             controller.SocketToken = null;
         }
         lock (m_HashReceivedBuffer)
         {
             if (m_HashReceivedBuffer.ContainsKey(ip))
             {
                 m_HashReceivedBuffer.Remove(ip);
             }
         }
     }
 }
 /// <summary>
 /// 发送给WIFI
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void MapIPFromWifi(object sender, DataTransmissionEventArgs args)
 {
     if (args.Token.ConnectSocket != null)
     {
         AsyncSocketUserToken socket = args.Token;
         long       ip         = ControllerManager.GetLongIPFromSocket(socket);
         Controller controller = ControllerManager.Instance().Get(ip);
         if (controller != null)
         {
             if (controller.SocketToken != null)
             {
                 AsyncServer.Instance().CloseClientSocketEx(controller.SocketToken);
             }
             controller.SocketToken = socket;
             if (SocketConnectOrCloseResponse != null)
             {
                 SocketConnectOrCloseResponse(this, new SocketConnectArgs(true, socket));
             }
             //新连接的客户端要对它发送泵类型指令
             if (SendPumpType2Wifi != null)
             {
                 SendPumpType2Wifi(this, new SocketConnectArgs(true, socket));
             }
         }
         else
         {
             if (m_Device != null)
             {
                 m_Device.CloseClientSocket(args.Token);
             }
             Logger.Instance().ErrorFormat("MapIPFromWifi()->ControllerManager.Instance().Get 错误,IP={0}", ip);
             return;
         }
     }
 }
        /// <summary>
        /// 连接关闭时,要将对应的命令队列清除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void OnRemoveCommandQueue(object sender, DataTransmissionEventArgs args)
        {
            AsyncSocketUserToken socket = args.Token;

            if (socket != null)
            {
                long ip = ControllerManager.GetLongIPFromSocket(socket);
                m_Queue.ClearQueue(ip);
                m_WaitQueue.ClearQueue(ip);
            }
        }