> -----Original Message----- > From: Jonathan Cameron [mailto:jic23@xxxxxxxxxx] > Sent: 26 January, 2015 21:02 > To: Baluta, Daniel > Cc: Tirdea, Irina; linux-iio@xxxxxxxxxxxxxxx; Linux Kernel Mailing List; Dogaru, Vlad; Hartmut Knaack; Lars-Peter Clausen; Peter > Meerwald > Subject: Re: [PATCH v2 07/10] iio: core: Introduce IIO_CHAN_INFO_FILTER_OUTLIERS_THRESH and _PERIOD > > On 26/01/15 14:40, Daniel Baluta wrote: > > 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. > Hmm. Slight preference for debounce_time. > > I can't come up with a better option, but we'd best see if anyone else has > a better idea for a day or two! I also agree with in_steps_debounce_count and in_steps_debounce_time, but I'll wait a couple of days before sending v3 maybe someone comes up with something better. Thanks Daniel and Jonathan! > > > >> > >>> --- > >>> 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 > > ��.n��������+%������w��{.n�����{��(��)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