Documentation for the consts

This commit is contained in:
Nathan Kellenicki 2018-12-30 20:56:39 -08:00
parent ad58052b72
commit fa6a3a3798
12 changed files with 282 additions and 282 deletions

156
DOCS.md
View File

@ -18,13 +18,13 @@
## Typedefs
<dl>
<dt><a href="#Devices">Devices</a></dt>
<dt><a href="#Device">Device</a></dt>
<dd></dd>
<dt><a href="#Colors">Colors</a></dt>
<dt><a href="#Color">Color</a></dt>
<dd></dd>
<dt><a href="#ButtonStates">ButtonStates</a></dt>
<dt><a href="#ButtonState">ButtonState</a></dt>
<dd></dd>
<dt><a href="#DuploTrainBaseSounds">DuploTrainBaseSounds</a></dt>
<dt><a href="#DuploTrainBaseSound">DuploTrainBaseSound</a></dt>
<dd></dd>
</dl>
@ -183,9 +183,9 @@ Set the color of the LED on the Hub via a color value.
**Kind**: instance method of [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="WeDo2SmartHub+setLEDRGB"></a>
@ -332,10 +332,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="WeDo2SmartHub+event_distance"></a>
@ -356,10 +356,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="WeDo2SmartHub+event_tilt"></a>
@ -393,10 +393,10 @@ Emits when a motor or sensor is attached to the Hub.
**Kind**: event emitted by [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| type | <code>number</code> | A number representing one of the <a href="#Devices">Devices</a>.. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| type | [<code>Device</code>](#Device) |
<a name="Hub+event_detach"></a>
@ -585,9 +585,9 @@ Set the color of the LED on the Hub via a color value.
**Kind**: instance method of [<code>BoostMoveHub</code>](#BoostMoveHub)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+setLEDRGB"></a>
@ -683,10 +683,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>BoostMoveHub</code>](#BoostMoveHub)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="LPF2Hub+event_distance"></a>
@ -707,10 +707,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>BoostMoveHub</code>](#BoostMoveHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -722,7 +722,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="LPF2Hub+event_tilt"></a>
@ -758,10 +758,10 @@ Emits when a motor or sensor is attached to the Hub.
**Kind**: event emitted by [<code>BoostMoveHub</code>](#BoostMoveHub)
**Overrides**: [<code>attach</code>](#Hub+event_attach)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| type | <code>number</code> | A number representing one of the <a href="#Devices">Devices</a>.. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| type | [<code>Device</code>](#Device) |
<a name="Hub+event_detach"></a>
@ -935,9 +935,9 @@ Set the color of the LED on the Hub via a color value.
**Kind**: instance method of [<code>PUPHub</code>](#PUPHub)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+setLEDRGB"></a>
@ -1033,10 +1033,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>PUPHub</code>](#PUPHub)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="LPF2Hub+event_distance"></a>
@ -1057,10 +1057,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>PUPHub</code>](#PUPHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -1072,7 +1072,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="LPF2Hub+event_tilt"></a>
@ -1096,10 +1096,10 @@ Emits when a motor or sensor is attached to the Hub.
**Kind**: event emitted by [<code>PUPHub</code>](#PUPHub)
**Overrides**: [<code>attach</code>](#Hub+event_attach)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| type | <code>number</code> | A number representing one of the <a href="#Devices">Devices</a>.. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| type | [<code>Device</code>](#Device) |
<a name="Hub+event_detach"></a>
@ -1211,9 +1211,9 @@ Set the color of the LED on the Remote via a color value.
**Overrides**: [<code>setLEDColor</code>](#LPF2Hub+setLEDColor)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="PUPRemote+setLEDRGB"></a>
@ -1322,10 +1322,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>PUPRemote</code>](#PUPRemote)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -1337,7 +1337,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="DuploTrainBase"></a>
@ -1442,9 +1442,9 @@ Set the color of the LED on the train via a color value.
**Overrides**: [<code>setLEDColor</code>](#LPF2Hub+setLEDColor)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="DuploTrainBase+setMotorSpeed"></a>
@ -1468,9 +1468,9 @@ Play a built-in train sound.
**Kind**: instance method of [<code>DuploTrainBase</code>](#DuploTrainBase)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| sound | <code>number</code> | A number representing one of the <a href="#DuploTrainBaseSounds">DuploTrainBaseSounds</a>. |
| Param | Type |
| --- | --- |
| sound | [<code>DuploTrainBaseSound</code>](#DuploTrainBaseSound) |
<a name="DuploTrainBase+rampMotorSpeed"></a>
@ -1593,10 +1593,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>DuploTrainBase</code>](#DuploTrainBase)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -1608,7 +1608,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="LPF2Hub+event_speed"></a>
@ -1623,9 +1623,9 @@ Emits on a speed change.
| port | <code>string</code> |
| speed | <code>number</code> |
<a name="Devices"></a>
<a name="Device"></a>
## Devices
## Device
**Kind**: global typedef
**Properties**
@ -1648,9 +1648,9 @@ Emits on a speed change.
| DUPLO_TRAIN_BASE_SPEEDOMETER | <code>number</code> | 44 |
| POWERED_UP_REMOTE_BUTTON | <code>number</code> | 55 |
<a name="Colors"></a>
<a name="Color"></a>
## Colors
## Color
**Kind**: global typedef
**Properties**
@ -1669,9 +1669,9 @@ Emits on a speed change.
| WHITE | <code>number</code> | 10 |
| NONE | <code>number</code> | 255 |
<a name="ButtonStates"></a>
<a name="ButtonState"></a>
## ButtonStates
## ButtonState
**Kind**: global typedef
**Properties**
@ -1683,9 +1683,9 @@ Emits on a speed change.
| DOWN | <code>number</code> | 3 |
| STOP | <code>number</code> | 4 |
<a name="DuploTrainBaseSounds"></a>
<a name="DuploTrainBaseSound"></a>
## DuploTrainBaseSounds
## DuploTrainBaseSound
**Kind**: global typedef
**Properties**

156
README.md
View File

@ -101,13 +101,13 @@ Thanks go to Jorge Pereira ([@JorgePe](https://github.com/JorgePe)), Sebastian R
## Typedefs
<dl>
<dt><a href="#Devices">Devices</a></dt>
<dt><a href="#Device">Device</a></dt>
<dd></dd>
<dt><a href="#Colors">Colors</a></dt>
<dt><a href="#Color">Color</a></dt>
<dd></dd>
<dt><a href="#ButtonStates">ButtonStates</a></dt>
<dt><a href="#ButtonState">ButtonState</a></dt>
<dd></dd>
<dt><a href="#DuploTrainBaseSounds">DuploTrainBaseSounds</a></dt>
<dt><a href="#DuploTrainBaseSound">DuploTrainBaseSound</a></dt>
<dd></dd>
</dl>
@ -266,9 +266,9 @@ Set the color of the LED on the Hub via a color value.
**Kind**: instance method of [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="WeDo2SmartHub+setLEDRGB"></a>
@ -415,10 +415,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="WeDo2SmartHub+event_distance"></a>
@ -439,10 +439,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="WeDo2SmartHub+event_tilt"></a>
@ -476,10 +476,10 @@ Emits when a motor or sensor is attached to the Hub.
**Kind**: event emitted by [<code>WeDo2SmartHub</code>](#WeDo2SmartHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| type | <code>number</code> | A number representing one of the <a href="#Devices">Devices</a>.. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| type | [<code>Device</code>](#Device) |
<a name="Hub+event_detach"></a>
@ -668,9 +668,9 @@ Set the color of the LED on the Hub via a color value.
**Kind**: instance method of [<code>BoostMoveHub</code>](#BoostMoveHub)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+setLEDRGB"></a>
@ -766,10 +766,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>BoostMoveHub</code>](#BoostMoveHub)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="LPF2Hub+event_distance"></a>
@ -790,10 +790,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>BoostMoveHub</code>](#BoostMoveHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -805,7 +805,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="LPF2Hub+event_tilt"></a>
@ -841,10 +841,10 @@ Emits when a motor or sensor is attached to the Hub.
**Kind**: event emitted by [<code>BoostMoveHub</code>](#BoostMoveHub)
**Overrides**: [<code>attach</code>](#Hub+event_attach)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| type | <code>number</code> | A number representing one of the <a href="#Devices">Devices</a>.. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| type | [<code>Device</code>](#Device) |
<a name="Hub+event_detach"></a>
@ -1018,9 +1018,9 @@ Set the color of the LED on the Hub via a color value.
**Kind**: instance method of [<code>PUPHub</code>](#PUPHub)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+setLEDRGB"></a>
@ -1116,10 +1116,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>PUPHub</code>](#PUPHub)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="LPF2Hub+event_distance"></a>
@ -1140,10 +1140,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>PUPHub</code>](#PUPHub)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -1155,7 +1155,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="LPF2Hub+event_tilt"></a>
@ -1179,10 +1179,10 @@ Emits when a motor or sensor is attached to the Hub.
**Kind**: event emitted by [<code>PUPHub</code>](#PUPHub)
**Overrides**: [<code>attach</code>](#Hub+event_attach)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| type | <code>number</code> | A number representing one of the <a href="#Devices">Devices</a>.. |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| type | [<code>Device</code>](#Device) |
<a name="Hub+event_detach"></a>
@ -1294,9 +1294,9 @@ Set the color of the LED on the Remote via a color value.
**Overrides**: [<code>setLEDColor</code>](#LPF2Hub+setLEDColor)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="PUPRemote+setLEDRGB"></a>
@ -1405,10 +1405,10 @@ Emits when a button is pressed.
**Kind**: event emitted by [<code>PUPRemote</code>](#PUPRemote)
| Param | Type | Description |
| --- | --- | --- |
| button | <code>string</code> | |
| state | <code>number</code> | A number representing one of the <a href="#ButtonStates">ButtonStates</a>. |
| Param | Type |
| --- | --- |
| button | <code>string</code> |
| state | [<code>ButtonState</code>](#ButtonState) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -1420,7 +1420,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="DuploTrainBase"></a>
@ -1525,9 +1525,9 @@ Set the color of the LED on the train via a color value.
**Overrides**: [<code>setLEDColor</code>](#LPF2Hub+setLEDColor)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a>. |
| Param | Type |
| --- | --- |
| color | [<code>Color</code>](#Color) |
<a name="DuploTrainBase+setMotorSpeed"></a>
@ -1551,9 +1551,9 @@ Play a built-in train sound.
**Kind**: instance method of [<code>DuploTrainBase</code>](#DuploTrainBase)
**Returns**: <code>Promise</code> - Resolved upon successful issuance of command.
| Param | Type | Description |
| --- | --- | --- |
| sound | <code>number</code> | A number representing one of the <a href="#DuploTrainBaseSounds">DuploTrainBaseSounds</a>. |
| Param | Type |
| --- | --- |
| sound | [<code>DuploTrainBaseSound</code>](#DuploTrainBaseSound) |
<a name="DuploTrainBase+rampMotorSpeed"></a>
@ -1676,10 +1676,10 @@ Emits when a color sensor is activated.
**Kind**: event emitted by [<code>DuploTrainBase</code>](#DuploTrainBase)
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| Param | Type |
| --- | --- |
| port | <code>string</code> |
| color | [<code>Color</code>](#Color) |
<a name="LPF2Hub+event_colorAndDistance"></a>
@ -1691,7 +1691,7 @@ A combined color and distance event, emits when the sensor is activated.
| Param | Type | Description |
| --- | --- | --- |
| port | <code>string</code> | |
| color | <code>number</code> | A number representing one of the LED <a href="#Colors">Colors</a> |
| color | [<code>Color</code>](#Color) | |
| distance | <code>number</code> | Distance, in millimeters. |
<a name="LPF2Hub+event_speed"></a>
@ -1706,9 +1706,9 @@ Emits on a speed change.
| port | <code>string</code> |
| speed | <code>number</code> |
<a name="Devices"></a>
<a name="Device"></a>
## Devices
## Device
**Kind**: global typedef
**Properties**
@ -1731,9 +1731,9 @@ Emits on a speed change.
| DUPLO_TRAIN_BASE_SPEEDOMETER | <code>number</code> | 44 |
| POWERED_UP_REMOTE_BUTTON | <code>number</code> | 55 |
<a name="Colors"></a>
<a name="Color"></a>
## Colors
## Color
**Kind**: global typedef
**Properties**
@ -1752,9 +1752,9 @@ Emits on a speed change.
| WHITE | <code>number</code> | 10 |
| NONE | <code>number</code> | 255 |
<a name="ButtonStates"></a>
<a name="ButtonState"></a>
## ButtonStates
## ButtonState
**Kind**: global typedef
**Properties**
@ -1766,9 +1766,9 @@ Emits on a speed change.
| DOWN | <code>number</code> | 3 |
| STOP | <code>number</code> | 4 |
<a name="DuploTrainBaseSounds"></a>
<a name="DuploTrainBaseSound"></a>
## DuploTrainBaseSounds
## DuploTrainBaseSound
**Kind**: global typedef
**Properties**

View File

@ -27,13 +27,13 @@ export class BoostMoveHub extends LPF2Hub {
public static IsBoostMoveHub (peripheral: Peripheral) {
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEServices.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.BOOST_MOVE_HUB_ID);
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.BOOST_MOVE_HUB_ID);
}
constructor (peripheral: Peripheral, autoSubscribe: boolean = true) {
super(peripheral, autoSubscribe);
this.type = Consts.Hubs.BOOST_MOVE_HUB;
this.type = Consts.Hub.BOOST_MOVE_HUB;
this._ports = {
"A": new Port("A", 55),
"B": new Port("B", 56),
@ -82,7 +82,7 @@ export class BoostMoveHub extends LPF2Hub {
return new Promise((resolve, reject) => {
if (time && typeof time === "number") {
if (portObj.type === Consts.Devices.BOOST_TACHO_MOTOR || portObj.type === Consts.Devices.BOOST_MOVE_HUB_MOTOR) {
if (portObj.type === Consts.Device.BOOST_TACHO_MOTOR || portObj.type === Consts.Device.BOOST_MOVE_HUB_MOTOR) {
portObj.busy = true;
let data = null;
if (portObj.id === "AB") {
@ -92,17 +92,17 @@ export class BoostMoveHub extends LPF2Hub {
data = Buffer.from([0x81, portObj.value, 0x11, 0x09, 0x00, 0x00, this._mapSpeed(speed), 0x64, 0x7f, 0x03]);
}
data.writeUInt16LE(time > 65535 ? 65535 : time, 4);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
portObj.finished = () => {
return resolve();
};
} else {
// @ts-ignore: The type of speed is properly checked at the start
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, this._mapSpeed(speed)]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
const timeout = global.setTimeout(() => {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
// @ts-ignore: The type of time is properly checked at the start
}, time);
@ -111,7 +111,7 @@ export class BoostMoveHub extends LPF2Hub {
} else {
if (portObj.type === Consts.Devices.BOOST_TACHO_MOTOR || portObj.type === Consts.Devices.BOOST_MOVE_HUB_MOTOR) {
if (portObj.type === Consts.Device.BOOST_TACHO_MOTOR || portObj.type === Consts.Device.BOOST_MOVE_HUB_MOTOR) {
portObj.busy = true;
let data = null;
if (portObj.id === "AB") {
@ -120,14 +120,14 @@ export class BoostMoveHub extends LPF2Hub {
// @ts-ignore: The type of speed is properly checked at the start
data = Buffer.from([0x81, portObj.value, 0x11, 0x01, this._mapSpeed(speed), 0x64, 0x7f, 0x03]);
}
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
portObj.finished = () => {
return resolve();
};
} else {
// @ts-ignore: The type of speed is properly checked at the start
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, this._mapSpeed(speed)]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
}
}
@ -167,7 +167,7 @@ export class BoostMoveHub extends LPF2Hub {
*/
public setMotorAngle (port: string, angle: number, speed: number | [number, number] = 100) {
const portObj = this._portLookup(port);
if (!(portObj.type === Consts.Devices.BOOST_TACHO_MOTOR || portObj.type === Consts.Devices.BOOST_MOVE_HUB_MOTOR)) {
if (!(portObj.type === Consts.Device.BOOST_TACHO_MOTOR || portObj.type === Consts.Device.BOOST_MOVE_HUB_MOTOR)) {
throw new Error("Angle rotation is only available when using a Boost Tacho Motor or Boost Move Hub Motor");
}
if (portObj.id !== "AB" && speed instanceof Array) {
@ -184,7 +184,7 @@ export class BoostMoveHub extends LPF2Hub {
data = Buffer.from([0x81, portObj.value, 0x11, 0x0b, 0x00, 0x00, 0x00, 0x00, this._mapSpeed(speed), 0x64, 0x7f, 0x03]);
}
data.writeUInt32LE(angle, 4);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
portObj.finished = () => {
return resolve();
};
@ -205,11 +205,11 @@ export class BoostMoveHub extends LPF2Hub {
portObj.cancelEventTimer();
return new Promise((resolve, reject) => {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, brightness]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
if (time) {
const timeout = global.setTimeout(() => {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
}, time);
portObj.setEventTimer(timeout);

View File

@ -1,4 +1,4 @@
export enum Hubs {
export enum Hub {
UNKNOWN = 0,
WEDO2_SMART_HUB = 1,
BOOST_MOVE_HUB = 2,
@ -9,7 +9,7 @@ export enum Hubs {
/**
* @typedef Devices
* @typedef Device
* @property {number} UNKNOWN 0
* @property {number} BASIC_MOTOR 1
* @property {number} TRAIN_MOTOR 2
@ -27,7 +27,7 @@ export enum Hubs {
* @property {number} DUPLO_TRAIN_BASE_SPEEDOMETER 44
* @property {number} POWERED_UP_REMOTE_BUTTON 55
*/
export enum Devices {
export enum Device {
UNKNOWN = 0,
BASIC_MOTOR = 1,
TRAIN_MOTOR = 2,
@ -48,7 +48,7 @@ export enum Devices {
/**
* @typedef Colors
* @typedef Color
* @property {number} BLACK 0
* @property {number} PINK 1
* @property {number} PURPLE 2
@ -62,7 +62,7 @@ export enum Devices {
* @property {number} WHITE 10
* @property {number} NONE 255
*/
export enum Colors {
export enum Color {
BLACK = 0,
PINK = 1,
PURPLE = 2,
@ -79,14 +79,14 @@ export enum Colors {
/**
* @typedef ButtonStates
* @typedef ButtonState
* @property {number} PRESSED 0
* @property {number} RELEASED 1
* @property {number} UP 2
* @property {number} DOWN 3
* @property {number} STOP 4
*/
export enum ButtonStates {
export enum ButtonState {
PRESSED = 0,
RELEASED = 1,
UP = 2,
@ -96,14 +96,14 @@ export enum ButtonStates {
/**
* @typedef DuploTrainBaseSounds
* @typedef DuploTrainBaseSound
* @property {number} BRAKE 3
* @property {number} STATION_DEPARTURE 5
* @property {number} WATER_REFILL 7
* @property {number} HORN 9
* @property {number} STEAM 10
*/
export enum DuploTrainBaseSounds {
export enum DuploTrainBaseSound {
BREAK = 3,
STATION_DEPARTURE = 5,
WATER_REFILL = 7,
@ -120,13 +120,13 @@ export enum BLEManufacturerData {
}
export enum BLEServices {
export enum BLEService {
WEDO2_SMART_HUB = "00001523-1212-efde-1523-785feabcd123",
LPF2_HUB = "00001623-1212-efde-1623-785feabcd123"
}
export enum BLECharacteristics {
export enum BLECharacteristic {
WEDO2_BATTERY = "2a19",
WEDO2_BUTTON = "00001526-1212-efde-1523-785feabcd123", // "1526"
WEDO2_PORT_TYPE = "00001527-1212-efde-1523-785feabcd123", // "1527" // Handles plugging and unplugging of devices on WeDo 2.0 Smart Hub

View File

@ -52,13 +52,13 @@ export class DuploTrainBase extends LPF2Hub {
public static IsDuploTrainBase (peripheral: Peripheral) {
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEServices.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.DUPLO_TRAIN_HUB_ID);
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.DUPLO_TRAIN_HUB_ID);
}
constructor (peripheral: Peripheral, autoSubscribe: boolean = true) {
super(peripheral, autoSubscribe);
this.type = Consts.Hubs.DUPLO_TRAIN_HUB;
this.type = Consts.Hub.DUPLO_TRAIN_HUB;
this._ports = {
"MOTOR": new Port("MOTOR", 0),
"COLOR": new Port("COLOR", 18),
@ -81,7 +81,7 @@ export class DuploTrainBase extends LPF2Hub {
/**
* Set the color of the LED on the train via a color value.
* @method DuploTrainBase#setLEDColor
* @param {number} color A number representing one of the LED <a href="#Colors">Colors</a>.
* @param {Color} color
* @returns {Promise} Resolved upon successful issuance of command.
*/
public setLEDColor (color: number | boolean) {
@ -90,7 +90,7 @@ export class DuploTrainBase extends LPF2Hub {
color = 0;
}
const data = Buffer.from([0x81, 0x11, 0x11, 0x51, 0x00, color]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
});
}
@ -119,16 +119,16 @@ export class DuploTrainBase extends LPF2Hub {
return new Promise((resolve, reject) => {
if (time && typeof time === "number") {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, this._mapSpeed(speed)]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
const timeout = global.setTimeout(() => {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
}, time);
portObj.setEventTimer(timeout);
} else {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, this._mapSpeed(speed)]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
}
});
@ -138,13 +138,13 @@ export class DuploTrainBase extends LPF2Hub {
/**
* Play a built-in train sound.
* @method DuploTrainBase#playSound
* @param {number} sound A number representing one of the <a href="#DuploTrainBaseSounds">DuploTrainBaseSounds</a>.
* @param {DuploTrainBaseSound} sound
* @returns {Promise} Resolved upon successful issuance of command.
*/
public playSound (sound: number) {
return new Promise((resolve, reject) => {
const data = Buffer.from([0x81, 0x01, 0x11, 0x51, 0x01, sound]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
});
}

22
hub.ts
View File

@ -19,7 +19,7 @@ export class Hub extends EventEmitter {
public autoSubscribe: boolean = true;
public useSpeedMap: boolean = true;
public type: Consts.Hubs = Consts.Hubs.UNKNOWN;
public type: Consts.Hub = Consts.Hub.UNKNOWN;
protected _ports: {[port: string]: Port} = {};
protected _characteristics: {[uuid: string]: Characteristic} = {};
@ -257,12 +257,12 @@ export class Hub extends EventEmitter {
* Emits when a motor or sensor is attached to the Hub.
* @event Hub#attach
* @param {string} port
* @param {number} type A number representing one of the <a href="#Devices">Devices</a>..
* @param {Device} type
*/
this.emit("attach", port.id, type);
}
} else {
port.type = Consts.Devices.UNKNOWN;
port.type = Consts.Device.UNKNOWN;
debug(`Port ${port.id} disconnected`);
/**
* Emits when an attached motor or sensor is detached from the Hub.
@ -349,19 +349,19 @@ export class Hub extends EventEmitter {
}
private _getModeForDeviceType (type: Consts.Devices) {
private _getModeForDeviceType (type: Consts.Device) {
switch (type) {
case Consts.Devices.BASIC_MOTOR:
case Consts.Device.BASIC_MOTOR:
return 0x02;
case Consts.Devices.TRAIN_MOTOR:
case Consts.Device.TRAIN_MOTOR:
return 0x02;
case Consts.Devices.BOOST_TACHO_MOTOR:
case Consts.Device.BOOST_TACHO_MOTOR:
return 0x02;
case Consts.Devices.BOOST_MOVE_HUB_MOTOR:
case Consts.Device.BOOST_MOVE_HUB_MOTOR:
return 0x02;
case Consts.Devices.BOOST_DISTANCE:
return (this.type === Consts.Hubs.WEDO2_SMART_HUB ? 0x00 : 0x08);
case Consts.Devices.BOOST_TILT:
case Consts.Device.BOOST_DISTANCE:
return (this.type === Consts.Hub.WEDO2_SMART_HUB ? 0x00 : 0x08);
case Consts.Device.BOOST_TILT:
return 0x04;
default:
return 0x00;

View File

@ -37,13 +37,13 @@ export class LPF2Hub extends Hub {
public connect () {
return new Promise(async (resolve, reject) => {
await super.connect();
const characteristic = this._getCharacteristic(Consts.BLECharacteristics.LPF2_ALL);
const characteristic = this._getCharacteristic(Consts.BLECharacteristic.LPF2_ALL);
this._subscribeToCharacteristic(characteristic, this._parseMessage.bind(this));
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, Buffer.from([0x01, 0x02, 0x02])); // Activate button reports
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, Buffer.from([0x41, 0x3b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01])); // Activate current reports
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, Buffer.from([0x41, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01])); // Activate voltage reports
if (this.type === Consts.Hubs.DUPLO_TRAIN_HUB) {
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, Buffer.from([0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]));
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, Buffer.from([0x01, 0x02, 0x02])); // Activate button reports
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, Buffer.from([0x41, 0x3b, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01])); // Activate current reports
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, Buffer.from([0x41, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01])); // Activate voltage reports
if (this.type === Consts.Hub.DUPLO_TRAIN_HUB) {
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, Buffer.from([0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]));
}
return resolve();
});
@ -64,8 +64,8 @@ export class LPF2Hub extends Hub {
let data = Buffer.from([0x01, 0x01, 0x01]);
data = Buffer.concat([data, Buffer.from(name, "ascii")]);
// Send this twice, as sometimes the first time doesn't take
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
this._name = name;
return resolve();
});
@ -75,18 +75,18 @@ export class LPF2Hub extends Hub {
/**
* Set the color of the LED on the Hub via a color value.
* @method LPF2Hub#setLEDColor
* @param {number} color A number representing one of the LED <a href="#Colors">Colors</a>.
* @param {Color} color
* @returns {Promise} Resolved upon successful issuance of command.
*/
public setLEDColor (color: number | boolean) {
return new Promise((resolve, reject) => {
let data = Buffer.from([0x41, 0x32, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
if (color === false) {
color = 0;
}
data = Buffer.from([0x81, 0x32, 0x11, 0x51, 0x00, color]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
});
}
@ -103,21 +103,21 @@ export class LPF2Hub extends Hub {
public setLEDRGB (red: number, green: number, blue: number) {
return new Promise((resolve, reject) => {
let data = Buffer.from([0x41, 0x32, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
data = Buffer.from([0x81, 0x32, 0x11, 0x51, 0x01, red, green, blue]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
});
}
protected _activatePortDevice (port: number, type: number, mode: number, format: number, callback?: () => void) {
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, Buffer.from([0x41, port, mode, 0x01, 0x00, 0x00, 0x00, 0x01]), callback);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, Buffer.from([0x41, port, mode, 0x01, 0x00, 0x00, 0x00, 0x01]), callback);
}
protected _deactivatePortDevice (port: number, type: number, mode: number, format: number, callback?: () => void) {
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, Buffer.from([0x41, port, mode, 0x01, 0x00, 0x00, 0x00, 0x00]), callback);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, Buffer.from([0x41, port, mode, 0x01, 0x00, 0x00, 0x00, 0x00]), callback);
}
@ -186,12 +186,12 @@ export class LPF2Hub extends Hub {
* Emits when a button is pressed.
* @event LPF2Hub#button
* @param {string} button
* @param {number} state A number representing one of the <a href="#ButtonStates">ButtonStates</a>.
* @param {ButtonState} state
*/
this.emit("button", "GREEN", Consts.ButtonStates.PRESSED);
this.emit("button", "GREEN", Consts.ButtonState.PRESSED);
return;
} else if (data[5] === 0) {
this.emit("button", "GREEN", Consts.ButtonStates.RELEASED);
this.emit("button", "GREEN", Consts.ButtonState.RELEASED);
return;
}
}
@ -242,12 +242,12 @@ export class LPF2Hub extends Hub {
private _parseSensorMessage (data: Buffer) {
if ((data[3] === 0x3b && this.type === Consts.Hubs.POWERED_UP_REMOTE) || (data[3] === 0x3c && this.type !== Consts.Hubs.POWERED_UP_REMOTE)) { // Voltage
if ((data[3] === 0x3b && this.type === Consts.Hub.POWERED_UP_REMOTE) || (data[3] === 0x3c && this.type !== Consts.Hub.POWERED_UP_REMOTE)) { // Voltage
data = this._padMessage(data, 6);
const batteryLevel = (data.readUInt16LE(4) / 4096) * 100;
this._batteryLevel = Math.floor(batteryLevel);
return;
} else if (data[3] === 0x3b && this.type !== Consts.Hubs.POWERED_UP_REMOTE) { // Current (Non-PUP Remote)
} else if (data[3] === 0x3b && this.type !== Consts.Hub.POWERED_UP_REMOTE) { // Current (Non-PUP Remote)
data = this._padMessage(data, 6);
const current = data.readUInt16LE(4) / 4096;
this._current = current * 100;
@ -267,7 +267,7 @@ export class LPF2Hub extends Hub {
if (port && port.connected) {
switch (port.type) {
case Consts.Devices.WEDO2_DISTANCE:
case Consts.Device.WEDO2_DISTANCE:
{
let distance = data[4];
if (data[5] === 1) {
@ -282,14 +282,14 @@ export class LPF2Hub extends Hub {
this.emit("distance", port.id, distance * 10);
break;
}
case Consts.Devices.BOOST_DISTANCE:
case Consts.Device.BOOST_DISTANCE:
{
/**
* Emits when a color sensor is activated.
* @event LPF2Hub#color
* @param {string} port
* @param {number} color A number representing one of the LED <a href="#Colors">Colors</a>
* @param {Color} color
*/
if (data[4] <= 10) {
this.emit("color", port.id, data[4]);
@ -310,7 +310,7 @@ export class LPF2Hub extends Hub {
* A combined color and distance event, emits when the sensor is activated.
* @event LPF2Hub#colorAndDistance
* @param {string} port
* @param {number} color A number representing one of the LED <a href="#Colors">Colors</a>
* @param {Color} color
* @param {number} distance Distance, in millimeters.
*/
if (data[4] <= 10) {
@ -318,7 +318,7 @@ export class LPF2Hub extends Hub {
}
break;
}
case Consts.Devices.WEDO2_TILT:
case Consts.Device.WEDO2_TILT:
{
const tiltX = data[4] > 160 ? data[4] - 255 : data[4] - (data[4] * 2);
const tiltY = data[5] > 160 ? 255 - data[5] : data[5] - (data[5] * 2);
@ -334,7 +334,7 @@ export class LPF2Hub extends Hub {
this.emit("tilt", port.id, this._lastTiltX, this._lastTiltY);
break;
}
case Consts.Devices.BOOST_TACHO_MOTOR:
case Consts.Device.BOOST_TACHO_MOTOR:
{
const rotation = data.readInt32LE(4);
/**
@ -346,53 +346,53 @@ export class LPF2Hub extends Hub {
this.emit("rotate", port.id, rotation);
break;
}
case Consts.Devices.BOOST_MOVE_HUB_MOTOR:
case Consts.Device.BOOST_MOVE_HUB_MOTOR:
{
const rotation = data.readInt32LE(4);
this.emit("rotate", port.id, rotation);
break;
}
case Consts.Devices.BOOST_TILT:
case Consts.Device.BOOST_TILT:
{
const tiltX = data[4] > 160 ? data[4] - 255 : data[4];
const tiltY = data[5] > 160 ? 255 - data[5] : data[5] - (data[5] * 2);
this.emit("tilt", port.id, tiltX, tiltY);
break;
}
case Consts.Devices.POWERED_UP_REMOTE_BUTTON:
case Consts.Device.POWERED_UP_REMOTE_BUTTON:
{
switch (data[4]) {
case 0x01:
{
this.emit("button", port.id, Consts.ButtonStates.UP);
this.emit("button", port.id, Consts.ButtonState.UP);
break;
}
case 0xff:
{
this.emit("button", port.id, Consts.ButtonStates.DOWN);
this.emit("button", port.id, Consts.ButtonState.DOWN);
break;
}
case 0x7f:
{
this.emit("button", port.id, Consts.ButtonStates.STOP);
this.emit("button", port.id, Consts.ButtonState.STOP);
break;
}
case 0x00:
{
this.emit("button", port.id, Consts.ButtonStates.RELEASED);
this.emit("button", port.id, Consts.ButtonState.RELEASED);
break;
}
}
break;
}
case Consts.Devices.DUPLO_TRAIN_BASE_COLOR:
case Consts.Device.DUPLO_TRAIN_BASE_COLOR:
{
if (data[4] <= 10) {
this.emit("color", port.id, data[4]);
}
break;
}
case Consts.Devices.DUPLO_TRAIN_BASE_SPEEDOMETER:
case Consts.Device.DUPLO_TRAIN_BASE_SPEEDOMETER:
{
/**
* Emits on a speed change.

View File

@ -6,7 +6,7 @@ export class Port {
public id: string;
public value: number;
public type: Consts.Devices;
public type: Consts.Device;
public connected: boolean = false;
public busy: boolean = false;
public finished: (() => void) | null = null;
@ -16,7 +16,7 @@ export class Port {
constructor (id: string, value: number) {
this.id = id;
this.value = value;
this.type = Consts.Devices.UNKNOWN;
this.type = Consts.Device.UNKNOWN;
}
public cancelEventTimer () {

View File

@ -22,7 +22,7 @@ let wantScan = false;
const startScanning = () => {
if (isBrowserContext) {
noble.startScanning([Consts.BLEServices.WEDO2_SMART_HUB, Consts.BLEServices.LPF2_HUB]);
noble.startScanning([Consts.BLEService.WEDO2_SMART_HUB, Consts.BLEService.LPF2_HUB]);
} else {
noble.startScanning();
}

View File

@ -32,13 +32,13 @@ export class PUPHub extends LPF2Hub {
public static IsPUPHub (peripheral: Peripheral) {
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEServices.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.POWERED_UP_HUB_ID);
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.POWERED_UP_HUB_ID);
}
constructor (peripheral: Peripheral, autoSubscribe: boolean = true) {
super(peripheral, autoSubscribe);
this.type = Consts.Hubs.POWERED_UP_HUB;
this.type = Consts.Hub.POWERED_UP_HUB;
this._ports = {
"A": new Port("A", 0),
"B": new Port("B", 1),
@ -97,7 +97,7 @@ export class PUPHub extends LPF2Hub {
// @ts-ignore: The type of speed is properly checked at the start
data = Buffer.from([0x81, portObj.value, 0x11, 0x60, 0x00, this._mapSpeed(speed), 0x00, 0x00]);
}
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
const timeout = global.setTimeout(() => {
let data = null;
if (portObj.id === "AB") {
@ -105,7 +105,7 @@ export class PUPHub extends LPF2Hub {
} else {
data = Buffer.from([0x81, portObj.value, 0x11, 0x60, 0x00, 0x00, 0x00, 0x00]);
}
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
}, time);
portObj.setEventTimer(timeout);
@ -117,7 +117,7 @@ export class PUPHub extends LPF2Hub {
// @ts-ignore: The type of speed is properly checked at the start
data = Buffer.from([0x81, portObj.value, 0x11, 0x60, 0x00, this._mapSpeed(speed), 0x00, 0x00]);
}
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
}
});
@ -159,11 +159,11 @@ export class PUPHub extends LPF2Hub {
portObj.cancelEventTimer();
return new Promise((resolve, reject) => {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, brightness]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
if (time) {
const timeout = global.setTimeout(() => {
const data = Buffer.from([0x81, portObj.value, 0x11, 0x51, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
}, time);
portObj.setEventTimer(timeout);

View File

@ -57,13 +57,13 @@ export class PUPRemote extends LPF2Hub {
public static IsPUPRemote (peripheral: Peripheral) {
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEServices.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.POWERED_UP_REMOTE_ID);
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 && peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.POWERED_UP_REMOTE_ID);
}
constructor (peripheral: Peripheral, autoSubscribe: boolean = true) {
super(peripheral, autoSubscribe);
this.type = Consts.Hubs.POWERED_UP_REMOTE;
this.type = Consts.Hub.POWERED_UP_REMOTE;
this._ports = {
"LEFT": new Port("LEFT", 0),
"RIGHT": new Port("RIGHT", 1)
@ -85,18 +85,18 @@ export class PUPRemote extends LPF2Hub {
/**
* Set the color of the LED on the Remote via a color value.
* @method PUPRemote#setLEDColor
* @param {number} color A number representing one of the LED <a href="#Colors">Colors</a>.
* @param {Color} color
* @returns {Promise} Resolved upon successful issuance of command.
*/
public setLEDColor (color: number | boolean) {
return new Promise((resolve, reject) => {
let data = Buffer.from([0x41, 0x34, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
if (color === false) {
color = 0;
}
data = Buffer.from([0x81, 0x34, 0x11, 0x51, 0x00, color]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
});
}
@ -113,9 +113,9 @@ export class PUPRemote extends LPF2Hub {
public setLEDRGB (red: number, green: number, blue: number) {
return new Promise((resolve, reject) => {
let data = Buffer.from([0x41, 0x34, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
data = Buffer.from([0x81, 0x34, 0x11, 0x51, 0x01, red, green, blue]);
this._writeMessage(Consts.BLECharacteristics.LPF2_ALL, data);
this._writeMessage(Consts.BLECharacteristic.LPF2_ALL, data);
return resolve();
});
}

View File

@ -26,7 +26,7 @@ export class WeDo2SmartHub extends Hub {
public static IsWeDo2SmartHub (peripheral: Peripheral) {
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEServices.WEDO2_SMART_HUB.replace(/-/g, "")) >= 0);
return (peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.WEDO2_SMART_HUB.replace(/-/g, "")) >= 0);
}
@ -36,7 +36,7 @@ export class WeDo2SmartHub extends Hub {
constructor (peripheral: Peripheral, autoSubscribe: boolean = true) {
super(peripheral, autoSubscribe);
this.type = Consts.Hubs.WEDO2_SMART_HUB;
this.type = Consts.Hub.WEDO2_SMART_HUB;
this._ports = {
"A": new Port("A", 1),
"B": new Port("B", 2)
@ -49,12 +49,12 @@ export class WeDo2SmartHub extends Hub {
return new Promise(async (resolve, reject) => {
debug("Connecting to WeDo 2.0 Smart Hub");
await super.connect();
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristics.WEDO2_PORT_TYPE), this._parsePortMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristics.WEDO2_SENSOR_VALUE), this._parseSensorMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristics.WEDO2_BUTTON), this._parseSensorMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristics.WEDO2_BATTERY), this._parseBatteryMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristics.WEDO2_HIGH_CURRENT_ALERT), this._parseHighCurrentAlert.bind(this));
this._getCharacteristic(Consts.BLECharacteristics.WEDO2_BATTERY).read((err, data) => {
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristic.WEDO2_PORT_TYPE), this._parsePortMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristic.WEDO2_SENSOR_VALUE), this._parseSensorMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristic.WEDO2_BUTTON), this._parseSensorMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristic.WEDO2_BATTERY), this._parseBatteryMessage.bind(this));
this._subscribeToCharacteristic(this._getCharacteristic(Consts.BLECharacteristic.WEDO2_HIGH_CURRENT_ALERT), this._parseHighCurrentAlert.bind(this));
this._getCharacteristic(Consts.BLECharacteristic.WEDO2_BATTERY).read((err, data) => {
this._parseBatteryMessage(data);
});
debug("Connect completed");
@ -76,8 +76,8 @@ export class WeDo2SmartHub extends Hub {
return new Promise((resolve, reject) => {
const data = Buffer.from(name, "ascii");
// Send this twice, as sometimes the first time doesn't take
this._writeMessage(Consts.BLECharacteristics.WEDO2_NAME_ID, data);
this._writeMessage(Consts.BLECharacteristics.WEDO2_NAME_ID, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_NAME_ID, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_NAME_ID, data);
this._name = name;
return resolve();
});
@ -87,18 +87,18 @@ export class WeDo2SmartHub extends Hub {
/**
* Set the color of the LED on the Hub via a color value.
* @method WeDo2SmartHub#setLEDColor
* @param {number} color A number representing one of the LED <a href="#Colors">Colors</a>.
* @param {Color} color
* @returns {Promise} Resolved upon successful issuance of command.
*/
public setLEDColor (color: number | boolean) {
return new Promise((resolve, reject) => {
let data = Buffer.from([0x06, 0x17, 0x01, 0x01]);
this._writeMessage(Consts.BLECharacteristics.WEDO2_PORT_TYPE_WRITE, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_PORT_TYPE_WRITE, data);
if (color === false) {
color = 0;
}
data = Buffer.from([0x06, 0x04, 0x01, color]);
this._writeMessage(Consts.BLECharacteristics.WEDO2_MOTOR_VALUE_WRITE, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE, data);
return resolve();
});
}
@ -115,9 +115,9 @@ export class WeDo2SmartHub extends Hub {
public setLEDRGB (red: number, green: number, blue: number) {
return new Promise((resolve, reject) => {
let data = Buffer.from([0x06, 0x17, 0x01, 0x02]);
this._writeMessage(Consts.BLECharacteristics.WEDO2_PORT_TYPE_WRITE, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_PORT_TYPE_WRITE, data);
data = Buffer.from([0x06, 0x04, 0x03, red, green, blue]);
this._writeMessage(Consts.BLECharacteristics.WEDO2_MOTOR_VALUE_WRITE, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE, data);
return resolve();
});
}
@ -144,10 +144,10 @@ export class WeDo2SmartHub extends Hub {
portObj.cancelEventTimer();
}
return new Promise((resolve, reject) => {
this._writeMessage(Consts.BLECharacteristics.WEDO2_MOTOR_VALUE_WRITE, Buffer.from([portObj.value, 0x01, 0x02, this._mapSpeed(speed)]));
this._writeMessage(Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE, Buffer.from([portObj.value, 0x01, 0x02, this._mapSpeed(speed)]));
if (time && typeof time === "number") {
const timeout = global.setTimeout(() => {
this._writeMessage(Consts.BLECharacteristics.WEDO2_MOTOR_VALUE_WRITE, Buffer.from([portObj.value, 0x01, 0x02, 0x00]));
this._writeMessage(Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE, Buffer.from([portObj.value, 0x01, 0x02, 0x00]));
return resolve();
}, time);
portObj.setEventTimer(timeout);
@ -192,7 +192,7 @@ export class WeDo2SmartHub extends Hub {
const data = Buffer.from([0x05, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00]);
data.writeUInt16LE(frequency, 3);
data.writeUInt16LE(time, 5);
this._writeMessage(Consts.BLECharacteristics.WEDO2_MOTOR_VALUE_WRITE, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE, data);
global.setTimeout(resolve, time);
});
}
@ -211,11 +211,11 @@ export class WeDo2SmartHub extends Hub {
portObj.cancelEventTimer();
return new Promise((resolve, reject) => {
const data = Buffer.from([portObj.value, 0x01, 0x02, brightness]);
this._writeMessage(Consts.BLECharacteristics.WEDO2_MOTOR_VALUE_WRITE, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE, data);
if (time) {
const timeout = global.setTimeout(() => {
const data = Buffer.from([portObj.value, 0x01, 0x02, 0x00]);
this._writeMessage(Consts.BLECharacteristics.WEDO2_MOTOR_VALUE_WRITE, data);
this._writeMessage(Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE, data);
return resolve();
}, time);
portObj.setEventTimer(timeout);
@ -227,12 +227,12 @@ export class WeDo2SmartHub extends Hub {
protected _activatePortDevice (port: number, type: number, mode: number, format: number, callback?: () => void) {
this._writeMessage(Consts.BLECharacteristics.WEDO2_PORT_TYPE_WRITE, Buffer.from([0x01, 0x02, port, type, mode, 0x01, 0x00, 0x00, 0x00, format, 0x01]), callback);
this._writeMessage(Consts.BLECharacteristic.WEDO2_PORT_TYPE_WRITE, Buffer.from([0x01, 0x02, port, type, mode, 0x01, 0x00, 0x00, 0x00, format, 0x01]), callback);
}
protected _deactivatePortDevice (port: number, type: number, mode: number, format: number, callback?: () => void) {
this._writeMessage(Consts.BLECharacteristics.WEDO2_PORT_TYPE_WRITE, Buffer.from([0x01, 0x02, port, type, mode, 0x01, 0x00, 0x00, 0x00, format, 0x00]), callback);
this._writeMessage(Consts.BLECharacteristic.WEDO2_PORT_TYPE_WRITE, Buffer.from([0x01, 0x02, port, type, mode, 0x01, 0x00, 0x00, 0x00, format, 0x00]), callback);
}
@ -276,12 +276,12 @@ export class WeDo2SmartHub extends Hub {
* Emits when a button is pressed.
* @event WeDo2SmartHub#button
* @param {string} button
* @param {number} state A number representing one of the <a href="#ButtonStates">ButtonStates</a>.
* @param {ButtonState} state
*/
this.emit("button", "GREEN", Consts.ButtonStates.PRESSED);
this.emit("button", "GREEN", Consts.ButtonState.PRESSED);
return;
} else if (data[0] === 0x00) {
this.emit("button", "GREEN", Consts.ButtonStates.RELEASED);
this.emit("button", "GREEN", Consts.ButtonState.RELEASED);
return;
}
@ -293,7 +293,7 @@ export class WeDo2SmartHub extends Hub {
if (port && port.connected) {
switch (port.type) {
case Consts.Devices.WEDO2_DISTANCE:
case Consts.Device.WEDO2_DISTANCE:
{
let distance = data[2];
if (data[3] === 1) {
@ -308,19 +308,19 @@ export class WeDo2SmartHub extends Hub {
this.emit("distance", port.id, distance * 10);
break;
}
case Consts.Devices.BOOST_DISTANCE:
case Consts.Device.BOOST_DISTANCE:
{
const distance = data[2];
/**
* Emits when a color sensor is activated.
* @event WeDo2SmartHub#color
* @param {string} port
* @param {number} color A number representing one of the LED <a href="#Colors">Colors</a>.
* @param {Color} color
*/
this.emit("color", port.id, distance);
break;
}
case Consts.Devices.WEDO2_TILT:
case Consts.Device.WEDO2_TILT:
{
this._lastTiltX = data[2];
if (this._lastTiltX > 100) {
@ -340,7 +340,7 @@ export class WeDo2SmartHub extends Hub {
this.emit("tilt", port.id, this._lastTiltX, this._lastTiltY);
break;
}
case Consts.Devices.BOOST_TACHO_MOTOR:
case Consts.Device.BOOST_TACHO_MOTOR:
{
const rotation = data.readInt32LE(2);
/**