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 + +
EventEmitter
Hub
Hub
EventEmitter
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
EventEmitter