summaryrefslogtreecommitdiff
path: root/peripheral/libmraa/jsstub/README.md
blob: 05ac8330dceb5e3635252a8ce42386c00aaba546 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
mraaStub - JavaScript simulation and stubs for mraa
====================

This project enables simulation of a device which might be accessed via mraa.
Currently this library supports I2c, SPI, and GPIO.  This project provides
several benefits:

1. Prevent crashes in nodejs applications using mraa on unsuported or
   misconfigured hardware.
2. Enable basic simulation of mraa-accessible devices for unit testing.

## Examples

The following example is based on an imaginary 'light bulb' device abstraction,
which exposes a value of brightness over a mraa-provided interface.  Please see
the `test/index.js` file for an example.

## Installation

You may install `mraaStub` from npm like this:

```
npm install mraaStub
```

Since we often switch between a mraaStub and the real mraa library, we
suggest creating an `index.js` file inside a `lib/mraaSwitcher` folder.

```js
/* index.js - file for switching between mraa and mraaStub
 */

// Define the conditions under which the mraaStub should be loaded
var platform = require('os').platform();
var m;

if (platform === 'win32') {
    m = require('mraaStub');
} else {
    m = require('mraa');
}

module.exports = m;
```

You can add this to your project in its own `lib/mraaSwitcher/index.js` file
and use `require('../mraaSwitcher')` everywhere!

## License

See [COPYING file](../COPYING) in the root of this repository.