Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Duy Nguyen 5ac1e5e39e samples: Add exclusion for twister harness on qemu_rx 2 weeks ago
..
boards drivers: sensor: icm42688 add axis_align in DT 2 weeks ago
dts/bindings samples: sensor: rename fake sensor binding 5 months ago
include sensor_shell: Update to new sensor_read API 2 years ago
pytest drivers: sensors: Add SENSOR_CHAN_FREQUENCY channel 6 months ago
src drivers: sensor: Place API into iterable section 7 months ago
CMakeLists.txt samples: sensor: sensor_shell: add fake sensor driver 1 year ago
Kconfig samples: sensor: Use dedicated overlay for fake sensor in sensor_shell 5 months ago
README.rst samples: sensor: Use dedicated overlay for fake sensor in sensor_shell 5 months ago
fake_sensor.overlay samples: sensor: Use dedicated overlay for fake sensor in sensor_shell 5 months ago
prj.conf sensor_shell: Update to new sensor_read API 2 years ago
sample.yaml samples: Add exclusion for twister harness on qemu_rx 2 weeks ago

README.rst

.. zephyr:code-sample:: sensor_shell
:name: Sensor shell
:relevant-api: sensor_interface

Interact with sensors using the shell module.

Overview
********
This is a simple shell module to get data from sensors presented in the system.

Building and Running
********************

Build the sample app by choosing the target board that has sensors drivers
enabled, for example:

.. zephyr-app-commands::
:zephyr-app: samples/sensor/sensor_shell
:board: reel_board
:goals: build flash

For boards that do not have a sensor, a simple fake sensor driver is provided and can enabled by
adding the following overlay:

.. zephyr-app-commands::
:zephyr-app: samples/sensor/sensor_shell
:board: qemu_riscv64
:goals: run
:gen-args: -DEXTRA_DTC_OVERLAY_FILE=fake_sensor.overlay

Shell Module Command Help
=========================

.. code-block:: console

sensor - Sensor commands
Subcommands:
get :Get sensor data. Channel names are optional. All channels are read when
no channels are provided. Syntax:
<device_name> <channel name 0> .. <channel name N>
info :Get sensor info, such as vendor and model name, for all sensors.


**get**: prints all the sensor channels data for a given sensor device name.
Optionally, a single channel name or index can be passed to be printed out. The
device name and channel name are autocompleted.

Output example (reel_board):

.. code-block:: console

uart:~$ sensor get mma8652fc@1d
channel idx=0 accel_x = 0.000000
channel idx=1 accel_y = 0.268150
channel idx=2 accel_z = 9.959878
channel idx=3 accel_xyz x = 0.000000 y = 0.268150 z = 9.959878

uart:~$ sensor get mma8652fc@1d accel_z
channel idx=2 accel_z = 9.959878

uart:~$ sensor get mma8652fc@1d 2
channel idx=2 accel_z = 9.959878

.. note::
A valid sensor device name should be passed otherwise you will get an
undefined behavior like hardware exception. This happens because the shell
subsystem runs in supervisor mode where API callbacks are not checked before
being called.

**info**: prints vendor, model, and friendly name information for all sensors.
This command depends on enabling :kconfig:option:`CONFIG_SENSOR_INFO`.

.. code-block:: console

uart:~$ sensor info
device name: apds9960@39, vendor: Avago Technologies, model: apds9960, friendly name: (null)
device name: mma8652fc@1d, vendor: NXP Semiconductors, model: fxos8700, friendly name: (null)
device name: ti_hdc@43, vendor: Texas Instruments, model: hdc, friendly name: (null)
device name: temp@4000c000, vendor: Nordic Semiconductor, model: nrf-temp, friendly name: (null)