node-poweredup 6.11.0 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.drone.yml +1 -0
- package/.gitmodules +3 -0
- package/{jsdoc.conf.json → .jsdoc.json} +14 -1
- package/README.md +47 -42
- package/dist/browser/poweredup.js +1 -1
- package/dist/browser/poweredup.js.map +1 -1
- package/dist/node/color.d.ts +6 -0
- package/dist/node/color.js +38 -0
- package/dist/node/color.js.map +1 -0
- package/dist/node/consts.d.ts +48 -27
- package/dist/node/consts.js +53 -31
- package/dist/node/consts.js.map +1 -1
- package/dist/node/devices/absolutemotor.js +6 -6
- package/dist/node/devices/absolutemotor.js.map +1 -1
- package/dist/node/devices/basicmotor.js +2 -2
- package/dist/node/devices/basicmotor.js.map +1 -1
- package/dist/node/devices/colordistancesensor.d.ts +11 -0
- package/dist/node/devices/colordistancesensor.js +95 -2
- package/dist/node/devices/colordistancesensor.js.map +1 -1
- package/dist/node/devices/device.js +2 -0
- package/dist/node/devices/device.js.map +1 -1
- package/dist/node/devices/duplotrainbasecolorsensor.d.ts +2 -1
- package/dist/node/devices/duplotrainbasecolorsensor.js +15 -2
- package/dist/node/devices/duplotrainbasecolorsensor.js.map +1 -1
- package/dist/node/devices/light.js +1 -1
- package/dist/node/devices/light.js.map +1 -1
- package/dist/node/devices/tachomotor.js +6 -6
- package/dist/node/devices/tachomotor.js.map +1 -1
- package/dist/node/devices/technic3x3colorlightmatrix.d.ts +22 -0
- package/dist/node/devices/technic3x3colorlightmatrix.js +77 -0
- package/dist/node/devices/technic3x3colorlightmatrix.js.map +1 -0
- package/dist/node/devices/techniccolorsensor.js +2 -1
- package/dist/node/devices/techniccolorsensor.js.map +1 -1
- package/dist/node/devices/technicmediumhubtiltsensor.d.ts +25 -1
- package/dist/node/devices/technicmediumhubtiltsensor.js +70 -2
- package/dist/node/devices/technicmediumhubtiltsensor.js.map +1 -1
- package/dist/node/devices/technicsmallangularmotor.d.ts +12 -0
- package/dist/node/devices/technicsmallangularmotor.js +35 -0
- package/dist/node/devices/technicsmallangularmotor.js.map +1 -0
- package/dist/node/hubs/basehub.js +4 -0
- package/dist/node/hubs/basehub.js.map +1 -1
- package/dist/node/hubs/hub.js +1 -1
- package/dist/node/hubs/hub.js.map +1 -1
- package/dist/node/hubs/lpf2hub.js +20 -19
- package/dist/node/hubs/lpf2hub.js.map +1 -1
- package/dist/node/hubs/movehub.js +1 -1
- package/dist/node/hubs/movehub.js.map +1 -1
- package/dist/node/hubs/technicmediumhub.js +1 -1
- package/dist/node/hubs/technicmediumhub.js.map +1 -1
- package/dist/node/hubs/technicsmallhub.d.ts +18 -0
- package/dist/node/hubs/technicsmallhub.js +64 -0
- package/dist/node/hubs/technicsmallhub.js.map +1 -0
- package/dist/node/index-browser.js +6 -0
- package/dist/node/index-browser.js.map +1 -1
- package/dist/node/index-node.d.ts +4 -1
- package/dist/node/index-node.js +7 -1
- package/dist/node/index-node.js.map +1 -1
- package/dist/node/poweredup-browser.js +8 -1
- package/dist/node/poweredup-browser.js.map +1 -1
- package/dist/node/poweredup-node.js +30 -1
- package/dist/node/poweredup-node.js.map +1 -1
- package/dist/node/utils.d.ts +1 -1
- package/dist/node/utils.js +10 -3
- package/dist/node/utils.js.map +1 -1
- package/docs/AbsoluteMotor.html +1220 -1405
- package/docs/BaseHub.html +787 -872
- package/docs/BasicMotor.html +923 -1078
- package/docs/ColorDistanceSensor.html +2188 -1540
- package/docs/CurrentSensor.html +711 -800
- package/docs/Device.html +574 -665
- package/docs/DuploTrainBase.html +1255 -1375
- package/docs/DuploTrainBaseColorSensor.html +1049 -978
- package/docs/DuploTrainBaseMotor.html +958 -1113
- package/docs/DuploTrainBaseSpeaker.html +793 -916
- package/docs/DuploTraniBaseSpeedometer.html +628 -719
- package/docs/Hub.html +5621 -2397
- package/docs/HubLED.html +831 -944
- package/docs/LPF2Hub.html +1215 -1335
- package/docs/Light.html +831 -944
- package/docs/Mario.html +1255 -1420
- package/docs/MarioAccelerometer.html +834 -911
- package/docs/MarioBarcodeSensor.html +834 -911
- package/docs/MarioPantsSensor.html +711 -800
- package/docs/MediumLinearMotor.html +861 -1000
- package/docs/MotionSensor.html +711 -800
- package/docs/MoveHub.html +1255 -1420
- package/docs/MoveHubMediumLinearMotor.html +861 -1000
- package/docs/MoveHubTiltSensor.html +730 -814
- package/docs/PiezoBuzzer.html +732 -834
- package/docs/PoweredUP.html +4322 -0
- package/docs/RemoteControl.html +1255 -1420
- package/docs/RemoteControlButton.html +711 -800
- package/docs/SimpleMediumLinearMotor.html +628 -719
- package/docs/TachoMotor.html +1644 -1835
- package/docs/Technic3x3ColorLightMatrix.html +1181 -0
- package/docs/TechnicColorSensor.html +1008 -1099
- package/docs/TechnicDistanceSensor.html +939 -1027
- package/docs/TechnicForceSensor.html +883 -968
- package/docs/TechnicLargeAngularMotor.html +1254 -1439
- package/docs/TechnicLargeLinearMotor.html +1254 -1439
- package/docs/TechnicMediumAngularMotor.html +1254 -1439
- package/docs/TechnicMediumHub.html +1255 -1420
- package/docs/TechnicMediumHubAccelerometerSensor.html +749 -828
- package/docs/TechnicMediumHubGyroSensor.html +749 -828
- package/docs/TechnicMediumHubTiltSensor.html +1340 -831
- package/docs/TechnicSmallAngularMotor.html +2073 -0
- package/docs/TechnicXLargeLinearMotor.html +1254 -1439
- package/docs/TiltSensor.html +730 -814
- package/docs/TrainMotor.html +958 -1113
- package/docs/VoltageSensor.html +711 -800
- package/docs/WeDo2SmartHub.html +1112 -1221
- package/docs/consts.js.html +791 -0
- package/docs/devices_absolutemotor.js.html +95 -197
- package/docs/devices_basicmotor.js.html +91 -193
- package/docs/devices_colordistancesensor.js.html +184 -193
- package/docs/devices_currentsensor.js.html +89 -191
- package/docs/devices_device.js.html +91 -191
- package/docs/devices_duplotrainbasecolorsensor.js.html +104 -193
- package/docs/devices_duplotrainbasemotor.js.html +92 -194
- package/docs/devices_duplotrainbasespeaker.js.html +89 -191
- package/docs/devices_duplotrainbasespeedometer.js.html +89 -191
- package/docs/devices_hubled.js.html +89 -191
- package/docs/devices_light.js.html +90 -192
- package/docs/devices_marioaccelerometer.js.html +89 -191
- package/docs/devices_mariobarcodesensor.js.html +89 -191
- package/docs/devices_mariopantssensor.js.html +89 -191
- package/docs/devices_mediumlinearmotor.js.html +92 -194
- package/docs/devices_motionsensor.js.html +89 -191
- package/docs/devices_movehubmediumlinearmotor.js.html +92 -194
- package/docs/devices_movehubtiltsensor.js.html +89 -191
- package/docs/devices_piezobuzzer.js.html +89 -191
- package/docs/devices_remotecontrolbutton.js.html +89 -191
- package/docs/devices_simplemediumlinearmotor.js.html +92 -194
- package/docs/devices_tachomotor.js.html +95 -197
- package/docs/devices_technic3x3colorlightmatrix.js.html +190 -0
- package/docs/devices_techniccolorsensor.js.html +91 -192
- package/docs/devices_technicdistancesensor.js.html +89 -191
- package/docs/devices_technicforcesensor.js.html +89 -191
- package/docs/devices_techniclargeangularmotor.js.html +92 -194
- package/docs/devices_techniclargelinearmotor.js.html +92 -194
- package/docs/devices_technicmediumangularmotor.js.html +92 -194
- package/docs/devices_technicmediumhubaccelerometersensor.js.html +89 -191
- package/docs/devices_technicmediumhubgyrosensor.js.html +89 -191
- package/docs/devices_technicmediumhubtiltsensor.js.html +159 -193
- package/docs/devices_technicsmallangularmotor.js.html +148 -0
- package/docs/devices_technicxlargelinearmotor.js.html +92 -194
- package/docs/devices_tiltsensor.js.html +89 -191
- package/docs/devices_trainmotor.js.html +92 -194
- package/docs/devices_voltagesensor.js.html +89 -191
- package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
- package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
- package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/docs/global.html +9829 -0
- package/docs/hubs_basehub.js.html +93 -191
- package/docs/hubs_duplotrainbase.js.html +89 -191
- package/docs/hubs_hub.js.html +90 -192
- package/docs/hubs_lpf2hub.js.html +109 -210
- package/docs/hubs_mario.js.html +89 -191
- package/docs/hubs_movehub.js.html +90 -192
- package/docs/hubs_remotecontrol.js.html +89 -191
- package/docs/hubs_technicmediumhub.js.html +90 -192
- package/docs/hubs_technicsmallhub.js.html +177 -0
- package/docs/hubs_wedo2smarthub.js.html +89 -191
- package/docs/icons/home.svg +4 -0
- package/docs/icons/search.svg +4 -0
- package/docs/index.html +143 -236
- package/docs/poweredup-browser.js.html +348 -0
- package/docs/poweredup-node.js.html +314 -0
- package/docs/scripts/linenumber.js +23 -0
- package/docs/scripts/pagelocation.js +89 -0
- package/docs/styles/collapse.css +27 -0
- package/docs/styles/jsdoc-default.css +953 -0
- package/docs/styles/prettify-jsdoc.css +111 -0
- package/docs/styles/prettify-tomorrow.css +15 -9
- package/jsdoc-template/braintree/CHANGELOG.md +31 -0
- package/jsdoc-template/braintree/LICENSE +27 -0
- package/jsdoc-template/braintree/README.md +90 -0
- package/jsdoc-template/braintree/package.json +39 -0
- package/jsdoc-template/braintree/publish.js +675 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.svg +1830 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.svg +1830 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.svg +1831 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.svg +1831 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.svg +1830 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.ttf +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
- package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
- package/jsdoc-template/braintree/static/icons/home.svg +4 -0
- package/jsdoc-template/braintree/static/icons/search.svg +4 -0
- package/jsdoc-template/braintree/static/scripts/linenumber.js +23 -0
- package/jsdoc-template/braintree/static/scripts/pagelocation.js +89 -0
- package/jsdoc-template/braintree/static/styles/collapse.css +27 -0
- package/jsdoc-template/braintree/static/styles/jsdoc-default.css +953 -0
- package/jsdoc-template/braintree/static/styles/prettify-jsdoc.css +111 -0
- package/jsdoc-template/braintree/static/styles/prettify-tomorrow.css +138 -0
- package/jsdoc-template/braintree/tmpl/augments.tmpl +10 -0
- package/jsdoc-template/braintree/tmpl/container.tmpl +213 -0
- package/jsdoc-template/braintree/tmpl/details.tmpl +223 -0
- package/jsdoc-template/braintree/tmpl/example.tmpl +2 -0
- package/jsdoc-template/braintree/tmpl/examples.tmpl +14 -0
- package/jsdoc-template/braintree/tmpl/exceptions.tmpl +28 -0
- package/jsdoc-template/braintree/tmpl/layout.tmpl +150 -0
- package/jsdoc-template/braintree/tmpl/mainpage.tmpl +9 -0
- package/jsdoc-template/braintree/tmpl/members.tmpl +38 -0
- package/jsdoc-template/braintree/tmpl/method.tmpl +128 -0
- package/jsdoc-template/braintree/tmpl/params.tmpl +125 -0
- package/jsdoc-template/braintree/tmpl/properties.tmpl +111 -0
- package/jsdoc-template/braintree/tmpl/returns.tmpl +17 -0
- package/jsdoc-template/braintree/tmpl/source.tmpl +9 -0
- package/jsdoc-template/braintree/tmpl/tutorial.tmpl +23 -0
- package/jsdoc-template/braintree/tmpl/type.tmpl +11 -0
- package/package.json +14 -15
- package/src/color.ts +20 -0
- package/src/consts.ts +47 -26
- package/src/devices/colordistancesensor.ts +98 -3
- package/src/devices/device.ts +1 -0
- package/src/devices/duplotrainbasecolorsensor.ts +17 -2
- package/src/devices/technic3x3colorlightmatrix.ts +64 -0
- package/src/devices/techniccolorsensor.ts +2 -1
- package/src/devices/technicmediumhubtiltsensor.ts +75 -3
- package/src/devices/technicsmallangularmotor.ts +17 -0
- package/src/hubs/basehub.ts +4 -0
- package/src/hubs/lpf2hub.ts +8 -9
- package/src/hubs/technicmediumhub.ts +1 -1
- package/src/hubs/technicsmallhub.ts +60 -0
- package/src/index-browser.ts +6 -0
- package/src/index-node.ts +6 -0
- package/src/poweredup-browser.ts +8 -1
- package/src/poweredup-node.ts +9 -1
- package/src/utils.ts +7 -0
- package/docs/classes.list.html +0 -8654
- package/docs/fonts/glyphicons-halflings-regular.eot +0 -0
- package/docs/fonts/glyphicons-halflings-regular.svg +0 -288
- package/docs/fonts/glyphicons-halflings-regular.ttf +0 -0
- package/docs/fonts/glyphicons-halflings-regular.woff +0 -0
- package/docs/fonts/glyphicons-halflings-regular.woff2 +0 -0
- package/docs/img/glyphicons-halflings-white.png +0 -0
- package/docs/img/glyphicons-halflings.png +0 -0
- package/docs/quicksearch.html +0 -31
- package/docs/scripts/docstrap.lib.js +0 -11
- package/docs/scripts/fulltext-search-ui.js +0 -89
- package/docs/scripts/fulltext-search.js +0 -36
- package/docs/scripts/lunr.min.js +0 -6
- package/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
- package/docs/scripts/prettify/jquery.min.js +0 -6
- package/docs/scripts/prettify/lang-css.js +0 -21
- package/docs/scripts/prettify/prettify.js +0 -496
- package/docs/scripts/sunlight.js +0 -1157
- package/docs/scripts/toc.js +0 -203
- package/docs/styles/darkstrap.css +0 -960
- package/docs/styles/site.cerulean.css +0 -7008
- package/docs/styles/site.cosmo.css +0 -7061
- package/docs/styles/site.cyborg.css +0 -7048
- package/docs/styles/site.darkly.css +0 -7171
- package/docs/styles/site.darkstrap.css +0 -5638
- package/docs/styles/site.dibs-bootstrap.css +0 -5899
- package/docs/styles/site.flatly.css +0 -7147
- package/docs/styles/site.journal.css +0 -6973
- package/docs/styles/site.lumen.css +0 -7298
- package/docs/styles/site.paper.css +0 -7623
- package/docs/styles/site.readable.css +0 -6997
- package/docs/styles/site.sandstone.css +0 -7035
- package/docs/styles/site.simplex.css +0 -7023
- package/docs/styles/site.slate.css +0 -7343
- package/docs/styles/site.spacelab.css +0 -7055
- package/docs/styles/site.superhero.css +0 -7131
- package/docs/styles/site.united.css +0 -6895
- package/docs/styles/site.yeti.css +0 -7195
- package/docs/styles/sunlight.dark.css +0 -345
- package/docs/styles/sunlight.default.css +0 -344
package/docs/index.html
CHANGED
|
@@ -1,104 +1,103 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
|
-
|
|
3
2
|
<html lang="en">
|
|
4
3
|
<head>
|
|
5
|
-
<meta charset="utf-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width">
|
|
7
|
-
<title>node-poweredup Index</title>
|
|
8
|
-
|
|
9
|
-
<!--[if lt IE 9]>
|
|
10
|
-
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
11
|
-
<![endif]-->
|
|
12
|
-
<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">
|
|
13
4
|
|
|
14
|
-
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
15
7
|
|
|
16
|
-
|
|
8
|
+
<title>
|
|
9
|
+
Home - Documentation
|
|
10
|
+
</title>
|
|
17
11
|
|
|
18
|
-
<
|
|
12
|
+
<link href="https://www.braintreepayments.com/images/favicon-ccda0b14.png" rel="icon" type="image/png">
|
|
19
13
|
|
|
20
|
-
<
|
|
21
|
-
<
|
|
22
|
-
<div class="navbar-header">
|
|
23
|
-
<a class="navbar-brand" href="index.html">node-poweredup</a>
|
|
24
|
-
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#topNavigation">
|
|
25
|
-
<span class="icon-bar"></span>
|
|
26
|
-
<span class="icon-bar"></span>
|
|
27
|
-
<span class="icon-bar"></span>
|
|
28
|
-
</button>
|
|
29
|
-
</div>
|
|
30
|
-
<div class="navbar-collapse collapse" id="topNavigation">
|
|
31
|
-
<ul class="nav navbar-nav">
|
|
32
|
-
|
|
33
|
-
<li class="dropdown">
|
|
34
|
-
<a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b class="caret"></b></a>
|
|
35
|
-
<ul class="dropdown-menu ">
|
|
36
|
-
<li><a href="AbsoluteMotor.html">AbsoluteMotor</a></li><li><a href="BaseHub.html">BaseHub</a></li><li><a href="BasicMotor.html">BasicMotor</a></li><li><a href="ColorDistanceSensor.html">ColorDistanceSensor</a></li><li><a href="CurrentSensor.html">CurrentSensor</a></li><li><a href="Device.html">Device</a></li><li><a href="DuploTrainBase.html">DuploTrainBase</a></li><li><a href="DuploTrainBaseColorSensor.html">DuploTrainBaseColorSensor</a></li><li><a href="DuploTrainBaseMotor.html">DuploTrainBaseMotor</a></li><li><a href="DuploTrainBaseSpeaker.html">DuploTrainBaseSpeaker</a></li><li><a href="DuploTraniBaseSpeedometer.html">DuploTraniBaseSpeedometer</a></li><li><a href="Hub.html">Hub</a></li><li><a href="HubLED.html">HubLED</a></li><li><a href="Light.html">Light</a></li><li><a href="LPF2Hub.html">LPF2Hub</a></li><li><a href="Mario.html">Mario</a></li><li><a href="MarioAccelerometer.html">MarioAccelerometer</a></li><li><a href="MarioBarcodeSensor.html">MarioBarcodeSensor</a></li><li><a href="MarioPantsSensor.html">MarioPantsSensor</a></li><li><a href="MediumLinearMotor.html">MediumLinearMotor</a></li><li><a href="MotionSensor.html">MotionSensor</a></li><li><a href="MoveHub.html">MoveHub</a></li><li><a href="MoveHubMediumLinearMotor.html">MoveHubMediumLinearMotor</a></li><li><a href="MoveHubTiltSensor.html">MoveHubTiltSensor</a></li><li><a href="PiezoBuzzer.html">PiezoBuzzer</a></li><li><a href="RemoteControl.html">RemoteControl</a></li><li><a href="RemoteControlButton.html">RemoteControlButton</a></li><li><a href="SimpleMediumLinearMotor.html">SimpleMediumLinearMotor</a></li><li><a href="TachoMotor.html">TachoMotor</a></li><li><a href="TechnicColorSensor.html">TechnicColorSensor</a></li><li><a href="TechnicDistanceSensor.html">TechnicDistanceSensor</a></li><li><a href="TechnicForceSensor.html">TechnicForceSensor</a></li><li><a href="TechnicLargeAngularMotor.html">TechnicLargeAngularMotor</a></li><li><a href="TechnicLargeLinearMotor.html">TechnicLargeLinearMotor</a></li><li><a href="TechnicMediumAngularMotor.html">TechnicMediumAngularMotor</a></li><li><a href="TechnicMediumHub.html">TechnicMediumHub</a></li><li><a href="TechnicMediumHubAccelerometerSensor.html">TechnicMediumHubAccelerometerSensor</a></li><li><a href="TechnicMediumHubGyroSensor.html">TechnicMediumHubGyroSensor</a></li><li><a href="TechnicMediumHubTiltSensor.html">TechnicMediumHubTiltSensor</a></li><li><a href="TechnicXLargeLinearMotor.html">TechnicXLargeLinearMotor</a></li><li><a href="TiltSensor.html">TiltSensor</a></li><li><a href="TrainMotor.html">TrainMotor</a></li><li><a href="VoltageSensor.html">VoltageSensor</a></li><li><a href="WeDo2SmartHub.html">WeDo2SmartHub</a></li>
|
|
37
|
-
</ul>
|
|
38
|
-
</li>
|
|
39
|
-
|
|
40
|
-
<li class="dropdown">
|
|
41
|
-
<a href="events.list.html" class="dropdown-toggle" data-toggle="dropdown">Events<b class="caret"></b></a>
|
|
42
|
-
<ul class="dropdown-menu ">
|
|
43
|
-
<li><a href="AbsoluteMotor.html#event:absolute">AbsoluteMotor#event:absolute</a></li><li><a href="AbsoluteMotor.html#event:rotate">AbsoluteMotor#event:rotate</a></li><li><a href="ColorDistanceSensor.html#event:color">ColorDistanceSensor#event:color</a></li><li><a href="ColorDistanceSensor.html#event:colorAndDistance">ColorDistanceSensor#event:colorAndDistance</a></li><li><a href="ColorDistanceSensor.html#event:distance">ColorDistanceSensor#event:distance</a></li><li><a href="CurrentSensor.html#event:current">CurrentSensor#event:current</a></li><li><a href="DuploTrainBase.html#event:button">DuploTrainBase#event:button</a></li><li><a href="DuploTrainBaseColorSensor.html#event:color">DuploTrainBaseColorSensor#event:color</a></li><li><a href="DuploTrainBaseColorSensor.html#event:reflect">DuploTrainBaseColorSensor#event:reflect</a></li><li><a href="DuploTrainBaseColorSensor.html#event:rgb">DuploTrainBaseColorSensor#event:rgb</a></li><li><a href="DuploTrainBaseSpeedometer.html#event:speed">DuploTrainBaseSpeedometer#event:speed</a></li><li><a href="Hub.html#event:attach">Hub#event:attach</a></li><li><a href="Hub.html#event:button">Hub#event:button</a></li><li><a href="Hub.html#event:detach">Hub#event:detach</a></li><li><a href="Hub.html#event:disconnect">Hub#event:disconnect</a></li><li><a href="LPF2Hub.html#event:button">LPF2Hub#event:button</a></li><li><a href="Mario.html#event:button">Mario#event:button</a></li><li><a href="MarioAccelerometer.html#event:accel">MarioAccelerometer#event:accel</a></li><li><a href="MarioAccelerometer.html#event:gest">MarioAccelerometer#event:gest</a></li><li><a href="MarioBarcodeSensor.html#event:barcode">MarioBarcodeSensor#event:barcode</a></li><li><a href="MarioBarcodeSensor.html#event:rgb">MarioBarcodeSensor#event:rgb</a></li><li><a href="MarioPantsSensor.html#event:pants">MarioPantsSensor#event:pants</a></li><li><a href="MediumLinearMotor.html#event:rotate">MediumLinearMotor#event:rotate</a></li><li><a href="MotionSensor.html#event:distance">MotionSensor#event:distance</a></li><li><a href="MoveHub.html#event:button">MoveHub#event:button</a></li><li><a href="MoveHubMediumLinearMotor.html#event:rotate">MoveHubMediumLinearMotor#event:rotate</a></li><li><a href="MoveHubTiltSensor.html#event:tilt">MoveHubTiltSensor#event:tilt</a></li><li><a href="RemoteControl.html#event:button">RemoteControl#event:button</a></li><li><a href="RemoteControlButton.html#event:button">RemoteControlButton#event:button</a></li><li><a href="TachoMotor.html#event:rotate">TachoMotor#event:rotate</a></li><li><a href="TechnicColorSensor.html#event:ambient">TechnicColorSensor#event:ambient</a></li><li><a href="TechnicColorSensor.html#event:color">TechnicColorSensor#event:color</a></li><li><a href="TechnicColorSensor.html#event:reflect">TechnicColorSensor#event:reflect</a></li><li><a href="TechnicDistanceSensor.html#event:distance">TechnicDistanceSensor#event:distance</a></li><li><a href="TechnicDistanceSensor.html#event:fastDistance">TechnicDistanceSensor#event:fastDistance</a></li><li><a href="TechnicForceSensor.html#event:force">TechnicForceSensor#event:force</a></li><li><a href="TechnicForceSensor.html#event:tapped">TechnicForceSensor#event:tapped</a></li><li><a href="TechnicForceSensor.html#event:touch">TechnicForceSensor#event:touch</a></li><li><a href="TechnicLargeAngularMotor.html#event:absolute">TechnicLargeAngularMotor#event:absolute</a></li><li><a href="TechnicLargeAngularMotor.html#event:rotate">TechnicLargeAngularMotor#event:rotate</a></li><li><a href="TechnicLargeLinearMotor.html#event:absolute">TechnicLargeLinearMotor#event:absolute</a></li><li><a href="TechnicLargeLinearMotor.html#event:rotate">TechnicLargeLinearMotor#event:rotate</a></li><li><a href="TechnicMediumAngularMotor.html#event:absolute">TechnicMediumAngularMotor#event:absolute</a></li><li><a href="TechnicMediumAngularMotor.html#event:rotate">TechnicMediumAngularMotor#event:rotate</a></li><li><a href="TechnicMediumHub.html#event:button">TechnicMediumHub#event:button</a></li><li><a href="TechnicMediumHubAccelerometerSensor.html#event:accel">TechnicMediumHubAccelerometerSensor#event:accel</a></li><li><a href="TechnicMediumHubGyroSensor.html#event:gyro">TechnicMediumHubGyroSensor#event:gyro</a></li><li><a href="TechnicMediumHubTiltSensor.html#event:tilt">TechnicMediumHubTiltSensor#event:tilt</a></li><li><a href="TechnicXLargeLinearMotor.html#event:absolute">TechnicXLargeLinearMotor#event:absolute</a></li><li><a href="TechnicXLargeLinearMotor.html#event:rotate">TechnicXLargeLinearMotor#event:rotate</a></li><li><a href="TiltSensor.html#event:tilt">TiltSensor#event:tilt</a></li><li><a href="VoltageSensor.html#event:voltage">VoltageSensor#event:voltage</a></li><li><a href="WeDo2SmartHub.html#event:button">WeDo2SmartHub#event:button</a></li>
|
|
44
|
-
</ul>
|
|
45
|
-
</li>
|
|
46
|
-
|
|
47
|
-
</ul>
|
|
48
|
-
|
|
49
|
-
<div class="col-sm-3 col-md-3">
|
|
50
|
-
<form class="navbar-form" role="search">
|
|
51
|
-
<div class="input-group">
|
|
52
|
-
<input type="text" class="form-control" placeholder="Search" name="q" id="search-input">
|
|
53
|
-
<div class="input-group-btn">
|
|
54
|
-
<button class="btn btn-default" id="search-submit"><i class="glyphicon glyphicon-search"></i></button>
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
</form>
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
</div>
|
|
14
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.7.0/highlight.min.js"></script>
|
|
15
|
+
<script>hljs.initHighlightingOnLoad();</script>
|
|
61
16
|
|
|
62
|
-
|
|
63
|
-
</div>
|
|
17
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
|
|
64
18
|
|
|
19
|
+
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
|
20
|
+
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
|
21
|
+
|
|
65
22
|
|
|
66
|
-
|
|
67
|
-
<div class="row">
|
|
23
|
+
|
|
68
24
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
25
|
+
<!-- start Mixpanel -->
|
|
26
|
+
<script type="text/javascript">(function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments,
|
|
27
|
+
0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");
|
|
28
|
+
for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]);
|
|
29
|
+
mixpanel.init("1919205b2da72e4da3b9b6639b444d59");</script>
|
|
30
|
+
<!-- end Mixpanel -->
|
|
31
|
+
</head>
|
|
74
32
|
|
|
75
|
-
|
|
76
|
-
|
|
33
|
+
<body>
|
|
34
|
+
<svg style="display: none;">
|
|
35
|
+
<defs>
|
|
36
|
+
<symbol id="linkIcon" fill="#706d77" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
|
37
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
|
38
|
+
<path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/>
|
|
39
|
+
</symbol>
|
|
40
|
+
</defs>
|
|
41
|
+
</svg>
|
|
77
42
|
|
|
43
|
+
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
|
|
44
|
+
<label for="nav-trigger" class="navicon-button x">
|
|
45
|
+
<div class="navicon"></div>
|
|
46
|
+
</label>
|
|
78
47
|
|
|
48
|
+
<label for="nav-trigger" class="overlay"></label>
|
|
79
49
|
|
|
50
|
+
<div class="top-nav-wrapper">
|
|
51
|
+
<ul>
|
|
52
|
+
<li class="active" >
|
|
53
|
+
<a href="index.html">
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<svg fill="#0095dd" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
|
|
57
|
+
<path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>
|
|
58
|
+
<path d="M0 0h24v24H0z" fill="none"/>
|
|
59
|
+
</svg>
|
|
60
|
+
|
|
61
|
+
</a>
|
|
62
|
+
</li>
|
|
80
63
|
|
|
64
|
+
|
|
81
65
|
|
|
66
|
+
</ul>
|
|
67
|
+
</div>
|
|
82
68
|
|
|
69
|
+
<nav>
|
|
70
|
+
<h3 class="reference-title">
|
|
71
|
+
node-poweredup Reference
|
|
72
|
+
</h3>
|
|
83
73
|
|
|
74
|
+
|
|
84
75
|
|
|
76
|
+
<h3>Classes</h3><ul><li id="AbsoluteMotor-nav"><a href="AbsoluteMotor.html">AbsoluteMotor</a><ul class='methods'><li data-type="method" id="AbsoluteMotor-gotoAngle-nav"><a href="AbsoluteMotor.html#gotoAngle">gotoAngle</a></li><li data-type="method" id="AbsoluteMotor-gotoRealZero-nav"><a href="AbsoluteMotor.html#gotoRealZero">gotoRealZero</a></li><li data-type="method" id="AbsoluteMotor-resetZero-nav"><a href="AbsoluteMotor.html#resetZero">resetZero</a></li><li data-type="method" id="AbsoluteMotor-rotateByDegrees-nav"><a href="AbsoluteMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="AbsoluteMotor-setAccelerationTime-nav"><a href="AbsoluteMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="AbsoluteMotor-setBrakingStyle-nav"><a href="AbsoluteMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="AbsoluteMotor-setDecelerationTime-nav"><a href="AbsoluteMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="AbsoluteMotor-setMaxPower-nav"><a href="AbsoluteMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="AbsoluteMotor-setSpeed-nav"><a href="AbsoluteMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="BaseHub-nav"><a href="BaseHub.html">BaseHub</a></li><li id="BasicMotor-nav"><a href="BasicMotor.html">BasicMotor</a><ul class='methods'><li data-type="method" id="BasicMotor-brake-nav"><a href="BasicMotor.html#brake">brake</a></li><li data-type="method" id="BasicMotor-rampPower-nav"><a href="BasicMotor.html#rampPower">rampPower</a></li><li data-type="method" id="BasicMotor-setPower-nav"><a href="BasicMotor.html#setPower">setPower</a></li><li data-type="method" id="BasicMotor-stop-nav"><a href="BasicMotor.html#stop">stop</a></li></ul></li><li id="ColorDistanceSensor-nav"><a href="ColorDistanceSensor.html">ColorDistanceSensor</a><ul class='methods'><li data-type="method" id="ColorDistanceSensor-sendPFIRMessage-nav"><a href="ColorDistanceSensor.html#sendPFIRMessage">sendPFIRMessage</a></li><li data-type="method" id="ColorDistanceSensor-setColor-nav"><a href="ColorDistanceSensor.html#setColor">setColor</a></li><li data-type="method" id="ColorDistanceSensor-setDistanceCount-nav"><a href="ColorDistanceSensor.html#setDistanceCount">setDistanceCount</a></li><li data-type="method" id="ColorDistanceSensor-setPFExtendedChannel-nav"><a href="ColorDistanceSensor.html#setPFExtendedChannel">setPFExtendedChannel</a></li><li data-type="method" id="ColorDistanceSensor-setPFPower-nav"><a href="ColorDistanceSensor.html#setPFPower">setPFPower</a></li><li data-type="method" id="ColorDistanceSensor-startPFMotors-nav"><a href="ColorDistanceSensor.html#startPFMotors">startPFMotors</a></li></ul></li><li id="CurrentSensor-nav"><a href="CurrentSensor.html">CurrentSensor</a></li><li id="Device-nav"><a href="Device.html">Device</a></li><li id="DuploTrainBase-nav"><a href="DuploTrainBase.html">DuploTrainBase</a><ul class='methods'><li data-type="method" id="DuploTrainBase-createVirtualPort-nav"><a href="DuploTrainBase.html#createVirtualPort">createVirtualPort</a></li><li data-type="method" id="DuploTrainBase-setName-nav"><a href="DuploTrainBase.html#setName">setName</a></li><li data-type="method" id="DuploTrainBase-shutdown-nav"><a href="DuploTrainBase.html#shutdown">shutdown</a></li></ul></li><li id="DuploTrainBaseColorSensor-nav"><a href="DuploTrainBaseColorSensor.html">DuploTrainBaseColorSensor</a></li><li id="DuploTrainBaseMotor-nav"><a href="DuploTrainBaseMotor.html">DuploTrainBaseMotor</a><ul class='methods'><li data-type="method" id="DuploTrainBaseMotor-brake-nav"><a href="DuploTrainBaseMotor.html#brake">brake</a></li><li data-type="method" id="DuploTrainBaseMotor-rampPower-nav"><a href="DuploTrainBaseMotor.html#rampPower">rampPower</a></li><li data-type="method" id="DuploTrainBaseMotor-setPower-nav"><a href="DuploTrainBaseMotor.html#setPower">setPower</a></li><li data-type="method" id="DuploTrainBaseMotor-stop-nav"><a href="DuploTrainBaseMotor.html#stop">stop</a></li></ul></li><li id="DuploTrainBaseSpeaker-nav"><a href="DuploTrainBaseSpeaker.html">DuploTrainBaseSpeaker</a><ul class='methods'><li data-type="method" id="DuploTrainBaseSpeaker-playSound-nav"><a href="DuploTrainBaseSpeaker.html#playSound">playSound</a></li><li data-type="method" id="DuploTrainBaseSpeaker-playTone-nav"><a href="DuploTrainBaseSpeaker.html#playTone">playTone</a></li></ul></li><li id="DuploTraniBaseSpeedometer-nav"><a href="DuploTraniBaseSpeedometer.html">DuploTraniBaseSpeedometer</a></li><li id="Hub-nav"><a href="Hub.html">Hub</a><ul class='methods'><li data-type="method" id="Hub-connect-nav"><a href="Hub.html#connect">connect</a></li><li data-type="method" id="Hub-createVirtualPort-nav"><a href="Hub.html#createVirtualPort">createVirtualPort</a></li><li data-type="method" id="Hub-disconnect-nav"><a href="Hub.html#disconnect">disconnect</a></li><li data-type="method" id="Hub-getDeviceAtPort-nav"><a href="Hub.html#getDeviceAtPort">getDeviceAtPort</a></li><li data-type="method" id="Hub-getDevices-nav"><a href="Hub.html#getDevices">getDevices</a></li><li data-type="method" id="Hub-getDevicesByType-nav"><a href="Hub.html#getDevicesByType">getDevicesByType</a></li><li data-type="method" id="Hub-setName-nav"><a href="Hub.html#setName">setName</a></li><li data-type="method" id="Hub-shutdown-nav"><a href="Hub.html#shutdown">shutdown</a></li><li data-type="method" id="Hub-sleep-nav"><a href="Hub.html#sleep">sleep</a></li><li data-type="method" id="Hub-wait-nav"><a href="Hub.html#wait">wait</a></li><li data-type="method" id="Hub-waitForDeviceAtPort-nav"><a href="Hub.html#waitForDeviceAtPort">waitForDeviceAtPort</a></li><li data-type="method" id="Hub-waitForDeviceByType-nav"><a href="Hub.html#waitForDeviceByType">waitForDeviceByType</a></li></ul></li><li id="HubLED-nav"><a href="HubLED.html">HubLED</a><ul class='methods'><li data-type="method" id="HubLED-setColor-nav"><a href="HubLED.html#setColor">setColor</a></li><li data-type="method" id="HubLED-setRGB-nav"><a href="HubLED.html#setRGB">setRGB</a></li></ul></li><li id="Light-nav"><a href="Light.html">Light</a><ul class='methods'><li data-type="method" id="Light-rampBrightness-nav"><a href="Light.html#rampBrightness">rampBrightness</a></li><li data-type="method" id="Light-setBrightness-nav"><a href="Light.html#setBrightness">setBrightness</a></li></ul></li><li id="LPF2Hub-nav"><a href="LPF2Hub.html">LPF2Hub</a><ul class='methods'><li data-type="method" id="LPF2Hub-createVirtualPort-nav"><a href="LPF2Hub.html#createVirtualPort">createVirtualPort</a></li><li data-type="method" id="LPF2Hub-setName-nav"><a href="LPF2Hub.html#setName">setName</a></li><li data-type="method" id="LPF2Hub-shutdown-nav"><a href="LPF2Hub.html#shutdown">shutdown</a></li></ul></li><li id="Mario-nav"><a href="Mario.html">Mario</a><ul class='methods'><li data-type="method" id="Mario-createVirtualPort-nav"><a href="Mario.html#createVirtualPort">createVirtualPort</a></li><li data-type="method" id="Mario-setName-nav"><a href="Mario.html#setName">setName</a></li><li data-type="method" id="Mario-shutdown-nav"><a href="Mario.html#shutdown">shutdown</a></li></ul></li><li id="MarioAccelerometer-nav"><a href="MarioAccelerometer.html">MarioAccelerometer</a></li><li id="MarioBarcodeSensor-nav"><a href="MarioBarcodeSensor.html">MarioBarcodeSensor</a></li><li id="MarioPantsSensor-nav"><a href="MarioPantsSensor.html">MarioPantsSensor</a></li><li id="MediumLinearMotor-nav"><a href="MediumLinearMotor.html">MediumLinearMotor</a><ul class='methods'><li data-type="method" id="MediumLinearMotor-rotateByDegrees-nav"><a href="MediumLinearMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="MediumLinearMotor-setAccelerationTime-nav"><a href="MediumLinearMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="MediumLinearMotor-setBrakingStyle-nav"><a href="MediumLinearMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="MediumLinearMotor-setDecelerationTime-nav"><a href="MediumLinearMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="MediumLinearMotor-setMaxPower-nav"><a href="MediumLinearMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="MediumLinearMotor-setSpeed-nav"><a href="MediumLinearMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="MotionSensor-nav"><a href="MotionSensor.html">MotionSensor</a></li><li id="MoveHub-nav"><a href="MoveHub.html">MoveHub</a><ul class='methods'><li data-type="method" id="MoveHub-createVirtualPort-nav"><a href="MoveHub.html#createVirtualPort">createVirtualPort</a></li><li data-type="method" id="MoveHub-setName-nav"><a href="MoveHub.html#setName">setName</a></li><li data-type="method" id="MoveHub-shutdown-nav"><a href="MoveHub.html#shutdown">shutdown</a></li></ul></li><li id="MoveHubMediumLinearMotor-nav"><a href="MoveHubMediumLinearMotor.html">MoveHubMediumLinearMotor</a><ul class='methods'><li data-type="method" id="MoveHubMediumLinearMotor-rotateByDegrees-nav"><a href="MoveHubMediumLinearMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="MoveHubMediumLinearMotor-setAccelerationTime-nav"><a href="MoveHubMediumLinearMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="MoveHubMediumLinearMotor-setBrakingStyle-nav"><a href="MoveHubMediumLinearMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="MoveHubMediumLinearMotor-setDecelerationTime-nav"><a href="MoveHubMediumLinearMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="MoveHubMediumLinearMotor-setMaxPower-nav"><a href="MoveHubMediumLinearMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="MoveHubMediumLinearMotor-setSpeed-nav"><a href="MoveHubMediumLinearMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="MoveHubTiltSensor-nav"><a href="MoveHubTiltSensor.html">MoveHubTiltSensor</a></li><li id="PiezoBuzzer-nav"><a href="PiezoBuzzer.html">PiezoBuzzer</a><ul class='methods'><li data-type="method" id="PiezoBuzzer-playTone-nav"><a href="PiezoBuzzer.html#playTone">playTone</a></li></ul></li><li id="PoweredUP-nav"><a href="PoweredUP.html">PoweredUP</a><ul class='methods'><li data-type="method" id="PoweredUP-getHubByPrimaryMACAddress-nav"><a href="PoweredUP.html#getHubByPrimaryMACAddress">getHubByPrimaryMACAddress</a></li><li data-type="method" id="PoweredUP-getHubByPrimaryMACAddress-nav"><a href="PoweredUP.html#getHubByPrimaryMACAddress">getHubByPrimaryMACAddress</a></li><li data-type="method" id="PoweredUP-getHubByUUID-nav"><a href="PoweredUP.html#getHubByUUID">getHubByUUID</a></li><li data-type="method" id="PoweredUP-getHubByUUID-nav"><a href="PoweredUP.html#getHubByUUID">getHubByUUID</a></li><li data-type="method" id="PoweredUP-getHubs-nav"><a href="PoweredUP.html#getHubs">getHubs</a></li><li data-type="method" id="PoweredUP-getHubs-nav"><a href="PoweredUP.html#getHubs">getHubs</a></li><li data-type="method" id="PoweredUP-getHubsByName-nav"><a href="PoweredUP.html#getHubsByName">getHubsByName</a></li><li data-type="method" id="PoweredUP-getHubsByName-nav"><a href="PoweredUP.html#getHubsByName">getHubsByName</a></li><li data-type="method" id="PoweredUP-getHubsByType-nav"><a href="PoweredUP.html#getHubsByType">getHubsByType</a></li><li data-type="method" id="PoweredUP-getHubsByType-nav"><a href="PoweredUP.html#getHubsByType">getHubsByType</a></li><li data-type="method" id="PoweredUP-scan-nav"><a href="PoweredUP.html#scan">scan</a></li><li data-type="method" id="PoweredUP-scan-nav"><a href="PoweredUP.html#scan">scan</a></li><li data-type="method" id="PoweredUP-stop-nav"><a href="PoweredUP.html#stop">stop</a></li></ul></li><li id="RemoteControl-nav"><a href="RemoteControl.html">RemoteControl</a><ul class='methods'><li data-type="method" id="RemoteControl-createVirtualPort-nav"><a href="RemoteControl.html#createVirtualPort">createVirtualPort</a></li><li data-type="method" id="RemoteControl-setName-nav"><a href="RemoteControl.html#setName">setName</a></li><li data-type="method" id="RemoteControl-shutdown-nav"><a href="RemoteControl.html#shutdown">shutdown</a></li></ul></li><li id="RemoteControlButton-nav"><a href="RemoteControlButton.html">RemoteControlButton</a></li><li id="SimpleMediumLinearMotor-nav"><a href="SimpleMediumLinearMotor.html">SimpleMediumLinearMotor</a></li><li id="TachoMotor-nav"><a href="TachoMotor.html">TachoMotor</a><ul class='methods'><li data-type="method" id="TachoMotor-brake-nav"><a href="TachoMotor.html#brake">brake</a></li><li data-type="method" id="TachoMotor-rampPower-nav"><a href="TachoMotor.html#rampPower">rampPower</a></li><li data-type="method" id="TachoMotor-rotateByDegrees-nav"><a href="TachoMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="TachoMotor-setAccelerationTime-nav"><a href="TachoMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="TachoMotor-setBrakingStyle-nav"><a href="TachoMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="TachoMotor-setDecelerationTime-nav"><a href="TachoMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="TachoMotor-setMaxPower-nav"><a href="TachoMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="TachoMotor-setPower-nav"><a href="TachoMotor.html#setPower">setPower</a></li><li data-type="method" id="TachoMotor-setSpeed-nav"><a href="TachoMotor.html#setSpeed">setSpeed</a></li><li data-type="method" id="TachoMotor-stop-nav"><a href="TachoMotor.html#stop">stop</a></li></ul></li><li id="Technic3x3ColorLightMatrix-nav"><a href="Technic3x3ColorLightMatrix.html">Technic3x3ColorLightMatrix</a><ul class='methods'><li data-type="method" id="Technic3x3ColorLightMatrix-setMatrix-nav"><a href="Technic3x3ColorLightMatrix.html#setMatrix">setMatrix</a></li></ul></li><li id="TechnicColorSensor-nav"><a href="TechnicColorSensor.html">TechnicColorSensor</a><ul class='methods'><li data-type="method" id="TechnicColorSensor-setBrightness-nav"><a href="TechnicColorSensor.html#setBrightness">setBrightness</a></li></ul></li><li id="TechnicDistanceSensor-nav"><a href="TechnicDistanceSensor.html">TechnicDistanceSensor</a><ul class='methods'><li data-type="method" id="TechnicDistanceSensor-setBrightness-nav"><a href="TechnicDistanceSensor.html#setBrightness">setBrightness</a></li></ul></li><li id="TechnicForceSensor-nav"><a href="TechnicForceSensor.html">TechnicForceSensor</a></li><li id="TechnicLargeAngularMotor-nav"><a href="TechnicLargeAngularMotor.html">TechnicLargeAngularMotor</a><ul class='methods'><li data-type="method" id="TechnicLargeAngularMotor-gotoAngle-nav"><a href="TechnicLargeAngularMotor.html#gotoAngle">gotoAngle</a></li><li data-type="method" id="TechnicLargeAngularMotor-gotoRealZero-nav"><a href="TechnicLargeAngularMotor.html#gotoRealZero">gotoRealZero</a></li><li data-type="method" id="TechnicLargeAngularMotor-resetZero-nav"><a href="TechnicLargeAngularMotor.html#resetZero">resetZero</a></li><li data-type="method" id="TechnicLargeAngularMotor-rotateByDegrees-nav"><a href="TechnicLargeAngularMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="TechnicLargeAngularMotor-setAccelerationTime-nav"><a href="TechnicLargeAngularMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="TechnicLargeAngularMotor-setBrakingStyle-nav"><a href="TechnicLargeAngularMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="TechnicLargeAngularMotor-setDecelerationTime-nav"><a href="TechnicLargeAngularMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="TechnicLargeAngularMotor-setMaxPower-nav"><a href="TechnicLargeAngularMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="TechnicLargeAngularMotor-setSpeed-nav"><a href="TechnicLargeAngularMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="TechnicLargeLinearMotor-nav"><a href="TechnicLargeLinearMotor.html">TechnicLargeLinearMotor</a><ul class='methods'><li data-type="method" id="TechnicLargeLinearMotor-gotoAngle-nav"><a href="TechnicLargeLinearMotor.html#gotoAngle">gotoAngle</a></li><li data-type="method" id="TechnicLargeLinearMotor-gotoRealZero-nav"><a href="TechnicLargeLinearMotor.html#gotoRealZero">gotoRealZero</a></li><li data-type="method" id="TechnicLargeLinearMotor-resetZero-nav"><a href="TechnicLargeLinearMotor.html#resetZero">resetZero</a></li><li data-type="method" id="TechnicLargeLinearMotor-rotateByDegrees-nav"><a href="TechnicLargeLinearMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="TechnicLargeLinearMotor-setAccelerationTime-nav"><a href="TechnicLargeLinearMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="TechnicLargeLinearMotor-setBrakingStyle-nav"><a href="TechnicLargeLinearMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="TechnicLargeLinearMotor-setDecelerationTime-nav"><a href="TechnicLargeLinearMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="TechnicLargeLinearMotor-setMaxPower-nav"><a href="TechnicLargeLinearMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="TechnicLargeLinearMotor-setSpeed-nav"><a href="TechnicLargeLinearMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="TechnicMediumAngularMotor-nav"><a href="TechnicMediumAngularMotor.html">TechnicMediumAngularMotor</a><ul class='methods'><li data-type="method" id="TechnicMediumAngularMotor-gotoAngle-nav"><a href="TechnicMediumAngularMotor.html#gotoAngle">gotoAngle</a></li><li data-type="method" id="TechnicMediumAngularMotor-gotoRealZero-nav"><a href="TechnicMediumAngularMotor.html#gotoRealZero">gotoRealZero</a></li><li data-type="method" id="TechnicMediumAngularMotor-resetZero-nav"><a href="TechnicMediumAngularMotor.html#resetZero">resetZero</a></li><li data-type="method" id="TechnicMediumAngularMotor-rotateByDegrees-nav"><a href="TechnicMediumAngularMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="TechnicMediumAngularMotor-setAccelerationTime-nav"><a href="TechnicMediumAngularMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="TechnicMediumAngularMotor-setBrakingStyle-nav"><a href="TechnicMediumAngularMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="TechnicMediumAngularMotor-setDecelerationTime-nav"><a href="TechnicMediumAngularMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="TechnicMediumAngularMotor-setMaxPower-nav"><a href="TechnicMediumAngularMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="TechnicMediumAngularMotor-setSpeed-nav"><a href="TechnicMediumAngularMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="TechnicMediumHub-nav"><a href="TechnicMediumHub.html">TechnicMediumHub</a><ul class='methods'><li data-type="method" id="TechnicMediumHub-createVirtualPort-nav"><a href="TechnicMediumHub.html#createVirtualPort">createVirtualPort</a></li><li data-type="method" id="TechnicMediumHub-setName-nav"><a href="TechnicMediumHub.html#setName">setName</a></li><li data-type="method" id="TechnicMediumHub-shutdown-nav"><a href="TechnicMediumHub.html#shutdown">shutdown</a></li></ul></li><li id="TechnicMediumHubAccelerometerSensor-nav"><a href="TechnicMediumHubAccelerometerSensor.html">TechnicMediumHubAccelerometerSensor</a></li><li id="TechnicMediumHubGyroSensor-nav"><a href="TechnicMediumHubGyroSensor.html">TechnicMediumHubGyroSensor</a></li><li id="TechnicMediumHubTiltSensor-nav"><a href="TechnicMediumHubTiltSensor.html">TechnicMediumHubTiltSensor</a><ul class='methods'><li data-type="method" id="TechnicMediumHubTiltSensor-setImpactCount-nav"><a href="TechnicMediumHubTiltSensor.html#setImpactCount">setImpactCount</a></li><li data-type="method" id="TechnicMediumHubTiltSensor-setImpactHoldoff-nav"><a href="TechnicMediumHubTiltSensor.html#setImpactHoldoff">setImpactHoldoff</a></li><li data-type="method" id="TechnicMediumHubTiltSensor-setImpactThreshold-nav"><a href="TechnicMediumHubTiltSensor.html#setImpactThreshold">setImpactThreshold</a></li></ul></li><li id="TechnicSmallAngularMotor-nav"><a href="TechnicSmallAngularMotor.html">TechnicSmallAngularMotor</a><ul class='methods'><li data-type="method" id="TechnicSmallAngularMotor-gotoAngle-nav"><a href="TechnicSmallAngularMotor.html#gotoAngle">gotoAngle</a></li><li data-type="method" id="TechnicSmallAngularMotor-gotoRealZero-nav"><a href="TechnicSmallAngularMotor.html#gotoRealZero">gotoRealZero</a></li><li data-type="method" id="TechnicSmallAngularMotor-resetZero-nav"><a href="TechnicSmallAngularMotor.html#resetZero">resetZero</a></li><li data-type="method" id="TechnicSmallAngularMotor-rotateByDegrees-nav"><a href="TechnicSmallAngularMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="TechnicSmallAngularMotor-setAccelerationTime-nav"><a href="TechnicSmallAngularMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="TechnicSmallAngularMotor-setBrakingStyle-nav"><a href="TechnicSmallAngularMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="TechnicSmallAngularMotor-setDecelerationTime-nav"><a href="TechnicSmallAngularMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="TechnicSmallAngularMotor-setMaxPower-nav"><a href="TechnicSmallAngularMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="TechnicSmallAngularMotor-setSpeed-nav"><a href="TechnicSmallAngularMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="TechnicXLargeLinearMotor-nav"><a href="TechnicXLargeLinearMotor.html">TechnicXLargeLinearMotor</a><ul class='methods'><li data-type="method" id="TechnicXLargeLinearMotor-gotoAngle-nav"><a href="TechnicXLargeLinearMotor.html#gotoAngle">gotoAngle</a></li><li data-type="method" id="TechnicXLargeLinearMotor-gotoRealZero-nav"><a href="TechnicXLargeLinearMotor.html#gotoRealZero">gotoRealZero</a></li><li data-type="method" id="TechnicXLargeLinearMotor-resetZero-nav"><a href="TechnicXLargeLinearMotor.html#resetZero">resetZero</a></li><li data-type="method" id="TechnicXLargeLinearMotor-rotateByDegrees-nav"><a href="TechnicXLargeLinearMotor.html#rotateByDegrees">rotateByDegrees</a></li><li data-type="method" id="TechnicXLargeLinearMotor-setAccelerationTime-nav"><a href="TechnicXLargeLinearMotor.html#setAccelerationTime">setAccelerationTime</a></li><li data-type="method" id="TechnicXLargeLinearMotor-setBrakingStyle-nav"><a href="TechnicXLargeLinearMotor.html#setBrakingStyle">setBrakingStyle</a></li><li data-type="method" id="TechnicXLargeLinearMotor-setDecelerationTime-nav"><a href="TechnicXLargeLinearMotor.html#setDecelerationTime">setDecelerationTime</a></li><li data-type="method" id="TechnicXLargeLinearMotor-setMaxPower-nav"><a href="TechnicXLargeLinearMotor.html#setMaxPower">setMaxPower</a></li><li data-type="method" id="TechnicXLargeLinearMotor-setSpeed-nav"><a href="TechnicXLargeLinearMotor.html#setSpeed">setSpeed</a></li></ul></li><li id="TiltSensor-nav"><a href="TiltSensor.html">TiltSensor</a></li><li id="TrainMotor-nav"><a href="TrainMotor.html">TrainMotor</a><ul class='methods'><li data-type="method" id="TrainMotor-brake-nav"><a href="TrainMotor.html#brake">brake</a></li><li data-type="method" id="TrainMotor-rampPower-nav"><a href="TrainMotor.html#rampPower">rampPower</a></li><li data-type="method" id="TrainMotor-setPower-nav"><a href="TrainMotor.html#setPower">setPower</a></li><li data-type="method" id="TrainMotor-stop-nav"><a href="TrainMotor.html#stop">stop</a></li></ul></li><li id="VoltageSensor-nav"><a href="VoltageSensor.html">VoltageSensor</a></li><li id="WeDo2SmartHub-nav"><a href="WeDo2SmartHub.html">WeDo2SmartHub</a><ul class='methods'><li data-type="method" id="WeDo2SmartHub-setName-nav"><a href="WeDo2SmartHub.html#setName">setName</a></li><li data-type="method" id="WeDo2SmartHub-shutdown-nav"><a href="WeDo2SmartHub.html#shutdown">shutdown</a></li></ul></li></ul><h3 id="global-nav"><a href="global.html">Global</a></h3>
|
|
77
|
+
</nav>
|
|
85
78
|
|
|
79
|
+
<div id="main">
|
|
80
|
+
|
|
86
81
|
|
|
82
|
+
|
|
83
|
+
|
|
87
84
|
|
|
88
|
-
|
|
89
|
-
|
|
90
85
|
|
|
91
86
|
|
|
87
|
+
|
|
92
88
|
|
|
89
|
+
|
|
93
90
|
|
|
94
91
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<a href="https://
|
|
92
|
+
<section class="readme">
|
|
93
|
+
<article>
|
|
94
|
+
<p><a href="https://drone.kellenicki.com/nkellenicki/node-poweredup"><img src="https://drone.kellenicki.com/api/badges/nkellenicki/node-poweredup/status.svg" alt="Drone"></a><br>
|
|
95
|
+
<a href="https://www.npmjs.com/package/node-poweredup"><img src="https://img.shields.io/npm/v/node-poweredup.svg?style=flat" alt="NPM Version"></a><br>
|
|
96
|
+
<a href="https://nathan.kellenicki.com/node-poweredup/"><img src="https://img.shields.io/badge/docs-start%20here-yellowgreen.svg" alt="Docs"></a></p>
|
|
98
97
|
<h1><strong>node-poweredup</strong> - A Javascript module to interface with LEGO Powered Up components.</h1>
|
|
99
98
|
<h3>Announcements</h3>
|
|
100
99
|
<ul>
|
|
101
|
-
<li>
|
|
100
|
+
<li>v7.1.0 adds support for SPIKE Essential, including the Technic Small Hub, Technic Small Angular Motor, and Technic 3x3 Color Matrix.</li>
|
|
102
101
|
</ul>
|
|
103
102
|
<h3>Introduction</h3>
|
|
104
103
|
<p>LEGO Powered Up is the successor to Power Functions, the system for adding electronics to LEGO models. Powered Up is a collection of ranges, all of which are compatible with each other:</p>
|
|
@@ -108,12 +107,46 @@
|
|
|
108
107
|
<li>LEGO Powered Up</li>
|
|
109
108
|
<li>LEGO Technic CONTROL+</li>
|
|
110
109
|
<li>LEGO Education SPIKE Prime</li>
|
|
110
|
+
<li>LEGO Education SPIKE Essential</li>
|
|
111
111
|
<li>LEGO Mindstorms Robot Inventor</li>
|
|
112
112
|
</ul>
|
|
113
113
|
<p>Other products that speak the Powered Up protocol include the Duplo App-Controlled trains and LEGO Super Mario, both of which are compatible with this library.</p>
|
|
114
114
|
<p>This library allows communication and control of Powered Up devices and peripherals via Javascript, both from Node.js and from the browser using Web Bluetooth.</p>
|
|
115
|
+
<h3>Sample Usage</h3>
|
|
116
|
+
<pre class="prettyprint source lang-javascript"><code>const PoweredUP = require("node-poweredup");
|
|
117
|
+
const poweredUP = new PoweredUP.PoweredUP();
|
|
118
|
+
|
|
119
|
+
poweredUP.on("discover", async (hub) => { // Wait to discover a Hub
|
|
120
|
+
console.log(`Discovered ${hub.name}!`);
|
|
121
|
+
await hub.connect(); // Connect to the Hub
|
|
122
|
+
const motorA = await hub.waitForDeviceAtPort("A"); // Make sure a motor is plugged into port A
|
|
123
|
+
const motorB = await hub.waitForDeviceAtPort("B"); // Make sure a motor is plugged into port B
|
|
124
|
+
console.log("Connected");
|
|
125
|
+
|
|
126
|
+
while (true) { // Repeat indefinitely
|
|
127
|
+
console.log("Running motor B at speed 50");
|
|
128
|
+
motorB.setPower(50); // Start a motor attached to port B to run a 3/4 speed (75) indefinitely
|
|
129
|
+
console.log("Running motor A at speed 100 for 2 seconds");
|
|
130
|
+
motorA.setPower(100); // Run a motor attached to port A for 2 seconds at maximum speed (100) then stop
|
|
131
|
+
await hub.sleep(2000);
|
|
132
|
+
motorA.brake();
|
|
133
|
+
await hub.sleep(1000); // Do nothing for 1 second
|
|
134
|
+
console.log("Running motor A at speed -30 for 1 second");
|
|
135
|
+
motorA.setPower(-30); // Run a motor attached to port A for 2 seconds at 1/2 speed in reverse (-50) then stop
|
|
136
|
+
await hub.sleep(2000);
|
|
137
|
+
motorA.brake();
|
|
138
|
+
await hub.sleep(1000); // Do nothing for 1 second
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
poweredUP.scan(); // Start scanning for Hubs
|
|
143
|
+
console.log("Scanning for Hubs...");
|
|
144
|
+
</code></pre>
|
|
145
|
+
<p>More examples are available in the "examples" directory.</p>
|
|
146
|
+
<h3>Documentation</h3>
|
|
147
|
+
<p><a href="https://nathankellenicki.github.io/node-poweredup/">Full documentation is available here.</a></p>
|
|
115
148
|
<h3>Node.js Installation</h3>
|
|
116
|
-
<p>Node.js
|
|
149
|
+
<p>Node.js v12.0+ required.</p>
|
|
117
150
|
<pre class="prettyprint source lang-javascript"><code>npm install node-poweredup --save
|
|
118
151
|
</code></pre>
|
|
119
152
|
<p>node-poweredup uses the Noble BLE library by Sandeep Mistry. On macOS everything should function out of the box. On Linux and Windows there are <a href="https://github.com/abandonware/noble#prerequisites">certain dependencies which may need installed first</a>.</p>
|
|
@@ -274,6 +307,26 @@
|
|
|
274
307
|
<td>Yes</td>
|
|
275
308
|
<td><a href="https://brickset.com/sets/45678-1/">45678</a></td>
|
|
276
309
|
</tr>
|
|
310
|
+
<tr>
|
|
311
|
+
<td>SPIKE Essential Small Motor</td>
|
|
312
|
+
<td>45607</td>
|
|
313
|
+
<td>Motor/Sensor</td>
|
|
314
|
+
<td><em>Partial</em></td>
|
|
315
|
+
<td>No</td>
|
|
316
|
+
<td>Yes</td>
|
|
317
|
+
<td>Yes</td>
|
|
318
|
+
<td><a href="https://brickset.com/sets/45345-1/">45345</a></td>
|
|
319
|
+
</tr>
|
|
320
|
+
<tr>
|
|
321
|
+
<td>SPIKE Essential 3x3 Color Matrix</td>
|
|
322
|
+
<td>45608</td>
|
|
323
|
+
<td>Motor/Sensor</td>
|
|
324
|
+
<td><em>Partial</em></td>
|
|
325
|
+
<td>No</td>
|
|
326
|
+
<td>Yes</td>
|
|
327
|
+
<td>Yes</td>
|
|
328
|
+
<td><a href="https://brickset.com/sets/45345-1/">45345</a></td>
|
|
329
|
+
</tr>
|
|
277
330
|
</tbody>
|
|
278
331
|
</table>
|
|
279
332
|
<p>In addition, the Hubs themselves have certain built-in features which this library exposes.</p>
|
|
@@ -329,6 +382,12 @@
|
|
|
329
382
|
<td>Pants Sensor<br />Barcode and Color Sensor</td>
|
|
330
383
|
<td><a href="https://brickset.com/sets/71360-1/">71360</a></td>
|
|
331
384
|
</tr>
|
|
385
|
+
<tr>
|
|
386
|
+
<td>SPIKE Essential Hub</td>
|
|
387
|
+
<td>45609</td>
|
|
388
|
+
<td>RGB LED<br />Button<br />Tilt Sensor<br />Accelerometer</td>
|
|
389
|
+
<td><a href="https://brickset.com/sets/45345-1/">45345</a></td>
|
|
390
|
+
</tr>
|
|
332
391
|
</tbody>
|
|
333
392
|
</table>
|
|
334
393
|
<h3>Known Issues and Limitations</h3>
|
|
@@ -340,185 +399,33 @@
|
|
|
340
399
|
<p>When used with the Boost Move Hub, the Control+ Motors and SPIKE Prime Motors/Sensors do not currently accept commands (This is a known bug which requires a firmware update from Lego to fix)</p>
|
|
341
400
|
</li>
|
|
342
401
|
<li>
|
|
343
|
-
<p>The SPIKE Prime Hub does not use Bluetooth Low Energy, so is not supported via this library. It is recommended you use MicroPython to develop for this Hub using the officially provided tools and software.</p>
|
|
402
|
+
<p>The SPIKE Prime Hub does not use Bluetooth Low Energy, so is not supported via this library. It is recommended you use MicroPython to develop for this Hub using the officially provided tools and software. The SPIKE Essential Hub however is supported, as it uses Bluetooth Low Energy.</p>
|
|
344
403
|
</li>
|
|
345
404
|
<li>
|
|
346
405
|
<p>On most Unix systems, you need root permissions to access Bluetooth devices. You may want to <a href="https://github.com/abandonware/noble#running-without-rootsudo-linux-specific">grant the node executable access to the Bluetooth adapter</a></p>
|
|
347
406
|
</li>
|
|
348
407
|
</ul>
|
|
349
|
-
<h3>Documentation</h3>
|
|
350
|
-
<p><a href="https://nathankellenicki.github.io/node-poweredup/">Full documentation is available here.</a></p>
|
|
351
|
-
<h3>Node.js Sample Usage</h3>
|
|
352
|
-
<pre class="prettyprint source lang-javascript"><code>const PoweredUP = require("node-poweredup");
|
|
353
|
-
const poweredUP = new PoweredUP.PoweredUP();
|
|
354
|
-
|
|
355
|
-
poweredUP.on("discover", async (hub) => { // Wait to discover a Hub
|
|
356
|
-
console.log(`Discovered ${hub.name}!`);
|
|
357
|
-
await hub.connect(); // Connect to the Hub
|
|
358
|
-
const motorA = await hub.waitForDeviceAtPort("A"); // Make sure a motor is plugged into port A
|
|
359
|
-
const motorB = await hub.waitForDeviceAtPort("B"); // Make sure a motor is plugged into port B
|
|
360
|
-
console.log("Connected");
|
|
361
|
-
|
|
362
|
-
while (true) { // Repeat indefinitely
|
|
363
|
-
console.log("Running motor B at speed 50");
|
|
364
|
-
motorB.setPower(50); // Start a motor attached to port B to run a 3/4 speed (75) indefinitely
|
|
365
|
-
console.log("Running motor A at speed 100 for 2 seconds");
|
|
366
|
-
motorA.setPower(100); // Run a motor attached to port A for 2 seconds at maximum speed (100) then stop
|
|
367
|
-
await hub.sleep(2000);
|
|
368
|
-
motorA.brake();
|
|
369
|
-
await hub.sleep(1000); // Do nothing for 1 second
|
|
370
|
-
console.log("Running motor A at speed -30 for 1 second");
|
|
371
|
-
motorA.setPower(-30); // Run a motor attached to port A for 2 seconds at 1/2 speed in reverse (-50) then stop
|
|
372
|
-
await hub.sleep(2000);
|
|
373
|
-
motorA.brake();
|
|
374
|
-
await hub.sleep(1000); // Do nothing for 1 second
|
|
375
|
-
}
|
|
376
|
-
});
|
|
377
|
-
|
|
378
|
-
poweredUP.scan(); // Start scanning for Hubs
|
|
379
|
-
console.log("Scanning for Hubs...");
|
|
380
|
-
</code></pre>
|
|
381
|
-
<p>More examples are available in the "examples" directory.</p>
|
|
382
408
|
<h3>Credits</h3>
|
|
383
|
-
<p>Thanks go to Jorge Pereira (<a href="https://github.com/JorgePe">@JorgePe</a>), Sebastian Raff (<a href="https://github.com/hobbyquaker">@hobbyquaker</a>), Valentin Heun (<a href="https://github.com/vheun">@vheun</a>), Johan Korten (<a href="https://github.com/jakorten">@jakorten</a>), and Andrey Pokhilko (<a href="https://github.com/undera">@undera</a>) for their various works, contributions, and assistance on figuring out the LEGO Boost, WeDo 2.0, and Powered Up protocols.</p
|
|
384
|
-
</
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
</div>
|
|
393
|
-
</div>
|
|
394
|
-
|
|
395
|
-
<div class="clearfix"></div>
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
<div class="col-md-3">
|
|
399
|
-
<div id="toc" class="col-md-3 hidden-xs hidden-sm hidden-md"></div>
|
|
400
|
-
</div>
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
</div>
|
|
404
|
-
</div>
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
<div class="modal fade" id="searchResults">
|
|
408
|
-
<div class="modal-dialog">
|
|
409
|
-
<div class="modal-content">
|
|
410
|
-
<div class="modal-header">
|
|
411
|
-
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|
412
|
-
<h4 class="modal-title">Search results</h4>
|
|
413
|
-
</div>
|
|
414
|
-
<div class="modal-body"></div>
|
|
415
|
-
<div class="modal-footer">
|
|
416
|
-
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
|
417
|
-
</div>
|
|
418
|
-
</div><!-- /.modal-content -->
|
|
419
|
-
</div><!-- /.modal-dialog -->
|
|
420
|
-
</div>
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
<footer>
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
<span class="copyright">
|
|
427
|
-
node-poweredup by Nathan Kellenicki licensed under the MIT license.
|
|
428
|
-
</span>
|
|
429
|
-
|
|
430
|
-
<span class="jsdoc-message">
|
|
431
|
-
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.6</a>
|
|
432
|
-
|
|
433
|
-
on Tue Apr 6th 2021
|
|
434
|
-
|
|
435
|
-
using the <a href="https://github.com/docstrap/docstrap">DocStrap template</a>.
|
|
436
|
-
</span>
|
|
437
|
-
</footer>
|
|
438
|
-
|
|
439
|
-
<script src="scripts/docstrap.lib.js"></script>
|
|
440
|
-
<script src="scripts/toc.js"></script>
|
|
441
|
-
|
|
442
|
-
<script type="text/javascript" src="scripts/fulltext-search-ui.js"></script>
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
<script>
|
|
446
|
-
$( function () {
|
|
447
|
-
$( "[id*='$']" ).each( function () {
|
|
448
|
-
var $this = $( this );
|
|
449
|
-
|
|
450
|
-
$this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) );
|
|
451
|
-
} );
|
|
452
|
-
|
|
453
|
-
$( ".tutorial-section pre, .readme-section pre, pre.prettyprint.source" ).each( function () {
|
|
454
|
-
var $this = $( this );
|
|
455
|
-
|
|
456
|
-
var example = $this.find( "code" );
|
|
457
|
-
exampleText = example.html();
|
|
458
|
-
var lang = /{@lang (.*?)}/.exec( exampleText );
|
|
459
|
-
if ( lang && lang[1] ) {
|
|
460
|
-
exampleText = exampleText.replace( lang[0], "" );
|
|
461
|
-
example.html( exampleText );
|
|
462
|
-
lang = lang[1];
|
|
463
|
-
} else {
|
|
464
|
-
var langClassMatch = example.parent()[0].className.match(/lang\-(\S+)/);
|
|
465
|
-
lang = langClassMatch ? langClassMatch[1] : "javascript";
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
if ( lang ) {
|
|
469
|
-
|
|
470
|
-
$this
|
|
471
|
-
.addClass( "sunlight-highlight-" + lang )
|
|
472
|
-
.addClass( "linenums" )
|
|
473
|
-
.html( example.html() );
|
|
474
|
-
|
|
475
|
-
}
|
|
476
|
-
} );
|
|
477
|
-
|
|
478
|
-
Sunlight.highlightAll( {
|
|
479
|
-
lineNumbers : true,
|
|
480
|
-
showMenu : true,
|
|
481
|
-
enableDoclinks : true
|
|
482
|
-
} );
|
|
483
|
-
|
|
484
|
-
$.catchAnchorLinks( {
|
|
485
|
-
navbarOffset: 10
|
|
486
|
-
} );
|
|
487
|
-
$( "#toc" ).toc( {
|
|
488
|
-
anchorName : function ( i, heading, prefix ) {
|
|
489
|
-
return $( heading ).attr( "id" ) || ( prefix + i );
|
|
490
|
-
},
|
|
491
|
-
selectors : "#toc-content h1,#toc-content h2,#toc-content h3,#toc-content h4",
|
|
492
|
-
showAndHide : false,
|
|
493
|
-
smoothScrolling: true
|
|
494
|
-
} );
|
|
495
|
-
|
|
496
|
-
$( "#main span[id^='toc']" ).addClass( "toc-shim" );
|
|
497
|
-
$( '.dropdown-toggle' ).dropdown();
|
|
498
|
-
|
|
499
|
-
$( "table" ).each( function () {
|
|
500
|
-
var $this = $( this );
|
|
501
|
-
$this.addClass('table');
|
|
502
|
-
} );
|
|
503
|
-
|
|
504
|
-
} );
|
|
505
|
-
</script>
|
|
506
|
-
|
|
409
|
+
<p>Thanks go to Jorge Pereira (<a href="https://github.com/JorgePe">@JorgePe</a>), Sebastian Raff (<a href="https://github.com/hobbyquaker">@hobbyquaker</a>), Valentin Heun (<a href="https://github.com/vheun">@vheun</a>), Johan Korten (<a href="https://github.com/jakorten">@jakorten</a>), and Andrey Pokhilko (<a href="https://github.com/undera">@undera</a>) for their various works, contributions, and assistance on figuring out the LEGO Boost, WeDo 2.0, and Powered Up protocols.</p>
|
|
410
|
+
</article>
|
|
411
|
+
</section>
|
|
507
412
|
|
|
508
413
|
|
|
509
|
-
|
|
414
|
+
|
|
510
415
|
|
|
511
416
|
|
|
512
|
-
|
|
417
|
+
</div>
|
|
513
418
|
|
|
419
|
+
<br class="clear">
|
|
514
420
|
|
|
421
|
+
<footer>
|
|
422
|
+
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.7</a>
|
|
423
|
+
</footer>
|
|
515
424
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
SearcherDisplay.init();
|
|
519
|
-
});
|
|
520
|
-
</script>
|
|
425
|
+
<script src="scripts/linenumber.js"></script>
|
|
426
|
+
<script src="scripts/pagelocation.js"></script>
|
|
521
427
|
|
|
428
|
+
|
|
522
429
|
|
|
523
430
|
</body>
|
|
524
431
|
</html>
|