From 8a608b737ca3bc712b76b2b7cdf54b16d8145509 Mon Sep 17 00:00:00 2001 From: Nathan Kunicki Date: Thu, 21 Jun 2018 15:17:13 +0100 Subject: [PATCH] About --- ABOUT.md | 22 +++ DOCS.md | 394 +++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 23 ++- package.json | 3 +- 4 files changed, 440 insertions(+), 2 deletions(-) create mode 100644 ABOUT.md create mode 100644 DOCS.md diff --git a/ABOUT.md b/ABOUT.md new file mode 100644 index 0000000..1b8226a --- /dev/null +++ b/ABOUT.md @@ -0,0 +1,22 @@ +# node-lpf2 - A Node.js module to interface with Lego Power Functions 2.0 components. + +### Installation + +Node.js v8.0+ required. + +```javascript +npm install node-lpf2 --save +``` + +node-lpf2 uses the Noble BLE library by Sandeep Mistry. On macOS everything should function out of the box. On Linux and Windows there are [certain dependencies which may need installed first](https://github.com/sandeepmistry/noble#prerequisites). + +Note: node-lpf2 has been tested on macOS 10.11 and Debian/Raspbian on the Raspberry Pi 3 Model B. + +### Usage + +```javascript +const LPF2 = require("node-lpf2").LPF2; +const lpf2 = new LPF2(); +``` + +Examples are available in the "examples" directory. \ No newline at end of file diff --git a/DOCS.md b/DOCS.md new file mode 100644 index 0000000..55f2f83 --- /dev/null +++ b/DOCS.md @@ -0,0 +1,394 @@ +## Classes + +
+
LPF2EventEmitter
+
+
BoostHubHub
+
+
WeDo2HubHub
+
+
HubEventEmitter
+
+
+ + + +## LPF2 ⇐ EventEmitter +**Kind**: global class +**Extends**: EventEmitter + +* [LPF2](#LPF2) ⇐ EventEmitter + * [.scan()](#LPF2+scan) + * ["discover" (hub)](#LPF2+event_discover) + + + +### lpF2.scan() +Begin scanning for LPF2 Hub devices. + +**Kind**: instance method of [LPF2](#LPF2) + + +### "discover" (hub) +Emits when a LPF2 Hub device is found. + +**Kind**: event emitted by [LPF2](#LPF2) + +| Param | Type | +| --- | --- | +| hub | [Hub](#Hub) | + + + +## BoostHub ⇐ [Hub](#Hub) +**Kind**: global class +**Extends**: [Hub](#Hub) + +* [BoostHub](#BoostHub) ⇐ [Hub](#Hub) + * [.setLEDColor(color)](#BoostHub+setLEDColor) ⇒ Promise + * [.setMotorSpeed(port, speed, [time])](#BoostHub+setMotorSpeed) ⇒ Promise + * [.setMotorAngle(port, angle, [speed])](#BoostHub+setMotorAngle) ⇒ Promise + * [.connect([callback])](#Hub+connect) + * [.subscribe(port, [mode])](#Hub+subscribe) + * [.unsubscribe(port)](#Hub+unsubscribe) + * ["button" (button, state)](#BoostHub+event_button) + * ["distance" (port, distance)](#BoostHub+event_distance) + * ["color" (port, color)](#BoostHub+event_color) + * ["tilt" (port, x, y)](#BoostHub+event_tilt) + * ["rotate" (port, rotation)](#BoostHub+event_rotate) + + + +### boostHub.setLEDColor(color) ⇒ Promise +Set the color of the LED on the Hub via a color value. + +**Kind**: instance method of [BoostHub](#BoostHub) +**Returns**: Promise - Resolved upon successful completion of command. + +| Param | Type | Description | +| --- | --- | --- | +| color | number | A number representing one of the LED color consts. | + + + +### boostHub.setMotorSpeed(port, speed, [time]) ⇒ Promise +Set the motor speed on a given port. + +**Kind**: instance method of [BoostHub](#BoostHub) +**Returns**: Promise - Resolved upon successful completion of command. If time is specified, this is once the motor is finished. + +| Param | Type | Description | +| --- | --- | --- | +| port | string | | +| speed | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0. | +| [time] | number | How long to activate the motor for (in milliseconds). Leave empty to turn the motor on indefinitely. | + + + +### boostHub.setMotorAngle(port, angle, [speed]) ⇒ Promise +Rotate a motor by a given angle. + +**Kind**: instance method of [BoostHub](#BoostHub) +**Returns**: Promise - Resolved upon successful completion of command (ie. once the motor is finished). + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| port | string | | | +| angle | number | | How much the motor should be rotated (in degrees). | +| [speed] | number | 100 | How fast the motor should be rotated. | + + + +### boostHub.connect([callback]) +Connect to the Hub. + +**Kind**: instance method of [BoostHub](#BoostHub) +**Overrides**: [connect](#Hub+connect) + +| Param | Type | +| --- | --- | +| [callback] | function | + + + +### boostHub.subscribe(port, [mode]) +Subscribe to sensor notifications on a given port. + +**Kind**: instance method of [BoostHub](#BoostHub) + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| port | string | | | +| [mode] | number \| boolean | false | The sensor mode to activate. If no mode is provided, the default for that sensor will be chosen. | + + + +### boostHub.unsubscribe(port) +Unsubscribe to sensor notifications on a given port. + +**Kind**: instance method of [BoostHub](#BoostHub) + +| Param | Type | +| --- | --- | +| port | string | + + + +### "button" (button, state) +Emits when a button is pressed. + +**Kind**: event emitted by [BoostHub](#BoostHub) + +| Param | Type | Description | +| --- | --- | --- | +| button | string | | +| state | number | A number representing one of the button state consts. | + + + +### "distance" (port, distance) +Emits when a distance sensor is activated. + +**Kind**: event emitted by [BoostHub](#BoostHub) + +| Param | Type | Description | +| --- | --- | --- | +| port | string | | +| distance | number | Distance, in millimeters. | + + + +### "color" (port, color) +Emits when a color sensor is activated. + +**Kind**: event emitted by [BoostHub](#BoostHub) + +| Param | Type | Description | +| --- | --- | --- | +| port | string | | +| color | number | A number representing one of the LED color consts. | + + + +### "tilt" (port, x, y) +Emits when a tilt sensor is activated. + +**Kind**: event emitted by [BoostHub](#BoostHub) + +| Param | Type | +| --- | --- | +| port | string | +| x | number | +| y | number | + + + +### "rotate" (port, rotation) +Emits when a rotation sensor is activated. + +**Kind**: event emitted by [BoostHub](#BoostHub) + +| Param | Type | +| --- | --- | +| port | string | +| rotation | number | + + + +## WeDo2Hub ⇐ [Hub](#Hub) +**Kind**: global class +**Extends**: [Hub](#Hub) + +* [WeDo2Hub](#WeDo2Hub) ⇐ [Hub](#Hub) + * [.setLEDColor(color)](#WeDo2Hub+setLEDColor) ⇒ Promise + * [.setLEDRGB(red, green, blue)](#WeDo2Hub+setLEDRGB) ⇒ Promise + * [.setMotorSpeed(port, speed)](#WeDo2Hub+setMotorSpeed) ⇒ Promise + * [.connect([callback])](#Hub+connect) + * [.subscribe(port, [mode])](#Hub+subscribe) + * [.unsubscribe(port)](#Hub+unsubscribe) + * ["button" (button, state)](#WeDo2Hub+event_button) + * ["distance" (port, distance)](#WeDo2Hub+event_distance) + * ["color" (port, color)](#WeDo2Hub+event_color) + * ["tilt" (port, x, y)](#WeDo2Hub+event_tilt) + * ["rotate" (port, rotation)](#WeDo2Hub+event_rotate) + + + +### weDo2Hub.setLEDColor(color) ⇒ Promise +Set the color of the LED on the Hub via a color value. + +**Kind**: instance method of [WeDo2Hub](#WeDo2Hub) +**Returns**: Promise - Resolved upon successful completion of command. + +| Param | Type | Description | +| --- | --- | --- | +| color | number | A number representing one of the LED color consts. | + + + +### weDo2Hub.setLEDRGB(red, green, blue) ⇒ Promise +Set the color of the LED on the Hub via RGB values. + +**Kind**: instance method of [WeDo2Hub](#WeDo2Hub) +**Returns**: Promise - Resolved upon successful completion of command. + +| Param | Type | +| --- | --- | +| red | number | +| green | number | +| blue | number | + + + +### weDo2Hub.setMotorSpeed(port, speed) ⇒ Promise +Set the motor speed on a given port. + +**Kind**: instance method of [WeDo2Hub](#WeDo2Hub) +**Returns**: Promise - Resolved upon successful completion of command. + +| Param | Type | Description | +| --- | --- | --- | +| port | string | | +| speed | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0. | + + + +### weDo2Hub.connect([callback]) +Connect to the Hub. + +**Kind**: instance method of [WeDo2Hub](#WeDo2Hub) +**Overrides**: [connect](#Hub+connect) + +| Param | Type | +| --- | --- | +| [callback] | function | + + + +### weDo2Hub.subscribe(port, [mode]) +Subscribe to sensor notifications on a given port. + +**Kind**: instance method of [WeDo2Hub](#WeDo2Hub) + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| port | string | | | +| [mode] | number \| boolean | false | The sensor mode to activate. If no mode is provided, the default for that sensor will be chosen. | + + + +### weDo2Hub.unsubscribe(port) +Unsubscribe to sensor notifications on a given port. + +**Kind**: instance method of [WeDo2Hub](#WeDo2Hub) + +| Param | Type | +| --- | --- | +| port | string | + + + +### "button" (button, state) +Emits when a button is pressed. + +**Kind**: event emitted by [WeDo2Hub](#WeDo2Hub) + +| Param | Type | Description | +| --- | --- | --- | +| button | string | | +| state | number | A number representing one of the button state consts. | + + + +### "distance" (port, distance) +Emits when a distance sensor is activated. + +**Kind**: event emitted by [WeDo2Hub](#WeDo2Hub) + +| Param | Type | Description | +| --- | --- | --- | +| port | string | | +| distance | number | Distance, in millimeters. | + + + +### "color" (port, color) +Emits when a color sensor is activated. + +**Kind**: event emitted by [WeDo2Hub](#WeDo2Hub) + +| Param | Type | Description | +| --- | --- | --- | +| port | string | | +| color | number | A number representing one of the LED color consts. | + + + +### "tilt" (port, x, y) +Emits when a tilt sensor is activated. + +**Kind**: event emitted by [WeDo2Hub](#WeDo2Hub) + +| Param | Type | +| --- | --- | +| port | string | +| x | number | +| y | number | + + + +### "rotate" (port, rotation) +Emits when a rotation sensor is activated. + +**Kind**: event emitted by [WeDo2Hub](#WeDo2Hub) + +| Param | Type | +| --- | --- | +| port | string | +| rotation | number | + + + +## Hub ⇐ EventEmitter +**Kind**: global class +**Extends**: EventEmitter + +* [Hub](#Hub) ⇐ EventEmitter + * [.connect([callback])](#Hub+connect) + * [.subscribe(port, [mode])](#Hub+subscribe) + * [.unsubscribe(port)](#Hub+unsubscribe) + + + +### hub.connect([callback]) +Connect to the Hub. + +**Kind**: instance method of [Hub](#Hub) + +| Param | Type | +| --- | --- | +| [callback] | function | + + + +### hub.subscribe(port, [mode]) +Subscribe to sensor notifications on a given port. + +**Kind**: instance method of [Hub](#Hub) + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| port | string | | | +| [mode] | number \| boolean | false | The sensor mode to activate. If no mode is provided, the default for that sensor will be chosen. | + + + +### hub.unsubscribe(port) +Unsubscribe to sensor notifications on a given port. + +**Kind**: instance method of [Hub](#Hub) + +| Param | Type | +| --- | --- | +| port | string | + diff --git a/README.md b/README.md index 55f2f83..9ae8b06 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,25 @@ -## Classes +# node-lpf2 - A Node.js module to interface with Lego Power Functions 2.0 components. + +### Installation + +Node.js v8.0+ required. + +```javascript +npm install node-lpf2 --save +``` + +node-lpf2 uses the Noble BLE library by Sandeep Mistry. On macOS everything should function out of the box. On Linux and Windows there are [certain dependencies which may need installed first](https://github.com/sandeepmistry/noble#prerequisites). + +Note: node-lpf2 has been tested on macOS 10.11 and Debian/Raspbian on the Raspberry Pi 3 Model B. + +### Usage + +```javascript +const LPF2 = require("node-lpf2").LPF2; +const lpf2 = new LPF2(); +``` + +Examples are available in the "examples" directory.## Classes
LPF2EventEmitter
diff --git a/package.json b/package.json index 13cc7e9..f0417d1 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,8 @@ "types": "dist/lpf2.d.ts", "scripts": { "build": "tslint -c tslint.json \"*.ts\" && tsc", - "docs": "jsdoc2md dist/lpf2.js dist/boosthub.js dist/wedo2hub.js dist/hub.js dist/consts.js > README.md", + "docs": "jsdoc2md dist/lpf2.js dist/boosthub.js dist/wedo2hub.js dist/hub.js dist/consts.js > DOCS.md", + "readme": "cat ABOUT.md DOCS.md > README.md", "prepublishOnly": "tsc" }, "author": "Nathan Kunicki ",