Documentation for the consts
This commit is contained in:
parent
ad58052b72
commit
fa6a3a3798
156
DOCS.md
156
DOCS.md
@ -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
156
README.md
@ -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**
|
||||
|
||||
|
@ -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);
|
||||
|
22
consts.ts
22
consts.ts
@ -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
|
||||
|
@ -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
22
hub.ts
@ -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;
|
||||
|
70
lpf2hub.ts
70
lpf2hub.ts
@ -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.
|
||||
|
4
port.ts
4
port.ts
@ -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 () {
|
||||
|
@ -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();
|
||||
}
|
||||
|
14
puphub.ts
14
puphub.ts
@ -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);
|
||||
|
14
pupremote.ts
14
pupremote.ts
@ -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();
|
||||
});
|
||||
}
|
||||
|
@ -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);
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user