static void PlatformStart(SensorSpeed sensorSpeed) { altitudeManager = new CMAltimeter(); altitudeManager.StartRelativeAltitudeUpdates(Platform.GetCurrentQueue(), LocationManagerUpdatedHeading); void LocationManagerUpdatedHeading(CMAltitudeData e, NSError error) => OnChanged(new BarometerData(UnitConverters.KilopascalsToHectopascals(e.Pressure.DoubleValue))); }
static void PlatformStart(SensorSpeed sensorSpeed) { altitudeManager = new CMAltimeter(); altitudeManager.StartRelativeAltitudeUpdates(Platform.GetCurrentQueue(), LocationManagerUpdatedHeading); // Heading updates Convert to HectoPascal from KiloPascal void LocationManagerUpdatedHeading(CMAltitudeData e, NSError error) => OnChanged(new BarometerData(e.Pressure.DoubleValue / 10d)); }
static void PlatformStop() { if (altitudeManager == null) { return; } altitudeManager.StopRelativeAltitudeUpdates(); altitudeManager.Dispose(); altitudeManager = null; }
public MotionManager() { RecentActivities = new List <Activity> (); recentMotionActivities = new List <CMMotionActivity> (); recentPedometerData = new List <CMPedometerData> (); recentAltitudeData = new List <CMAltitudeData> (); activityManager = new CMMotionActivityManager(); pedometer = new CMPedometer(); altimeter = new CMAltimeter(); }
void PlatformStart(SensorSpeed sensorSpeed) { altitudeManager = new CMAltimeter(); altitudeManager.StartRelativeAltitudeUpdates(NSOperationQueue.CurrentQueue ?? new NSOperationQueue(), LocationManagerUpdatedHeading); void LocationManagerUpdatedHeading(CMAltitudeData e, NSError error) { var reading = new BarometerData(UnitConverters.KilopascalsToHectopascals(e.Pressure.DoubleValue)); RaiseReadingChanged(reading); } }
public IObservable <double> WhenReadingTaken() => this.readOb ??= Observable.Create <double>(ob => { var altimeter = new CMAltimeter(); altimeter.StartRelativeAltitudeUpdates(NSOperationQueue.CurrentQueue, (data, error) => ob.OnNext(data.Pressure.DoubleValue) // kilopascals ); return(() => { altimeter.StopRelativeAltitudeUpdates(); altimeter.Dispose(); }); }) .Publish() .RefCount();
protected override async Task InitializeAsync() { await base.InitializeAsync(); if (CMAltimeter.IsRelativeAltitudeAvailable && await SensusServiceHelper.Get().ObtainPermissionAsync(Permission.Sensors) == PermissionStatus.Granted) { _altitudeChangeListener = new CMAltimeter(); } else { // throw standard exception instead of NotSupportedException, since the user might decide to enable sensors in the future // and we'd like the probe to be restarted at that time. string error = "This device does not contain an altimeter, or the user has denied access to it. Cannot start altitude probe."; await SensusServiceHelper.Get().FlashNotificationAsync(error); throw new Exception(error); } }
public DeviceSensor() { motionManager = new CMMotionManager(); locationManager = new CLLocationManager(); motionActivityManager = new CMMotionActivityManager(); if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) { altimeter = new CMAltimeter(); } sensorTypeStatus = new Dictionary <SensorType, bool>() { { SensorType.Accelerometer, false }, { SensorType.Compass, false }, { SensorType.Gyroscope, false }, { SensorType.Magntometer, false }, /* { * SensorType.ActivitySensor, * false * }*/ }; }
private Barometer(CMAltimeter altimeter) { _altimeter = altimeter; }
public MotionManager () { RecentActivities = new List<Activity> (); recentMotionActivities = new List<CMMotionActivity> (); recentPedometerData = new List<CMPedometerData> (); recentAltitudeData = new List<CMAltitudeData> (); activityManager = new CMMotionActivityManager (); pedometer = new CMPedometer (); altimeter = new CMAltimeter (); }