Re: [PATCH v2 07/10] iio: core: Introduce IIO_CHAN_INFO_FILTER_OUTLIERS_THRESH and _PERIOD

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 26, 2015 at 1:07 AM, Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
> On 11/01/15 19:10, Irina Tirdea wrote:
>> 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@xxxxxxxxx>
> I wonder if the naming here is infact too generic.  They aren't what
> people would normally think of as outliers.  That would be removing
> missidentified steps mid way through grabbing data (to my mind).
>
> These are almost a 'debounce' of the transition from stationary to
> walking... Maybe there is another better term.  All suggestions welcome!

What about:

in_steps_debounce_count instead of in_steps_filter_outlier_thresh
and
in_steps_debounce_delay instead of in_steps_filter_outlier_period.

Also in_steps_debounce_time could work for in_steps_filter_outlier_period.

>
>> ---
>>  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@xxxxxxxxxxxxxxx
>> +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@xxxxxxxxxxxxxxx
>> +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 {
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux