private void UpdateAccelerometerPosition(AccelerometerValueChangedEventArgs args)
        {
            //Update the top Head graphic
            //TopHeadPlaneProjection.RotationZ = 360 - args.Yaw;
            //TopHeadPlaneProjection.RotationX = 360 - args.Pitch;
            //TopHeadPlaneProjection.RotationY = 360 - args.Roll;

            var curr   = args.CurrentAccelerometerReading;
            var prev   = args.PreviousAccelerometerReading;
            var deltaX = prev.AccelerationX - curr.AccelerationX;
            var deltaY = prev.AccelerationY - curr.AccelerationY;
            var deltaZ = prev.AccelerationZ - curr.AccelerationZ;

            //Update the textblocks with the IMU orientation values
            //this.ListenerAccelerometerX.Text = args.CurrentAccelerometerReading.AccelerationX.ToString("0.0");
            //this.ListenerAccelerometerY.Text = args.CurrentAccelerometerReading.AccelerationY.ToString("0.0");
            //this.ListenerAccelerometerZ.Text = args.CurrentAccelerometerReading.AccelerationZ.ToString("0.0");

            this.ListenerAccelerometerX.Text = deltaX.ToString("0.00");
            this.ListenerAccelerometerY.Text = deltaY.ToString("0.00");
            this.ListenerAccelerometerZ.Text = deltaZ.ToString("0.00");
            this.ListenerStepCount.Text      = StepsCounted.ToString();

            Debug.WriteLine(deltaY.ToString());

            //string tosend = "" + this.ListenerYaw.Text + "," + this.ListenerPitch.Text + "," + this.ListenerRoll.Text;
            //var message = new SharpOSC.OscMessage("/test/1", (float)args.Yaw, (float)args.Pitch, (float)args.Roll);
            //var sender = new SharpOSC.UDPSender("127.0.0.1", 55555);
            //sender.Send(message);
        }
        private async Task DetectSteps(AccelerometerValueChangedEventArgs args)
        {
            float stepThreshold = _sensitivity;

            var curr   = args.CurrentAccelerometerReading;
            var prev   = args.PreviousAccelerometerReading;
            var deltaX = prev.AccelerationX - curr.AccelerationX;
            var deltaY = prev.AccelerationY - curr.AccelerationY;
            var deltaZ = prev.AccelerationZ - curr.AccelerationZ;

            if (Math.Abs(deltaY) > stepThreshold)
            {
                await TriggerStep();
            }
        }
        private async void IntelligentHeadsetSensorPeripheral_AccelerometerValueChanged(INavigationSensorPeripheral sender, AccelerometerValueChangedEventArgs args)
        {
            await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
            {
                await DetectSteps(args);

                //Update the TopHead Image position
                UpdateAccelerometerPosition(args);
                //Update the Listener Orientation in the graph
                await UpdateListenerOrientation();
            });
        }