private void OnReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args) { double g = Math.Round(Square(args.Reading.AccelerationX) + Square(args.Reading.AccelerationY) + Square(args.Reading.AccelerationZ)); if (g > AccelerationThreshold && DateTime.Now.Subtract(_lastDetected).Milliseconds > ShakenInterval) { _lastDetected = DateTime.Now; Shaken?.Invoke(null, EventArgs.Empty); } }
// Handles the ReadingChanged event and raises the Shaken event when necessary private static void _DefaultAccelerometer_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args) { double g = Math.Round(args.Reading.AccelerationX.Square() + args.Reading.AccelerationY.Square() + args.Reading.AccelerationZ.Square()); if (g > AccelerationThreshold && DateTime.Now.Subtract(_ShakenTimespan).Milliseconds > ShakenInterval) { _ShakenTimespan = DateTime.Now; Shaken?.Invoke(null, EventArgs.Empty); } }