# Class: DuploTrainBase

## DuploTrainBase

#### new DuploTrainBase()

  The DuploTrainBase is emitted if the discovered device is a Duplo Train Base.

  Source:
    - duplotrainbase.js, line 15

### Extends

- LPF2Hub
- Hub

### Members

#### <readonly> batteryLevel

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `batteryLevel` | number | Battery level of the hub (Percentage between 0-100)

  Inherited From:
    - Hub#batteryLevel
  Overrides:
    - Hub#batteryLevel
  Source:
    - hub.js, line 75

#### <readonly> firmwareVersion

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `firmwareVersion` | string | Firmware version of the hub

  Inherited From:
    - Hub#firmwareVersion
  Overrides:
    - Hub#firmwareVersion
  Source:
    - hub.js, line 54

#### <readonly> name

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `name` | string | Name of the hub

  Inherited From:
    - Hub#name
  Overrides:
    - Hub#name
  Source:
    - hub.js, line 47

#### <readonly> rssi

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `rssi` | number | Signal strength of the hub

  Inherited From:
    - Hub#rssi
  Overrides:
    - Hub#rssi
  Source:
    - hub.js, line 68

#### <readonly> uuid

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `uuid` | string | UUID of the hub

  Inherited From:
    - Hub#uuid
  Overrides:
    - Hub#uuid
  Source:
    - hub.js, line 61

#### <readonly> voltage

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `voltage` | number | Voltage of the hub (Volts)

  Inherited From:
    - Hub#voltage
  Overrides:
    - Hub#voltage
  Source:
    - hub.js, line 82

### Methods

#### brakeMotor(port)

  Fully (hard) stop the motor on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Source:
    - duplotrainbase.js, line 146

  ##### Returns:

  Resolved upon successful completion of command.

  Type
    Promise

#### connect()

  Connect to the Hub.

  Inherited From:
    - Hub#connect
  Overrides:
    - Hub#connect
  Source:
    - hub.js, line 92

  ##### Returns:

  Resolved upon successful connect.

  Type
    Promise

#### disconnect()

  Disconnect the Hub.

  Inherited From:
    - Hub#disconnect
  Overrides:
    - Hub#disconnect
  Source:
    - hub.js, line 152

  ##### Returns:

  Resolved upon successful disconnect.

  Type
    Promise

#### getHubType()

  Get the hub type.

  Inherited From:
    - Hub#getHubType
  Overrides:
    - Hub#getHubType
  Source:
    - hub.js, line 220

  ##### Returns:

  Type
    HubType

#### getPortDeviceType(port)

  Get the device type for a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#getPortDeviceType
  Overrides:
    - Hub#getPortDeviceType
  Source:
    - hub.js, line 228

  ##### Returns:

  Type
    DeviceType

#### playSound(sound)

  Play a built-in train sound.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `sound` | DuploTrainBaseSound |

  Source:
    - duplotrainbase.js, line 155

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### rampMotorSpeed(port, fromSpeed, toSpeed, time)

  Ramp the motor speed on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `fromSpeed` | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
  `toSpeed` | number | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
  `time` | number | How long the ramp should last (in milliseconds).

  Source:
    - duplotrainbase.js, line 126

  ##### Returns:

  Resolved upon successful completion of command.

  Type
    Promise

#### setLEDColor(color)

  Set the color of the LED on the train via a color value.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | Color |

  Overrides:
    - LPF2Hub#setLEDColor
  Source:
    - duplotrainbase.js, line 72

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### setLEDRGB(red, green, blue)

  Set the color of the LED on the Hub via RGB values.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `red` | number |
  `green` | number |
  `blue` | number |

  Inherited From:
    - LPF2Hub#setLEDRGB
  Source:
    - lpf2hub.js, line 93

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### setMotorSpeed(port, speed [, time])

  Set the motor speed on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `speed` | number | Array.<number> |  | For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0. If you are specifying port AB to control both motors, you can optionally supply a tuple of speeds.
  `time` | number | <optional> | How long to activate the motor for (in milliseconds). Leave empty to turn the motor on indefinitely.

  Source:
    - duplotrainbase.js, line 88

  ##### Returns:

  Resolved upon successful completion of command. If time is specified, this is once the motor is finished.

  Type
    Promise

#### setName(name)

  Set the name of the Hub.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `name` | string | New name of the hub (14 characters or less, ASCII only).

  Inherited From:
    - LPF2Hub#setName
  Source:
    - lpf2hub.js, line 55

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### shutdown()

  Shutdown the Hub.

  Inherited From:
    - LPF2Hub#shutdown
  Source:
    - lpf2hub.js, line 43

  ##### Returns:

  Resolved upon successful disconnect.

  Type
    Promise

#### sleep(delay)

  Sleep a given amount of time.

  This is a helper method to make it easier to add delays into a chain of commands.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `delay` | number | How long to sleep (in milliseconds).

  Inherited From:
    - Hub#sleep
  Overrides:
    - Hub#sleep
  Source:
    - hub.js, line 196

  ##### Returns:

  Resolved after the delay is finished.

  Type
    Promise

#### subscribe(port [, mode])

  Subscribe to sensor notifications on a given port.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `port` | string |  |
  `mode` | number | <optional> | The sensor mode to activate. If no mode is provided, the default for that sensor will be chosen.

  Inherited From:
    - Hub#subscribe
  Overrides:
    - Hub#subscribe
  Source:
    - hub.js, line 164

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### unsubscribe(port)

  Unsubscribe to sensor notifications on a given port.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |

  Inherited From:
    - Hub#unsubscribe
  Overrides:
    - Hub#unsubscribe
  Source:
    - hub.js, line 182

  ##### Returns:

  Resolved upon successful issuance of command.

  Type
    Promise

#### wait(commands)

  Wait until a given list of concurrently running commands are complete.

  This is a helper method to make it easier to wait for concurrent commands to complete.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `commands` | Array.<Promise.<any>> | Array of executing commands.

  Inherited From:
    - Hub#wait
  Overrides:
    - Hub#wait
  Source:
    - hub.js, line 209

  ##### Returns:

  Resolved after the commands are finished.

  Type
    Promise

### Events

#### color

  Emits when a color sensor is activated.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `color` | Color |

  Inherited From:
    - LPF2Hub#event:color
  Source:
    - lpf2hub.js, line 271

#### speed

  Emits on a speed change.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `port` | string |
  `speed` | number |

  Inherited From:
    - LPF2Hub#event:speed
  Source:
    - lpf2hub.js, line 364

#### Search results