node-poweredup 7.0.0 → 8.0.2

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.
Files changed (294) hide show
  1. package/.drone.yml +1 -0
  2. package/.gitmodules +3 -0
  3. package/{jsdoc.conf.json → .jsdoc.json} +14 -1
  4. package/README.md +47 -42
  5. package/dist/browser/poweredup.js +1 -1
  6. package/dist/browser/poweredup.js.map +1 -1
  7. package/dist/node/color.d.ts +6 -0
  8. package/dist/node/color.js +38 -0
  9. package/dist/node/color.js.map +1 -0
  10. package/dist/node/consts.d.ts +47 -26
  11. package/dist/node/consts.js +46 -25
  12. package/dist/node/consts.js.map +1 -1
  13. package/dist/node/devices/colordistancesensor.d.ts +11 -0
  14. package/dist/node/devices/colordistancesensor.js +93 -1
  15. package/dist/node/devices/colordistancesensor.js.map +1 -1
  16. package/dist/node/devices/device.js +2 -0
  17. package/dist/node/devices/device.js.map +1 -1
  18. package/dist/node/devices/technic3x3colorlightmatrix.d.ts +22 -0
  19. package/dist/node/devices/technic3x3colorlightmatrix.js +77 -0
  20. package/dist/node/devices/technic3x3colorlightmatrix.js.map +1 -0
  21. package/dist/node/devices/technicmediumhubtiltsensor.d.ts +25 -1
  22. package/dist/node/devices/technicmediumhubtiltsensor.js +70 -2
  23. package/dist/node/devices/technicmediumhubtiltsensor.js.map +1 -1
  24. package/dist/node/devices/technicsmallangularmotor.d.ts +12 -0
  25. package/dist/node/devices/technicsmallangularmotor.js +35 -0
  26. package/dist/node/devices/technicsmallangularmotor.js.map +1 -0
  27. package/dist/node/hubs/basehub.js +4 -0
  28. package/dist/node/hubs/basehub.js.map +1 -1
  29. package/dist/node/hubs/lpf2hub.js +5 -4
  30. package/dist/node/hubs/lpf2hub.js.map +1 -1
  31. package/dist/node/hubs/technicmediumhub.js +1 -1
  32. package/dist/node/hubs/technicmediumhub.js.map +1 -1
  33. package/dist/node/hubs/technicsmallhub.d.ts +18 -0
  34. package/dist/node/hubs/technicsmallhub.js +64 -0
  35. package/dist/node/hubs/technicsmallhub.js.map +1 -0
  36. package/dist/node/index-browser.js +6 -0
  37. package/dist/node/index-browser.js.map +1 -1
  38. package/dist/node/index-node.d.ts +4 -1
  39. package/dist/node/index-node.js +7 -1
  40. package/dist/node/index-node.js.map +1 -1
  41. package/dist/node/nobleabstraction.js +2 -0
  42. package/dist/node/nobleabstraction.js.map +1 -1
  43. package/dist/node/poweredup-browser.js +8 -1
  44. package/dist/node/poweredup-browser.js.map +1 -1
  45. package/dist/node/poweredup-node.js +30 -1
  46. package/dist/node/poweredup-node.js.map +1 -1
  47. package/dist/node/webbleabstraction.js +1 -0
  48. package/dist/node/webbleabstraction.js.map +1 -1
  49. package/docs/AbsoluteMotor.html +1220 -1405
  50. package/docs/BaseHub.html +787 -872
  51. package/docs/BasicMotor.html +923 -1078
  52. package/docs/ColorDistanceSensor.html +2188 -1540
  53. package/docs/CurrentSensor.html +711 -800
  54. package/docs/Device.html +574 -665
  55. package/docs/DuploTrainBase.html +1255 -1375
  56. package/docs/DuploTrainBaseColorSensor.html +1009 -1082
  57. package/docs/DuploTrainBaseMotor.html +958 -1113
  58. package/docs/DuploTrainBaseSpeaker.html +793 -916
  59. package/docs/DuploTraniBaseSpeedometer.html +628 -719
  60. package/docs/Hub.html +5621 -2397
  61. package/docs/HubLED.html +831 -944
  62. package/docs/LPF2Hub.html +1215 -1335
  63. package/docs/Light.html +831 -944
  64. package/docs/Mario.html +1255 -1420
  65. package/docs/MarioAccelerometer.html +834 -911
  66. package/docs/MarioBarcodeSensor.html +834 -911
  67. package/docs/MarioPantsSensor.html +711 -800
  68. package/docs/MediumLinearMotor.html +861 -1000
  69. package/docs/MotionSensor.html +711 -800
  70. package/docs/MoveHub.html +1255 -1420
  71. package/docs/MoveHubMediumLinearMotor.html +861 -1000
  72. package/docs/MoveHubTiltSensor.html +730 -814
  73. package/docs/PiezoBuzzer.html +732 -834
  74. package/docs/PoweredUP.html +4322 -0
  75. package/docs/RemoteControl.html +1255 -1420
  76. package/docs/RemoteControlButton.html +711 -800
  77. package/docs/SimpleMediumLinearMotor.html +628 -719
  78. package/docs/TachoMotor.html +1644 -1835
  79. package/docs/Technic3x3ColorLightMatrix.html +1181 -0
  80. package/docs/TechnicColorSensor.html +1008 -1099
  81. package/docs/TechnicDistanceSensor.html +939 -1027
  82. package/docs/TechnicForceSensor.html +883 -968
  83. package/docs/TechnicLargeAngularMotor.html +1254 -1439
  84. package/docs/TechnicLargeLinearMotor.html +1254 -1439
  85. package/docs/TechnicMediumAngularMotor.html +1254 -1439
  86. package/docs/TechnicMediumHub.html +1255 -1420
  87. package/docs/TechnicMediumHubAccelerometerSensor.html +749 -828
  88. package/docs/TechnicMediumHubGyroSensor.html +749 -828
  89. package/docs/TechnicMediumHubTiltSensor.html +1340 -831
  90. package/docs/TechnicSmallAngularMotor.html +2073 -0
  91. package/docs/TechnicXLargeLinearMotor.html +1254 -1439
  92. package/docs/TiltSensor.html +730 -814
  93. package/docs/TrainMotor.html +958 -1113
  94. package/docs/VoltageSensor.html +711 -800
  95. package/docs/WeDo2SmartHub.html +1112 -1221
  96. package/docs/consts.js.html +791 -0
  97. package/docs/devices_absolutemotor.js.html +89 -191
  98. package/docs/devices_basicmotor.js.html +89 -191
  99. package/docs/devices_colordistancesensor.js.html +182 -192
  100. package/docs/devices_currentsensor.js.html +89 -191
  101. package/docs/devices_device.js.html +91 -191
  102. package/docs/devices_duplotrainbasecolorsensor.js.html +89 -191
  103. package/docs/devices_duplotrainbasemotor.js.html +92 -194
  104. package/docs/devices_duplotrainbasespeaker.js.html +89 -191
  105. package/docs/devices_duplotrainbasespeedometer.js.html +89 -191
  106. package/docs/devices_hubled.js.html +89 -191
  107. package/docs/devices_light.js.html +89 -191
  108. package/docs/devices_marioaccelerometer.js.html +89 -191
  109. package/docs/devices_mariobarcodesensor.js.html +89 -191
  110. package/docs/devices_mariopantssensor.js.html +89 -191
  111. package/docs/devices_mediumlinearmotor.js.html +92 -194
  112. package/docs/devices_motionsensor.js.html +89 -191
  113. package/docs/devices_movehubmediumlinearmotor.js.html +92 -194
  114. package/docs/devices_movehubtiltsensor.js.html +89 -191
  115. package/docs/devices_piezobuzzer.js.html +89 -191
  116. package/docs/devices_remotecontrolbutton.js.html +89 -191
  117. package/docs/devices_simplemediumlinearmotor.js.html +92 -194
  118. package/docs/devices_tachomotor.js.html +89 -191
  119. package/docs/devices_technic3x3colorlightmatrix.js.html +190 -0
  120. package/docs/devices_techniccolorsensor.js.html +89 -191
  121. package/docs/devices_technicdistancesensor.js.html +89 -191
  122. package/docs/devices_technicforcesensor.js.html +89 -191
  123. package/docs/devices_techniclargeangularmotor.js.html +92 -194
  124. package/docs/devices_techniclargelinearmotor.js.html +92 -194
  125. package/docs/devices_technicmediumangularmotor.js.html +92 -194
  126. package/docs/devices_technicmediumhubaccelerometersensor.js.html +89 -191
  127. package/docs/devices_technicmediumhubgyrosensor.js.html +89 -191
  128. package/docs/devices_technicmediumhubtiltsensor.js.html +159 -193
  129. package/docs/devices_technicsmallangularmotor.js.html +148 -0
  130. package/docs/devices_technicxlargelinearmotor.js.html +92 -194
  131. package/docs/devices_tiltsensor.js.html +89 -191
  132. package/docs/devices_trainmotor.js.html +92 -194
  133. package/docs/devices_voltagesensor.js.html +89 -191
  134. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  135. package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
  136. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  137. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  138. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  139. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  140. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  141. package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
  142. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  143. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  144. package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
  145. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  146. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  147. package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  148. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  149. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  150. package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
  151. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  152. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  153. package/docs/fonts/OpenSans-Semibold-webfont.svg +1830 -0
  154. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  155. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  156. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  157. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  158. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  159. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  160. package/docs/global.html +9829 -0
  161. package/docs/hubs_basehub.js.html +93 -191
  162. package/docs/hubs_duplotrainbase.js.html +89 -191
  163. package/docs/hubs_hub.js.html +89 -191
  164. package/docs/hubs_lpf2hub.js.html +94 -195
  165. package/docs/hubs_mario.js.html +89 -191
  166. package/docs/hubs_movehub.js.html +89 -191
  167. package/docs/hubs_remotecontrol.js.html +89 -191
  168. package/docs/hubs_technicmediumhub.js.html +90 -192
  169. package/docs/hubs_technicsmallhub.js.html +177 -0
  170. package/docs/hubs_wedo2smarthub.js.html +89 -191
  171. package/docs/icons/home.svg +4 -0
  172. package/docs/icons/search.svg +4 -0
  173. package/docs/index.html +143 -236
  174. package/docs/poweredup-browser.js.html +348 -0
  175. package/docs/poweredup-node.js.html +314 -0
  176. package/docs/scripts/linenumber.js +23 -0
  177. package/docs/scripts/pagelocation.js +89 -0
  178. package/docs/styles/collapse.css +27 -0
  179. package/docs/styles/jsdoc-default.css +953 -0
  180. package/docs/styles/prettify-jsdoc.css +111 -0
  181. package/docs/styles/prettify-tomorrow.css +15 -9
  182. package/jsdoc-template/braintree/CHANGELOG.md +31 -0
  183. package/jsdoc-template/braintree/LICENSE +27 -0
  184. package/jsdoc-template/braintree/README.md +90 -0
  185. package/jsdoc-template/braintree/package.json +39 -0
  186. package/jsdoc-template/braintree/publish.js +675 -0
  187. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.eot +0 -0
  188. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.svg +1830 -0
  189. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.woff +0 -0
  190. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  191. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  192. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  193. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.eot +0 -0
  194. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.svg +1830 -0
  195. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.woff +0 -0
  196. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.eot +0 -0
  197. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.svg +1831 -0
  198. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.woff +0 -0
  199. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  200. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  201. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  202. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.eot +0 -0
  203. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.svg +1831 -0
  204. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.woff +0 -0
  205. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.eot +0 -0
  206. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.svg +1830 -0
  207. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  208. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.woff +0 -0
  209. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  210. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  211. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  212. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  213. package/jsdoc-template/braintree/static/icons/home.svg +4 -0
  214. package/jsdoc-template/braintree/static/icons/search.svg +4 -0
  215. package/jsdoc-template/braintree/static/scripts/linenumber.js +23 -0
  216. package/jsdoc-template/braintree/static/scripts/pagelocation.js +89 -0
  217. package/jsdoc-template/braintree/static/styles/collapse.css +27 -0
  218. package/jsdoc-template/braintree/static/styles/jsdoc-default.css +953 -0
  219. package/jsdoc-template/braintree/static/styles/prettify-jsdoc.css +111 -0
  220. package/jsdoc-template/braintree/static/styles/prettify-tomorrow.css +138 -0
  221. package/jsdoc-template/braintree/tmpl/augments.tmpl +10 -0
  222. package/jsdoc-template/braintree/tmpl/container.tmpl +213 -0
  223. package/jsdoc-template/braintree/tmpl/details.tmpl +223 -0
  224. package/jsdoc-template/braintree/tmpl/example.tmpl +2 -0
  225. package/jsdoc-template/braintree/tmpl/examples.tmpl +14 -0
  226. package/jsdoc-template/braintree/tmpl/exceptions.tmpl +28 -0
  227. package/jsdoc-template/braintree/tmpl/layout.tmpl +150 -0
  228. package/jsdoc-template/braintree/tmpl/mainpage.tmpl +9 -0
  229. package/jsdoc-template/braintree/tmpl/members.tmpl +38 -0
  230. package/jsdoc-template/braintree/tmpl/method.tmpl +128 -0
  231. package/jsdoc-template/braintree/tmpl/params.tmpl +125 -0
  232. package/jsdoc-template/braintree/tmpl/properties.tmpl +111 -0
  233. package/jsdoc-template/braintree/tmpl/returns.tmpl +17 -0
  234. package/jsdoc-template/braintree/tmpl/source.tmpl +9 -0
  235. package/jsdoc-template/braintree/tmpl/tutorial.tmpl +23 -0
  236. package/jsdoc-template/braintree/tmpl/type.tmpl +11 -0
  237. package/package.json +13 -14
  238. package/src/color.ts +20 -0
  239. package/src/consts.ts +46 -25
  240. package/src/devices/colordistancesensor.ts +96 -2
  241. package/src/devices/device.ts +1 -0
  242. package/src/devices/technic3x3colorlightmatrix.ts +64 -0
  243. package/src/devices/technicmediumhubtiltsensor.ts +75 -3
  244. package/src/devices/technicsmallangularmotor.ts +17 -0
  245. package/src/hubs/basehub.ts +4 -0
  246. package/src/hubs/lpf2hub.ts +5 -6
  247. package/src/hubs/technicmediumhub.ts +1 -1
  248. package/src/hubs/technicsmallhub.ts +60 -0
  249. package/src/index-browser.ts +6 -0
  250. package/src/index-node.ts +6 -0
  251. package/src/nobleabstraction.ts +2 -0
  252. package/src/poweredup-browser.ts +8 -1
  253. package/src/poweredup-node.ts +9 -1
  254. package/src/webbleabstraction.ts +1 -0
  255. package/docs/classes.list.html +0 -8798
  256. package/docs/fonts/glyphicons-halflings-regular.eot +0 -0
  257. package/docs/fonts/glyphicons-halflings-regular.svg +0 -288
  258. package/docs/fonts/glyphicons-halflings-regular.ttf +0 -0
  259. package/docs/fonts/glyphicons-halflings-regular.woff +0 -0
  260. package/docs/fonts/glyphicons-halflings-regular.woff2 +0 -0
  261. package/docs/img/glyphicons-halflings-white.png +0 -0
  262. package/docs/img/glyphicons-halflings.png +0 -0
  263. package/docs/quicksearch.html +0 -31
  264. package/docs/scripts/docstrap.lib.js +0 -11
  265. package/docs/scripts/fulltext-search-ui.js +0 -89
  266. package/docs/scripts/fulltext-search.js +0 -36
  267. package/docs/scripts/lunr.min.js +0 -6
  268. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
  269. package/docs/scripts/prettify/jquery.min.js +0 -6
  270. package/docs/scripts/prettify/lang-css.js +0 -21
  271. package/docs/scripts/prettify/prettify.js +0 -496
  272. package/docs/scripts/sunlight.js +0 -1157
  273. package/docs/scripts/toc.js +0 -203
  274. package/docs/styles/darkstrap.css +0 -960
  275. package/docs/styles/site.cerulean.css +0 -7008
  276. package/docs/styles/site.cosmo.css +0 -7061
  277. package/docs/styles/site.cyborg.css +0 -7048
  278. package/docs/styles/site.darkly.css +0 -7171
  279. package/docs/styles/site.darkstrap.css +0 -5638
  280. package/docs/styles/site.dibs-bootstrap.css +0 -5899
  281. package/docs/styles/site.flatly.css +0 -7147
  282. package/docs/styles/site.journal.css +0 -6973
  283. package/docs/styles/site.lumen.css +0 -7298
  284. package/docs/styles/site.paper.css +0 -7623
  285. package/docs/styles/site.readable.css +0 -6997
  286. package/docs/styles/site.sandstone.css +0 -7035
  287. package/docs/styles/site.simplex.css +0 -7023
  288. package/docs/styles/site.slate.css +0 -7343
  289. package/docs/styles/site.spacelab.css +0 -7055
  290. package/docs/styles/site.superhero.css +0 -7131
  291. package/docs/styles/site.united.css +0 -6895
  292. package/docs/styles/site.yeti.css +0 -7195
  293. package/docs/styles/sunlight.dark.css +0 -345
  294. 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
