blob: c42035a1efde4fc629eca71d2d9ac8a87dd6c976 [file] [log] [blame]
Mynewt Sensor Framework Overview
================================
.. toctree::
:maxdepth: 1
Sensor API <sensor_api>
Sensor Manager API <sensor_mgr_api>
Sensor Listener API <sensor_listener_api>
Sensor Notifier API <sensor_notifier_api>
OIC Sensor API <sensor_oic>
Sensor Shell <sensor_shell>
Sensor Device Driver <sensor_driver>
Creating and Configuring Sensor Devices <sensor_create>
The Mynewt sensor framework is an abstraction layer between an
application and sensor devices. The sensor framework provides the
following support:
- A set of APIs that allows developers to develop sensor device drivers
within a common framework and enables application developers to
develop applications that can access sensor data from any Mynewt
sensor device using a common interface.
- Support for onboard and off-board sensors.
- An OIC sensor server that exposes sensors as OIC resources and
handles OIC CoAP requests for the sensor resources. A developer can
easily develop a MyNewt OIC sensor enabled application that serves
sensor resource requests from OIC client applications.
- A sensor shell command and optional sensor device driver shell
commands to view sensor data and manage sensor device settings for
testing and debugging sensor enabled applications and sensor device
drivers.
|Alt Layout - Sensor Framework|
Overview of Sensor Support Packages
-----------------------------------
In this guide and the package source code, we use ``SENSORNAME`` (all
uppercase) to refer to a sensor product name. For each sensor named
``SENSORNAME``:
- The package name for the sensor device driver is ``<sensorname>``.
All functions and data structures that the sensor device driver
exports are prefixed with ``<sensorname>``.
- All syscfg settings defined for the sensor are prefixed with
``<SENSORNAME>``. For example:
- The ``<SENSORNAME>_CLI`` syscfg setting defined in the device
driver package to specify whether to enable the sensor device
shell command.
- The ``<SENSORNAME>_ONB`` syscfg setting defined in the BSP to
specify whether the onboard sensor is enabled.
- The ``<SENSORNAME>_OFB`` syscfg setting defined in the sensor
creator package to specify whether to enable the off-board sensor.
The following Mynewt packages provide sensor support and are needed to
build a sensor enabled application.
- ``hw/sensor``: The sensor framework package. This package implements
the `sensor framework
APIs </os/modules/sensor_framework/sensor_api.html>`__, the `OIC sensor
server </os/modules/sensor_framework/sensor_oic.html>`__, and the
`sensor shell
command </os/modules/sensor_framework/sensor_shell.html>`__.
- ``hw/sensor/creator``: The sensor creator package. This package
supports off-board sensor devices. It creates the OS devices for the
sensor devices that are enabled in an application and configures the
sensor devices with default values. See the `Creating and Configuring
a Sensor Device </os/modules/sensor_framework/sensor_create.html>`__
page for more information.
**Note:** This package is only needed if you are building an
application with off-board sensors enabled.
- ``hw/bsp/``: The BSP for boards that support onboard sensors. The BSP
creates the OS devices for the onboard sensors that the board
supports and configures the sensors with default values. See the
`Creating and Configuring a Sensor
Device </os/modules/sensor_framework/sensor_create.html>`__ page for
more information.
- ``hw/drivers/sensors/*``: These are the sensor device driver
packages. The ``hw/drivers/sensors/<sensorname>`` package is the
device driver for a sensor named ``SENSORNAME``. See the `Sensor
Device Driver </os/modules/sensor_framework/sensor_driver.html>`__ page
for more information.
.. |Alt Layout - Sensor Framework| image:: /os/modules/sensor_framework/sensor_framework.png