Wouter van Verre 31c4f470fe i2clcd: use the mraa C++ API instead of the C API
Rewrite the i2c module to be based around the MRAA C++ API,
since this makes resource management easier inside of the UPM
C++ classes.

i2clcd.{h,cxx}: remove the close() function. This now automatically gets
called when the object goes out of scope, inside the destructor.

examples/i2clcd: fix C++/Python/Javascript examples that explicitly called the close function.
The I2c context now gets called by the destructor of the sensor class. This
happens when the object goes out of scope or when it gets deleted, if the
object was created using the new keyword, as is the case here.

Signed-off-by: Wouter van Verre <wouter.van.verre@intel.com>
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
2015-04-23 17:34:27 -07:00
2015-04-22 12:56:17 -07:00
2014-04-25 15:33:40 +01:00
2015-03-20 11:35:31 -07:00
2015-04-22 12:56:17 -07:00

UPM - Sensor/Actuator repository for libmraa

UPM is a high level repository for sensors that use libmraa. Each sensor links to libmraa and are not meant to be interlinked although some groups of sensors may be. Each sensor contains a header which allows to interface with it. Typically a sensor is represented as a class and instantiated.

The constructor is expected to initialise the sensor and parameters may be used to provide identification/pin location on the board.

Typically an update() function will be called in order to get new data from the sensor in order to reduce load when doing multiple reads to sensor data.

Example

A sensor/actuator is expected to work as such (here is the servo ES08A API): @snippet es08a.cxx Interesting

However implementation and API design is completely up to the developer, some enumerable sensors for example may provide much clever instantiation. Displays may also create more complex structures in order to interface with them.

Browse through the list of all examples.

Supported Sensors

Supported sensor list from API documentation.

You can also refer to the Intel® IoT Developer Zone.

Building UPM

See @ref building here.

Making your own UPM module

@ref porting link has more information on making new UPM modules.

There is also an example available for @ref max31855 sensor.

Naming conventions and rules for new UPM contributions

Before you begin development, take a look at our @ref naming conventions.

Also, please read the guidelines for @ref contributions to UPM.

Don't forget to check the @ref documentation section.

Make sure you add yourself as an author on every new code file submitted. If you are providing a fix with significant changes, feel free to add yourself as a contributor. Signing-off your commits is mandatory.

C/C++ API Documentation

The C/C++ documentation is available here.

Version @ref changelog here.

Description
UPM is a high level repository that provides software drivers for a wide variety of commonly used sensors and actuators. These software drivers interact with the underlying hardware platform through calls to MRAA APIs.
Readme MIT 33 MiB
Languages
C++ 47.7%
C 46.4%
CMake 2.3%
SWIG 1.9%
Python 0.6%
Other 1.1%