- <link type="text/css" rel="stylesheet" href="styles/site.simplex.css">
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
15
7
 
16
- </head>
8
+ <title>
9
+ Home - Documentation
10
+ </title>
17
11
 
18
- <body>
12
+ <link href="https://www.braintreepayments.com/images/favicon-ccda0b14.png" rel="icon" type="image/png">
19
13
 
20
- <div class="navbar navbar-default navbar-fixed-top navbar-inverse">
21
- <div class="container">
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:intensity">DuploTrainBaseColorSensor#event:intensity</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
- </div>
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
- <div class="container" id="toc-content">
67
- <div class="row">
23
+
68
24
 
69
-
70
- <div class="col-md-8">
71
-
72
- <div id="main">
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
- <section class="readme-section">
96
- <article><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>
97
- <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></p>
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>v6.8.0 adds support for LEGO Super Mario.</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(&quot;node-poweredup&quot;);
117
+ const poweredUP = new PoweredUP.PoweredUP();
118
+
119
+ poweredUP.on(&quot;discover&quot;, 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(&quot;A&quot;); // Make sure a motor is plugged into port A
123
+ const motorB = await hub.waitForDeviceAtPort(&quot;B&quot;); // Make sure a motor is plugged into port B
124
+ console.log(&quot;Connected&quot;);
125
+
126
+ while (true) { // Repeat indefinitely
127
+ console.log(&quot;Running motor B at speed 50&quot;);
128
+ motorB.setPower(50); // Start a motor attached to port B to run a 3/4 speed (75) indefinitely
129
+ console.log(&quot;Running motor A at speed 100 for 2 seconds&quot;);
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(&quot;Running motor A at speed -30 for 1 second&quot;);
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(&quot;Scanning for Hubs...&quot;);
144
+ </code></pre>
145
+ <p>More examples are available in the &quot;examples&quot; 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 v8.0+ required.</p>
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(&quot;node-poweredup&quot;);
353
- const poweredUP = new PoweredUP.PoweredUP();
354
-
355
- poweredUP.on(&quot;discover&quot;, 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(&quot;A&quot;); // Make sure a motor is plugged into port A
359
- const motorB = await hub.waitForDeviceAtPort(&quot;B&quot;); // Make sure a motor is plugged into port B
360
- console.log(&quot;Connected&quot;);
361
-
362
- while (true) { // Repeat indefinitely
363
- console.log(&quot;Running motor B at speed 50&quot;);
364
- motorB.setPower(50); // Start a motor attached to port B to run a 3/4 speed (75) indefinitely
365
- console.log(&quot;Running motor A at speed 100 for 2 seconds&quot;);
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(&quot;Running motor A at speed -30 for 1 second&quot;);
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(&quot;Scanning for Hubs...&quot;);
380
- </code></pre>
381
- <p>More examples are available in the &quot;examples&quot; 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></article>
384
- </section>
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">&times;</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.7</a>
432
-
433
- on Mon Aug 30th 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
- <!--Navigation and Symbol Display-->
414
+
510
415
 
511
416
 
512
- <!--Google Analytics-->
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
- <script type="text/javascript">
517
- $(document).ready(function() {
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>