Commit 282a5663 authored by Daniel Baluta's avatar Daniel Baluta Committed by Jonathan Cameron

iio: event_monitor: Add support for new channel types

We have the following testing scenario:

$ insmod iio_dummy_evgen.ko
$ insmod iio_dummy.ko

./iio_event_monitor /dev/iio:device0
Event: time: 1412786467971335337, type: activity(running), channel: 0,
evtype: thresh, direction: rising
Event: time: 1412786530792974091, type: activity(walking), channel: 0,
evtype: thresh, direction: falling
Event: time: 1412764319184761765, type: steps, channel: 0, evtype: instance

$ echo 1 > /sys/bus/iio/devices/iio_evgen/poke_ev0
$ echo 2 > /sys/bus/iio/devices/iio_evgen/poke_ev0
$ echo 3 > /sys/bus/iio/devices/iio_evgen/poke_ev0
Signed-off-by: default avatarIrina Tirdea <irina.tirdea@intel.com>
Signed-off-by: default avatarDaniel Baluta <daniel.baluta@intel.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 3e34e650
...@@ -49,6 +49,8 @@ static const char * const iio_chan_type_name_spec[] = { ...@@ -49,6 +49,8 @@ static const char * const iio_chan_type_name_spec[] = {
[IIO_CCT] = "cct", [IIO_CCT] = "cct",
[IIO_PRESSURE] = "pressure", [IIO_PRESSURE] = "pressure",
[IIO_HUMIDITYRELATIVE] = "humidityrelative", [IIO_HUMIDITYRELATIVE] = "humidityrelative",
[IIO_ACTIVITY] = "activity",
[IIO_STEPS] = "steps",
}; };
static const char * const iio_ev_type_text[] = { static const char * const iio_ev_type_text[] = {
...@@ -57,6 +59,7 @@ static const char * const iio_ev_type_text[] = { ...@@ -57,6 +59,7 @@ static const char * const iio_ev_type_text[] = {
[IIO_EV_TYPE_ROC] = "roc", [IIO_EV_TYPE_ROC] = "roc",
[IIO_EV_TYPE_THRESH_ADAPTIVE] = "thresh_adaptive", [IIO_EV_TYPE_THRESH_ADAPTIVE] = "thresh_adaptive",
[IIO_EV_TYPE_MAG_ADAPTIVE] = "mag_adaptive", [IIO_EV_TYPE_MAG_ADAPTIVE] = "mag_adaptive",
[IIO_EV_TYPE_INSTANCE] = "instance",
}; };
static const char * const iio_ev_dir_text[] = { static const char * const iio_ev_dir_text[] = {
...@@ -92,6 +95,10 @@ static const char * const iio_modifier_names[] = { ...@@ -92,6 +95,10 @@ static const char * const iio_modifier_names[] = {
[IIO_MOD_NORTH_TRUE] = "from_north_true", [IIO_MOD_NORTH_TRUE] = "from_north_true",
[IIO_MOD_NORTH_MAGN_TILT_COMP] = "from_north_magnetic_tilt_comp", [IIO_MOD_NORTH_MAGN_TILT_COMP] = "from_north_magnetic_tilt_comp",
[IIO_MOD_NORTH_TRUE_TILT_COMP] = "from_north_true_tilt_comp", [IIO_MOD_NORTH_TRUE_TILT_COMP] = "from_north_true_tilt_comp",
[IIO_MOD_RUNNING] = "running",
[IIO_MOD_JOGGING] = "jogging",
[IIO_MOD_WALKING] = "walking",
[IIO_MOD_STILL] = "still",
}; };
static bool event_is_known(struct iio_event_data *event) static bool event_is_known(struct iio_event_data *event)
...@@ -121,6 +128,8 @@ static bool event_is_known(struct iio_event_data *event) ...@@ -121,6 +128,8 @@ static bool event_is_known(struct iio_event_data *event)
case IIO_CCT: case IIO_CCT:
case IIO_PRESSURE: case IIO_PRESSURE:
case IIO_HUMIDITYRELATIVE: case IIO_HUMIDITYRELATIVE:
case IIO_ACTIVITY:
case IIO_STEPS:
break; break;
default: default:
return false; return false;
...@@ -154,6 +163,10 @@ static bool event_is_known(struct iio_event_data *event) ...@@ -154,6 +163,10 @@ static bool event_is_known(struct iio_event_data *event)
case IIO_MOD_NORTH_TRUE: case IIO_MOD_NORTH_TRUE:
case IIO_MOD_NORTH_MAGN_TILT_COMP: case IIO_MOD_NORTH_MAGN_TILT_COMP:
case IIO_MOD_NORTH_TRUE_TILT_COMP: case IIO_MOD_NORTH_TRUE_TILT_COMP:
case IIO_MOD_RUNNING:
case IIO_MOD_JOGGING:
case IIO_MOD_WALKING:
case IIO_MOD_STILL:
break; break;
default: default:
return false; return false;
...@@ -165,6 +178,7 @@ static bool event_is_known(struct iio_event_data *event) ...@@ -165,6 +178,7 @@ static bool event_is_known(struct iio_event_data *event)
case IIO_EV_TYPE_ROC: case IIO_EV_TYPE_ROC:
case IIO_EV_TYPE_THRESH_ADAPTIVE: case IIO_EV_TYPE_THRESH_ADAPTIVE:
case IIO_EV_TYPE_MAG_ADAPTIVE: case IIO_EV_TYPE_MAG_ADAPTIVE:
case IIO_EV_TYPE_INSTANCE:
break; break;
default: default:
return false; return false;
...@@ -174,6 +188,7 @@ static bool event_is_known(struct iio_event_data *event) ...@@ -174,6 +188,7 @@ static bool event_is_known(struct iio_event_data *event)
case IIO_EV_DIR_EITHER: case IIO_EV_DIR_EITHER:
case IIO_EV_DIR_RISING: case IIO_EV_DIR_RISING:
case IIO_EV_DIR_FALLING: case IIO_EV_DIR_FALLING:
case IIO_EV_DIR_NONE:
break; break;
default: default:
return false; return false;
...@@ -214,9 +229,11 @@ static void print_event(struct iio_event_data *event) ...@@ -214,9 +229,11 @@ static void print_event(struct iio_event_data *event)
else if (chan >= 0) else if (chan >= 0)
printf("channel: %d, ", chan); printf("channel: %d, ", chan);
printf("evtype: %s, direction: %s\n", printf("evtype: %s", iio_ev_type_text[ev_type]);
iio_ev_type_text[ev_type],
iio_ev_dir_text[dir]); if (dir != IIO_EV_DIR_NONE)
printf(", direction: %s", iio_ev_dir_text[dir]);
printf("\n");
} }
int main(int argc, char **argv) int main(int argc, char **argv)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment