2016-05-20 16:44:39 -07:00
|
|
|
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
|
|
|
|
|
|
2016-06-28 13:23:26 -07:00
|
|
|
You may install `mraaStub` from npm like this:
|
2016-05-20 16:44:39 -07:00
|
|
|
|
|
|
|
|
```
|
|
|
|
|
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.
|