https://github.com/dislick/wiring-pi-wrapper
Node.js wrapper around wiring-pi written in TypeScript.
https://github.com/dislick/wiring-pi-wrapper
Last synced: over 1 year ago
JSON representation
Node.js wrapper around wiring-pi written in TypeScript.
- Host: GitHub
- URL: https://github.com/dislick/wiring-pi-wrapper
- Owner: dislick
- Created: 2016-04-04T12:06:58.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2017-07-05T11:34:49.000Z (almost 9 years ago)
- Last Synced: 2025-02-23T21:35:35.243Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 28.3 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# wiring-pi-wrapper
Node.js wrapper around [wiring-pi](https://github.com/eugeneware/wiring-pi) written in TypeScript.
## Usage
`npm install wiring-pi-wrapper --save`
```javascript
var wpw = require('wiring-pi-wrapper').WiringPiWrapper;
var pinLayout = require('wiring-pi-wrapper').PinLayout;
var pinModes = require('wiring-pi-wrapper').PinModes;
var ChangeWorker = require('wiring-pi-wrapper').ChangeWorker;
// setup the pin layout
wpw.setup(pinLayout.wpi);
// write example
var pin = wpw.setupPin(3, pinModes.output);
pin.write(true);
// read example
var pin = wpw.setupPin(2, pinModes.input);
var status = pin.read(); // returns a boolean
// event listener example
var pin = wpw.setupPin(2, pinModes.input);
ChangeWorker.interval = 50; // sets the worker interval
pin.addEventListener('change', (status) => {
console.log(status);
});
```
## API
### wpw
#### `wpw.setup(mode: wpw.PinLayout)`
Maps directly to the `wiring-pi` `setup()` function. Mode must be one of the following values:
- `PinLayout.wpi`: sets up pin numbering with [`wiringPiSetup()`](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#wiringpisetup)
- `PinLayout.gpio`: sets up pin numbering with [`wiringPiSetupGpio()`](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#wiringpisetupgpio)
- `PinLayout.sys`: sets up pin numbering with [`wiringPiSetupSys()`](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#wiringpisetupphys)
- `PinLayout.phys`: sets up pin numbering with [`wiringPiSetupPhys()`](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#wiringpisetupsys)
More information [can be found here](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#setupmode).
#### `wpw.setupPin(pin: number, mode: wpw.PinModes)`
Creates a new `Pin` object and executes the [`pinMode()`](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#pinmodepin-mode) function. Mode must be one of the following values:
- `PinModes.input`
- `PinModes.output`
### Pin
#### `constructor`
The `Pin` class cannot be instantiated using the `new` keyword. Use `wpw.setupPin()`.
#### `pin.read()`
Synchronously returns the status of the pin as a boolean. Maps to [`digitalRead()`](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#digitalreadpin).
#### `pin.write(status: boolean)`
Synchronously writes a status to the pin. Maps to [`digitalWrite()`](https://github.com/eugeneware/wiring-pi/blob/master/DOCUMENTATION.md#digitalwritepin-state).
#### `pin.addEventListener(event: string, handler: function)`
Binds one of the following events to the pin:
- `change`: Fires when the status of the pin changes. The `handler` function receives the status as a parameter.
#### `pin.removeEventListener(event: string, handler?: function)`
Unbinds an event listener. If no `handler` function gets passed it removes all registered event listeners of that event.
### ChangeWorker
#### `ChangeWorker.interval`
Allows the user to change the dirty checking interval of the pins.