From ac579a8f89a4ce24c9fffc975a06a5c91de827d9 Mon Sep 17 00:00:00 2001 From: Gerson Fernando Budke Date: Sat, 30 Mar 2024 16:33:26 +0100 Subject: [PATCH] drivers: sensors: Add SENSOR_CHAN_FREQUENCY channel Add new SENSOR_CHAN_FREQUENCY constant to allow implement sensors that output frequency values in Hertz. Signed-off-by: Gerson Fernando Budke --- drivers/sensor/sensor_shell.c | 1 + include/zephyr/drivers/sensor.h | 3 +++ samples/sensor/sensor_shell/pytest/test_sensor_shell.py | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/sensor/sensor_shell.c b/drivers/sensor/sensor_shell.c index b63312f2b000..034be1085463 100644 --- a/drivers/sensor/sensor_shell.c +++ b/drivers/sensor/sensor_shell.c @@ -88,6 +88,7 @@ static const char *sensor_channel_name[SENSOR_CHAN_COMMON_COUNT] = { [SENSOR_CHAN_POS_DZ] = "pos_dz", [SENSOR_CHAN_POS_DXYZ] = "pos_dxyz", [SENSOR_CHAN_RPM] = "rpm", + [SENSOR_CHAN_FREQUENCY] = "frequency", [SENSOR_CHAN_GAUGE_VOLTAGE] = "gauge_voltage", [SENSOR_CHAN_GAUGE_AVG_CURRENT] = "gauge_avg_current", [SENSOR_CHAN_GAUGE_STDBY_CURRENT] = "gauge_stdby_current", diff --git a/include/zephyr/drivers/sensor.h b/include/zephyr/drivers/sensor.h index cf1f29617317..45c6b07da2f8 100644 --- a/include/zephyr/drivers/sensor.h +++ b/include/zephyr/drivers/sensor.h @@ -156,6 +156,9 @@ enum sensor_channel { /** Revolutions per minute, in RPM. */ SENSOR_CHAN_RPM, + /** Frequency, in Hz. */ + SENSOR_CHAN_FREQUENCY, + /** Voltage, in volts **/ SENSOR_CHAN_GAUGE_VOLTAGE, /** Average current, in amps **/ diff --git a/samples/sensor/sensor_shell/pytest/test_sensor_shell.py b/samples/sensor/sensor_shell/pytest/test_sensor_shell.py index 9736b2e9eb8d..49627d6f4a2b 100644 --- a/samples/sensor/sensor_shell/pytest/test_sensor_shell.py +++ b/samples/sensor/sensor_shell/pytest/test_sensor_shell.py @@ -37,7 +37,7 @@ def test_sensor_shell_attr_get(shell: Shell): lines = shell.exec_command('sensor attr_get sensor@0 co2 sampling_frequency') assert any(['sensor@0(channel=co2, attr=sampling_frequency)' in line for line in lines]), 'expected response not found' - lines = shell.exec_command('sensor attr_get sensor@1 53 3') + lines = shell.exec_command('sensor attr_get sensor@1 54 3') assert any(['sensor@1(channel=gauge_state_of_health, attr=slope_th)' in line for line in lines]), 'expected response not found' logger.info('response is valid') @@ -50,7 +50,7 @@ def test_sensor_shell_attr_set(shell: Shell): expected_line = 'sensor@0 channel=co2, attr=sampling_frequency set to value=1' assert any([expected_line in line for line in lines]), 'expected response not found' - lines = shell.exec_command('sensor attr_set sensor@1 53 3 1') + lines = shell.exec_command('sensor attr_set sensor@1 54 3 1') expected_line = 'sensor@1 channel=gauge_state_of_health, attr=slope_th set to value=1' assert any([expected_line in line for line in lines]), 'expected response not found'