private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            arduino = new ArduinoSlam();
            arduino.OnStatusChanged += new EventHandler<ArduinoSlam.StatusArgs>(arduino_OnStatusChanged);
            arduino.OnSensorInfoReady += new EventHandler<ArduinoSlam.SensorInfoArgs>(arduino_OnSensorInfoReady);
            arduino.Connect();

            kinectManager = new KinectSlam();
            kinectManager.OnAudioReady += new EventHandler<KinectSlam.AudioStreamArgs>(kinectManager_OnAudioReady);

            tcpServer = new TCPSlamServer();
            tcpServer.Port = 9988;
            tcpServer.OnConnectionStatusChanged += new EventHandler<TCPSlamServer.ServerStatusArgs>(tcpServer_OnConnectionStatusChanged);
            tcpServer.OnDataReceived += new EventHandler<TCPSlamBase.MessageArgs>(tcpServer_OnDataReceived);
            txtIP.Text = Common.GetIP();
            try
            {
                tcpServer.IPAddress = IPAddress.Parse(txtIP.Text);
                tcpServer.StartServer();
            }
            catch
            {
                Console.WriteLine("Invalid IP: " + txtIP.Text);
            }
        }
 void kinectManager_OnAudioReady(object sender, KinectSlam.AudioStreamArgs e)
 {
     if (tcpServer.Status == TCPSlamServer.ServerStatus.Connected)
         tcpServer.SendData(TCPSlamBase.MessageType.Audio, e.audio);
 }