lkml.org 
[lkml]   [2015]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v2 07/10] iio: core: Introduce IIO_CHAN_INFO_FILTER_OUTLIERS_THRESH and _PERIOD
Date
The pedometer needs to filter out false steps that might be generated by
tapping the foot, sitting, etc. To do that it computes the number of
steps that occur in a given time and decides the user is moving only
if this value is over a threshold. E.g.: the user starts moving only
if he takes 4 steps in 3 seconds. This filter is applied only when
the user starts moving.

A device that has such pedometer functionality is Freescale's MMA9553L:
http://www.freescale.com/files/sensors/doc/ref_manual/MMA9553LSWRM.pdf.

To export this feature, this patch introduces
IIO_CHAN_INFO_FILTER_OUTLIERS_THRESH and IIO_CHAN_INFO_FILTER_OUTLIERS_PERIOD.
For the pedometer, in_steps_filter_outlier_thresh will specify the number of
steps that need to occur in in_steps_filter_outlier_period seconds so that
the pedometer decides the user is moving.

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
---
Documentation/ABI/testing/sysfs-bus-iio | 21 +++++++++++++++++++++
drivers/iio/industrialio-core.c | 2 ++
include/linux/iio/iio.h | 2 ++
3 files changed, 25 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index c03a140..e009f49 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -1193,3 +1193,24 @@ Description:
This attribute is used to read the current speed value of the
user (which is the norm or magnitude of the velocity vector).
Units after application of scale are m/s.
+
+What: /sys/.../iio:deviceX/in_steps_filter_outliers_period
+KernelVersion: 3.20
+Contact: linux-iio@vger.kernel.org
+Description:
+ Specifies the number of seconds in which we compute the
+ values so we can decide if they are outlier values and
+ need to be filter out. These computed values are then
+ compared with in_steps_filter_outliers_thresh. E.g. for steps:
+ specifies number of seconds in which we compute the steps
+ that occur in order to decide if the consumer is making steps.
+
+What: /sys/.../iio:deviceX/in_steps_filter_outliers_thresh
+KernelVersion: 3.20
+Contact: linux-iio@vger.kernel.org
+Description:
+ Specifies a threshold for filtering outlier values: if value
+ measured in in_steps_filter_outliers_period seconds is below
+ threshold, we filter it out. E.g. for steps: specifies number
+ of steps that must occur within in_steps_filter_outliers_period
+ for the pedometer to decide the consumer is making steps.
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 4ee6fdf..81678b3 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -126,6 +126,8 @@ static const char * const iio_chan_info_postfix[] = {
[IIO_CHAN_INFO_ENABLE] = "en",
[IIO_CHAN_INFO_CALIBHEIGHT] = "calibheight",
[IIO_CHAN_INFO_CALIBWEIGHT] = "calibweight",
+ [IIO_CHAN_INFO_FILTER_OUTLIERS_THRESH] = "filter_outliers_thresh",
+ [IIO_CHAN_INFO_FILTER_OUTLIERS_PERIOD] = "filter_outliers_period",
};

/**
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index 752a929..b6b12ac 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -41,6 +41,8 @@ enum iio_chan_info_enum {
IIO_CHAN_INFO_ENABLE,
IIO_CHAN_INFO_CALIBHEIGHT,
IIO_CHAN_INFO_CALIBWEIGHT,
+ IIO_CHAN_INFO_FILTER_OUTLIERS_THRESH,
+ IIO_CHAN_INFO_FILTER_OUTLIERS_PERIOD,
};

enum iio_shared_by {
--
1.9.1


\
 
 \ /
  Last update: 2015-01-11 20:21    [W:0.202 / U:0.408 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site