internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, uint events_count, IntPtr data) => { updateBatchEvents(eventPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); Timestamp = sensorData.timestamp; if (sensorData.values[0] == 0) { Rotation = AutoRotationState.Degree_0; } else { Rotation = (AutoRotationState)sensorData.values[0]; } Accuracy = sensorData.accuracy; DataUpdated?.Invoke(this, new AutoRotationSensorDataUpdatedEventArgs(sensorData.values, sensorData.accuracy)); }; int error = Interop.SensorListener.SetEventsCallback(ListenerHandle, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for auto-rotation sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for auto-rotation"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, uint events_count, IntPtr data) => { updateBatchEvents(eventPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); TimeSpan = new TimeSpan((Int64)sensorData.timestamp); X = sensorData.values[0]; Y = sensorData.values[1]; Z = sensorData.values[2]; BiasX = sensorData.values[3]; BiasY = sensorData.values[4]; BiasZ = sensorData.values[5]; DataUpdated?.Invoke(this, new UncalibratedMagnetometerDataUpdatedEventArgs(sensorData.values)); }; int error = Interop.SensorListener.SetEventsCallback(ListenerHandle, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for uncalibrated magnetometer sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for uncalibrated magnetometer"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, uint events_count, IntPtr data) => { updateBatchEvents(eventPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); TimeSpan = new TimeSpan((Int64)sensorData.timestamp); StepCount = (uint)sensorData.values[0]; WalkStepCount = (uint)sensorData.values[1]; RunStepCount = (uint)sensorData.values[2]; MovingDistance = sensorData.values[3]; CalorieBurned = sensorData.values[4]; LastSpeed = sensorData.values[5]; LastSteppingFrequency = sensorData.values[6]; LastStepStatus = (PedometerState)sensorData.values[7]; DataUpdated?.Invoke(this, new PedometerDataUpdatedEventArgs(sensorData.values)); }; int error = Interop.SensorListener.SetEventsCallback(ListenerHandle, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for pedometer sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for pedometer"); } }
/// <summary> /// Reads HeartRateMonitorBatch data synchronously. /// </summary> internal override void ReadData() { int error = Interop.SensorListener.ReadDataList(ListenerHandle, out IntPtr eventsPtr, out uint events_count); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error reading HeartRateMonitorBatch data"); throw SensorErrorFactory.CheckAndThrowException(error, "Reading HeartRateMonitorBatch data failed"); } UpdateBatchData(eventsPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); Timestamp = (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds(); Accuracy = sensorData.accuracy; Interop.Libc.Free(eventsPtr); }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventsPtr, uint events_count, IntPtr data) => { UpdateBatchData(eventsPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); Timestamp = (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds(); Accuracy = sensorData.accuracy; DataUpdated?.Invoke(this, new HeartRateMonitorBatchDataUpdatedEventArgs((IReadOnlyList <HeartRateMonitorBatchData>)Data)); }; int error = Interop.SensorListener.SetEventsCallback(ListenerHandle, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for HeartRateMonitorBatch sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for HeartRateMonitorBatch"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, IntPtr data) => { Interop.SensorEventStruct sensorData = Interop.IntPtrToEventStruct(eventPtr); TimeSpan = new TimeSpan((Int64)sensorData.timestamp); UltravioletIndex = sensorData.values[0]; DataUpdated?.Invoke(this, new UltravioletSensorDataUpdatedEventArgs(sensorData.values[0])); }; int error = Interop.SensorListener.SetEventCallback(ListenerHandle, Interval, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for ultraviolet sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for ultraviolet"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, uint events_count, IntPtr data) => { updateBatchEvents(eventPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); Timestamp = sensorData.timestamp; Proximity = (ProximitySensorState)sensorData.values[0]; DataUpdated?.Invoke(this, new ProximitySensorDataUpdatedEventArgs(sensorData.values[0])); }; int error = Interop.SensorListener.SetEventsCallback(ListenerHandle, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for proximity sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for proximity"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, IntPtr data) => { Interop.SensorEventStruct sensorData = Interop.IntPtrToEventStruct(eventPtr); TimeSpan = new TimeSpan((Int64)sensorData.timestamp); InVehicle = (DetectorState)sensorData.values[0]; ActivityAccuracy = (SensorDataAccuracy)sensorData.accuracy; DataUpdated?.Invoke(this, new InVehicleActivityDetectorDataUpdatedEventArgs(sensorData.values[0])); }; int error = Interop.SensorListener.SetEventCallback(ListenerHandle, Interval, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for invehicle activity detector"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for invehicle activity detector"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, uint events_count, IntPtr data) => { updateBatchEvents(eventPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); TimeSpan = new TimeSpan((Int64)sensorData.timestamp); Running = (DetectorState)sensorData.values[0]; ActivityAccuracy = (SensorDataAccuracy)sensorData.accuracy; DataUpdated?.Invoke(this, new RunningActivityDetectorDataUpdatedEventArgs(sensorData.values[0])); }; int error = Interop.SensorListener.SetEventsCallback(ListenerHandle, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for running activity detector"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for running activity detector"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, IntPtr data) => { Interop.SensorEventStruct sensorData = Interop.IntPtrToEventStruct(eventPtr); TimeSpan = new TimeSpan((Int64)sensorData.timestamp); X = sensorData.values[0]; Y = sensorData.values[1]; Z = sensorData.values[2]; W = sensorData.values[3]; Accuracy = sensorData.accuracy; DataUpdated?.Invoke(this, new MagnetometerRotationVectorSensorDataUpdatedEventArgs(sensorData.values, sensorData.accuracy)); }; int error = Interop.SensorListener.SetEventCallback(ListenerHandle, Interval, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for magnetometer rotation vector sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for magnetometer rotation vector"); } }
internal override void EventListenStart() { _callback = (IntPtr sensorHandle, IntPtr eventPtr, uint events_count, IntPtr data) => { updateBatchEvents(eventPtr, events_count); Interop.SensorEventStruct sensorData = latestEvent(); Timestamp = sensorData.timestamp; X = sensorData.values[0]; Y = sensorData.values[1]; Z = sensorData.values[2]; W = sensorData.values[3]; Accuracy = sensorData.accuracy; DataUpdated?.Invoke(this, new GyroscopeRotationVectorSensorDataUpdatedEventArgs(sensorData.values, sensorData.accuracy)); }; int error = Interop.SensorListener.SetEventsCallback(ListenerHandle, _callback, IntPtr.Zero); if (error != (int)SensorError.None) { Log.Error(Globals.LogTag, "Error setting event callback for gyroscope rotation vector sensor"); throw SensorErrorFactory.CheckAndThrowException(error, "Unable to set event callback for gyroscope rotation vector"); } }