Skip to content

Instantly share code, notes, and snippets.

@factormystic
Created May 6, 2012 03:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save factormystic/2609858 to your computer and use it in GitHub Desktop.
Save factormystic/2609858 to your computer and use it in GitHub Desktop.
using System;
using System.Diagnostics;
using System.Linq;
using Microsoft.Devices.Sensors;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Reactive;
namespace Rx_Compass_Smoothing
{
public partial class MainPage : PhoneApplicationPage
{
Compass compass = new Compass();
public MainPage()
{
InitializeComponent();
Observable.FromEvent<SensorReadingEventArgs<CompassReading>>(compass, "CurrentValueChanged")
.BufferWithTime(TimeSpan.FromSeconds(2))
.Select(headings => headings.Select(e => e.EventArgs.SensorReading.TrueHeading).Sum() / headings.Count())
.Subscribe(heading => Debug.WriteLine(string.Format("Averaged: {0}", heading)));
compass.Start();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment