mraa  0.6.0
Low Level Skeleton Library for Communication on GNU/Linux platforms
 All Data Structures Namespaces Files Functions Typedefs Enumerations Enumerator Pages
mraa Documentation

Libmraa is a C/C++ library with bindings to javascript & python to interface with the IO on Galileo, Edison & other platforms, with a structured and sane API where port names/numbering matches the board that you are on. Use of libmraa does not tie you to specific hardware with board detection done at runtime you can create portable code that will work across the supported platforms.

The intent is to make it easier for developers and sensor manufacturers to map their sensors & actuators on top of supported hardware and to allow control of low level communication protocol by high level languages & constructs.

API

These interfaces allow you to interact with all libmraa functionality. The C++ classes directly wrap the C API and provide a near 1:1 mapping of functionality.

C API Modules C++ API Classes
gpio Gpio class
i2c I2c class
aio Aio class
pwm Pwm class
spi Spi class
uart Uart class
common common

Hello Mraa

#include "mraa.h"
int
main(int argc, char **argv)
{
char* board_name = mraa_get_platform_name();
fprintf(stdout, "hello mraa\n Version: %s\n Running on %s\n", mraa_get_version(), board_name);
return MRAA_SUCCESS;
}

Supported platforms

Specific platform information for supported platforms is documented here:

DEBUGGING

Sometimes it just doesn't want to work, let us try and help you, you can file issues in github or join us in mraa on freenode IRC, hang around for a little while because we're not necessarily on 24/7, but we'll get back to you! Have a glance at our page too

COMPILING

More information on compiling is Building libmraa page.

CONTRIBUTING

Please see the Contributing to libmraa page, the libmraa Internals page may also be of use.

API Changelog

This changelog is meant as a quick & rough guide to what has changed between versions. The API is now fairly stable but when new calls/features are added they are listed here. Anything pre 0.2.x is ignored.

0.6.0

0.5.4

0.5.3

0.5.2

0.5.1

0.5.0

0.4.5

0.4.4

0.4.3

0.4.2

0.4.1

0.4.0

0.3.1

0.3.0

0.2.9

0.2.8

0.2.7

0.2.6

0.2.5

0.2.4

0.2.3

0.2.2