示例#1
0
        /// <summary>
        /// Reads sensor data from the device then updates <see cref="SensorReading"/> property.
        /// </summary>
        public virtual void Update()
        {
            // Read all sensor values
            var sensorResult = ReadAll();

            // Fire reading changed event
            OnReadingChanged?.Invoke(this, null);

            // Update properties
            SensorReading = sensorResult;
        }
        void OnBarometerChanged(CMAltitudeData data, NSError error)
        {
            var currentReadingTime = DateTime.Now;

            if (firstRead || (currentReadingTime - _lastReadingTime).TotalMilliseconds >= ReadingInterval)
            {
                _lastReading = data.Pressure.DoubleValue;
                OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <double>(_lastReading));
                firstRead = false;
            }
        }
示例#3
0
        private void OnPedometerChanged(nint numberOfSteps, NSDate timestamp, NSError error)
        {
            var currentReadingTime = DateTime.Now;

            if (firstRead || (currentReadingTime - _lastReadingTime).TotalMilliseconds >= ReadingInterval)
            {
                lastReading = (int)numberOfSteps;
                OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <int>(lastReading));
                firstRead = false;
            }
        }
 /// <summary>
 /// Raises the accelerometer changed event.
 /// </summary>
 /// <param name="data">Data.</param>
 /// <param name="error">Error.</param>
 void OnAccelerometerChanged(CMAccelerometerData data, NSError error)
 {
     if (error == null)
     {
         OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(data.Acceleration.X, data.Acceleration.Y, data.Acceleration.Z)));
     }
     else
     {
         OnReadingError?.Invoke(this, new DeviceSensorReadingErrorEventArgs(error.Description));
     }
 }
示例#5
0
 /// <summary>
 /// Raises the magnetometer changed event.
 /// </summary>
 /// <param name="data">Data.</param>
 /// <param name="error">Error.</param>
 void OnMagnetoMeterChanged(CMMagnetometerData data, NSError error)
 {
     if (error == null)
     {
         OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(data.MagneticField.X, data.MagneticField.Y, data.MagneticField.Z)));
     }
     else
     {
         OnReadingError?.Invoke(this, new DeviceSensorReadingErrorEventArgs(error.Description));
     }
 }
 /// <summary>
 /// Raises the gyroscope changed event.
 /// </summary>
 /// <param name="data">Data.</param>
 /// <param name="error">Error.</param>
 void OnGyroscopeChanged(CMGyroData data, NSError error)
 {
     if (error == null)
     {
         OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(data.RotationRate.x, data.RotationRate.y, data.RotationRate.z)));
     }
     else
     {
         OnReadingError?.Invoke(this, new DeviceSensorReadingErrorEventArgs(error.Description));
     }
 }
        public void OnSensorChanged(SensorEvent e)
        {
            var currentReadingTime = DateTime.Now;

            if (firstRead || (currentReadingTime - _lastReadingTime).TotalMilliseconds >= _readingInterval)
            {
                _lastReading = GetReading(e);
                OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <T>(_lastReading));
                _lastReadingTime = DateTime.Now;
                firstRead        = false;
            }
        }
        private void OnPedometerChanged(CMPedometerData pedometerData, NSError error)
        {
            if (error == null)
            {
                var currentReadingTime = DateTime.Now;

                if (firstRead || (currentReadingTime - _lastReadingTime).TotalMilliseconds >= ReadingInterval)
                {
                    lastReading = (int)pedometerData.NumberOfSteps;
                    OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <int>(lastReading));
                    firstRead = false;
                }
            }
            else
            {
                OnReadingError?.Invoke(this, new DeviceSensorReadingErrorEventArgs(error.Description));
            }
        }
 private void MagnetometerReadingChanged(Magnetometer sender, MagnetometerReadingChangedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(args.Reading.MagneticFieldX, args.Reading.MagneticFieldY, args.Reading.MagneticFieldZ)));
 }
 private void PressureSensorReadingChanged(object sender, PressureSensorDataUpdatedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <double>(args.Pressure));
 }
示例#11
0
 private void GyrosocopeReadingChanged(object sender, GyroscopeDataUpdatedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(args.X, args.Y, args.Z)));
 }
 private void BarometerReadingChanged(Barometer sender, BarometerReadingChangedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <double>(args.Reading.StationPressureInHectopascals));
 }
示例#13
0
 private void AccelerometerReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(args.Reading.AccelerationX, args.Reading.AccelerationY, args.Reading.AccelerationZ)));
 }
示例#14
0
 private void PedometerReadingChanged(Pedometer sender, PedometerReadingChangedEventArgs args)
 {
     _lastReading = args.Reading.CumulativeSteps;
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <int>(_lastReading));
 }
 private void GyrometerReadingChanged(Gyrometer sender, GyrometerReadingChangedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(args.Reading.AngularVelocityX, args.Reading.AngularVelocityY, args.Reading.AngularVelocityZ)));
 }
 void UpdatedHeading(object sender, CLHeadingUpdatedEventArgs e)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <CompassReading>(new CompassReading(e.NewHeading.HeadingAccuracy < 0 ? CompassAccuracy.Unreliable : CompassAccuracy.High, e.NewHeading.MagneticHeading, e.NewHeading.TrueHeading)));
 }
示例#17
0
 private void CompassReadingChanged(Compass sender, CompassReadingChangedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <CReading>(new CReading(TranslateAccuracy(args.Reading.HeadingAccuracy), args.Reading.HeadingMagneticNorth, args.Reading.HeadingTrueNorth)));
 }
示例#18
0
 /// <summary>
 /// Raises the gyroscope changed event.
 /// </summary>
 /// <param name="data">Data.</param>
 /// <param name="error">Error.</param>
 void OnGyroscopeChanged(CMGyroData data, NSError error)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(data.RotationRate.x, data.RotationRate.y, data.RotationRate.z)));
 }
示例#19
0
 private void MagnetometerReadingChanged(object sender, MagnetometerDataUpdatedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(args.X, args.Y, args.Z)));
 }
示例#20
0
 private void PedometerReadingChanged(object sender, PedometerDataUpdatedEventArgs args)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <int>((int)args.StepCount));
 }
 /// <summary>
 /// Raises the accelerometer changed event.
 /// </summary>
 /// <param name="data">Data.</param>
 /// <param name="error">Error.</param>
 void OnAccelerometerChanged(CMAccelerometerData data, NSError error)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(data.Acceleration.X, data.Acceleration.Y, data.Acceleration.Z)));
 }
示例#22
0
 /// <summary>
 /// Raises the magnetometer changed event.
 /// </summary>
 /// <param name="data">Data.</param>
 /// <param name="error">Error.</param>
 void OnMagnetoMeterChanged(CMMagnetometerData data, NSError error)
 {
     OnReadingChanged?.Invoke(this, new DeviceSensorReadingEventArgs <VectorReading>(new VectorReading(data.MagneticField.X, data.MagneticField.Y, data.MagneticField.Z)));
 }