samples/subsys/shell: Introduce Sensor Shell module
Adds the Sensor Shell module sample app. Signed-off-by: Diego Sueiro <diego.sueiro@gmail.com> Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
parent
93e1560faa
commit
e924879ef7
6 changed files with 135 additions and 0 deletions
16
samples/sensor/sensor_shell/CMakeLists.txt
Normal file
16
samples/sensor/sensor_shell/CMakeLists.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
cmake_minimum_required(VERSION 3.8.2)
|
||||
macro(set_conf_file)
|
||||
if(EXISTS ${APPLICATION_SOURCE_DIR}/boards/${BOARD}.conf)
|
||||
set(CONF_FILE "prj.conf ${APPLICATION_SOURCE_DIR}/boards/${BOARD}.conf")
|
||||
else()
|
||||
set(CONF_FILE "prj.conf")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
|
||||
project(sensor_shell)
|
||||
|
||||
FILE(GLOB app_sources src/*.c)
|
||||
target_sources(app PRIVATE ${app_sources})
|
94
samples/sensor/sensor_shell/README.rst
Normal file
94
samples/sensor/sensor_shell/README.rst
Normal file
|
@ -0,0 +1,94 @@
|
|||
.. _sensor_shell_sample:
|
||||
|
||||
Sensor Shell Module Sample
|
||||
##########################
|
||||
|
||||
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:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
cmake -DBOARD=reel_board
|
||||
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/subsys/shell/sensor_module
|
||||
:goals: run
|
||||
|
||||
|
||||
Shell Module Command Help
|
||||
=========================
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sensor - Sensor commands
|
||||
Options:
|
||||
-h, --help :Show command help.
|
||||
Subcommands:
|
||||
get :<device_name> [chanel_idx]
|
||||
list :List configured sensors
|
||||
list_channels :<device_name>
|
||||
|
||||
**list**: lists all the initialized devices on the system.
|
||||
|
||||
Output example (reel_board):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
uart:~$ sensor list
|
||||
devices:
|
||||
- clk_k32src
|
||||
- clk_m16src
|
||||
- UART_0
|
||||
- ENTROPY_0
|
||||
- GPIO_0
|
||||
- GPIO_1
|
||||
- I2C_0
|
||||
- APDS9960
|
||||
- MMA8652FC
|
||||
- HDC1008
|
||||
|
||||
**list_channels**: lists the supported channels (index and name) for a given
|
||||
sensor device name.
|
||||
|
||||
Output example (reel_board):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
uart:~$ sensor list_channels MMA8652FC
|
||||
idx=0 name=accel_x
|
||||
idx=1 name=accel_y
|
||||
idx=2 name=accel_z
|
||||
idx=3 name=accel_xyz
|
||||
|
||||
.. 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.
|
||||
|
||||
**get**: prints all the sensor channels data for a given sensor device name.
|
||||
Optionally, a single channel index can be passed to be printed out.
|
||||
|
||||
Output example (reel_board):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
uart:~$ sensor get MMA8652FC
|
||||
channel idx=0 accel_x = -1.379061
|
||||
channel idx=1 accel_y = 1.991975
|
||||
channel idx=2 accel_z = -9.576807
|
||||
channel idx=3 accel_xyz = -1.379061
|
||||
channel idx=3 accel_xyz = 1.991975
|
||||
channel idx=3 accel_xyz = -9.576807
|
||||
|
||||
.. 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.
|
3
samples/sensor/sensor_shell/boards/reel_board.conf
Normal file
3
samples/sensor/sensor_shell/boards/reel_board.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
CONFIG_APDS9960=y
|
||||
CONFIG_FXOS8700=y
|
||||
CONFIG_TI_HDC=y
|
4
samples/sensor/sensor_shell/prj.conf
Normal file
4
samples/sensor/sensor_shell/prj.conf
Normal file
|
@ -0,0 +1,4 @@
|
|||
CONFIG_SHELL=y
|
||||
CONFIG_BOOT_BANNER=n
|
||||
CONFIG_SENSOR=y
|
||||
CONFIG_SENSOR_SHELL=y
|
9
samples/sensor/sensor_shell/sample.yaml
Normal file
9
samples/sensor/sensor_shell/sample.yaml
Normal file
|
@ -0,0 +1,9 @@
|
|||
sample:
|
||||
name: Shell Sensor Module Sample
|
||||
tests:
|
||||
test:
|
||||
filter: ( CONFIG_UART_CONSOLE and CONFIG_SERIAL_SUPPORT_INTERRUPT )
|
||||
tags: shell
|
||||
harness: keyboard
|
||||
min_ram: 20
|
||||
min_flash: 33
|
9
samples/sensor/sensor_shell/src/main.c
Normal file
9
samples/sensor/sensor_shell/src/main.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
/*
|
||||
* Copyright (c) 2018 Diego Sueiro
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <logging/log.h>
|
||||
|
||||
LOG_MODULE_REGISTER(app);
|
Loading…
Add table
Add a link
Reference in a new issue