From c628a3f98140ede94a8f9ef09451519a1cf48838 Mon Sep 17 00:00:00 2001 From: Alexandre Bard Date: Wed, 29 Apr 2020 16:54:55 +0200 Subject: [PATCH] imu-setup: Check status before configuring Configuration is not possible while buffer mode is ongoing. The previous code was making sure that it was disabled but was always enabling it once done, even if it was not enabled before. But if only the sampling frequency has been set, it could happen that enabling was not possible. For example, if no channel was selected. Leading to error messages in the logs. BugzID: 62694 --- recipes-extended/imu-setup/files/imu-setup.sh | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) mode change 100644 => 100755 recipes-extended/imu-setup/files/imu-setup.sh diff --git a/recipes-extended/imu-setup/files/imu-setup.sh b/recipes-extended/imu-setup/files/imu-setup.sh old mode 100644 new mode 100755 index 64d1733..053535a --- a/recipes-extended/imu-setup/files/imu-setup.sh +++ b/recipes-extended/imu-setup/files/imu-setup.sh @@ -2,14 +2,25 @@ ACC_SYSFS_PATH="/sys/bus/iio/devices/iio:device0" GYRO_SYSFS_PATH="/sys/bus/iio/devices/iio:device1" -if [ -f "$ACC_SYSFS_PATH/buffer" ]; then - echo 0 > $ACC_SYSFS_PATH/buffer/enable +if [ -d "$ACC_SYSFS_PATH/buffer" ]; then + buffer_enable=$(cat "$ACC_SYSFS_PATH/buffer/enable") + if [ "$buffer_enable" = "1" ]; then + echo 0 > "$ACC_SYSFS_PATH/buffer/enable" + fi echo $ACC_SAMPLING_FREQUENCY > $ACC_SYSFS_PATH/sampling_frequency - echo 1 > $ACC_SYSFS_PATH/buffer/enable + if [ "$buffer_enable" = "1" ]; then + echo 1 > $ACC_SYSFS_PATH/buffer/enable + fi - echo 0 > $GYRO_SYSFS_PATH/buffer/enable + + buffer_enable=$(cat $GYRO_SYSFS_PATH/buffer/enable) + if [ "$buffer_enable" = "1" ]; then + echo 0 > $GYRO_SYSFS_PATH/buffer/enable + fi echo $GYRO_SAMPLING_FREQUENCY > $GYRO_SYSFS_PATH/sampling_frequency - echo 1 > $GYRO_SYSFS_PATH/buffer/enable + if [ "$buffer_enable" = "1" ]; then + echo 1 > $GYRO_SYSFS_PATH/buffer/enable + fi else imu-poll & fi