node-poweredup 6.10.0 → 8.0.0

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 (314) 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 +48 -27
  11. package/dist/node/consts.js +53 -31
  12. package/dist/node/consts.js.map +1 -1
  13. package/dist/node/devices/absolutemotor.js +8 -9
  14. package/dist/node/devices/absolutemotor.js.map +1 -1
  15. package/dist/node/devices/basicmotor.js +2 -2
  16. package/dist/node/devices/basicmotor.js.map +1 -1
  17. package/dist/node/devices/colordistancesensor.d.ts +11 -0
  18. package/dist/node/devices/colordistancesensor.js +95 -2
  19. package/dist/node/devices/colordistancesensor.js.map +1 -1
  20. package/dist/node/devices/device.d.ts +2 -2
  21. package/dist/node/devices/device.js +10 -5
  22. package/dist/node/devices/device.js.map +1 -1
  23. package/dist/node/devices/duplotrainbasecolorsensor.d.ts +2 -1
  24. package/dist/node/devices/duplotrainbasecolorsensor.js +15 -2
  25. package/dist/node/devices/duplotrainbasecolorsensor.js.map +1 -1
  26. package/dist/node/devices/light.js +1 -1
  27. package/dist/node/devices/light.js.map +1 -1
  28. package/dist/node/devices/tachomotor.js +10 -12
  29. package/dist/node/devices/tachomotor.js.map +1 -1
  30. package/dist/node/devices/technic3x3colorlightmatrix.d.ts +22 -0
  31. package/dist/node/devices/technic3x3colorlightmatrix.js +77 -0
  32. package/dist/node/devices/technic3x3colorlightmatrix.js.map +1 -0
  33. package/dist/node/devices/techniccolorsensor.js +2 -1
  34. package/dist/node/devices/techniccolorsensor.js.map +1 -1
  35. package/dist/node/devices/technicmediumhubtiltsensor.d.ts +25 -1
  36. package/dist/node/devices/technicmediumhubtiltsensor.js +70 -2
  37. package/dist/node/devices/technicmediumhubtiltsensor.js.map +1 -1
  38. package/dist/node/devices/technicsmallangularmotor.d.ts +12 -0
  39. package/dist/node/devices/technicsmallangularmotor.js +35 -0
  40. package/dist/node/devices/technicsmallangularmotor.js.map +1 -0
  41. package/dist/node/hubs/basehub.js +4 -0
  42. package/dist/node/hubs/basehub.js.map +1 -1
  43. package/dist/node/hubs/hub.js +1 -1
  44. package/dist/node/hubs/hub.js.map +1 -1
  45. package/dist/node/hubs/lpf2hub.js +19 -21
  46. package/dist/node/hubs/lpf2hub.js.map +1 -1
  47. package/dist/node/hubs/movehub.js +1 -1
  48. package/dist/node/hubs/movehub.js.map +1 -1
  49. package/dist/node/hubs/technicmediumhub.js +1 -1
  50. package/dist/node/hubs/technicmediumhub.js.map +1 -1
  51. package/dist/node/hubs/technicsmallhub.d.ts +18 -0
  52. package/dist/node/hubs/technicsmallhub.js +64 -0
  53. package/dist/node/hubs/technicsmallhub.js.map +1 -0
  54. package/dist/node/index-browser.js +6 -0
  55. package/dist/node/index-browser.js.map +1 -1
  56. package/dist/node/index-node.d.ts +4 -1
  57. package/dist/node/index-node.js +7 -1
  58. package/dist/node/index-node.js.map +1 -1
  59. package/dist/node/poweredup-browser.js +8 -1
  60. package/dist/node/poweredup-browser.js.map +1 -1
  61. package/dist/node/poweredup-node.js +28 -1
  62. package/dist/node/poweredup-node.js.map +1 -1
  63. package/dist/node/utils.d.ts +1 -1
  64. package/dist/node/utils.js +10 -3
  65. package/dist/node/utils.js.map +1 -1
  66. package/docs/AbsoluteMotor.html +1220 -1405
  67. package/docs/BaseHub.html +787 -872
  68. package/docs/BasicMotor.html +923 -1078
  69. package/docs/ColorDistanceSensor.html +2188 -1540
  70. package/docs/CurrentSensor.html +711 -800
  71. package/docs/Device.html +574 -665
  72. package/docs/DuploTrainBase.html +1255 -1375
  73. package/docs/DuploTrainBaseColorSensor.html +1049 -978
  74. package/docs/DuploTrainBaseMotor.html +958 -1113
  75. package/docs/DuploTrainBaseSpeaker.html +793 -916
  76. package/docs/DuploTraniBaseSpeedometer.html +628 -719
  77. package/docs/Hub.html +5621 -2397
  78. package/docs/HubLED.html +831 -944
  79. package/docs/LPF2Hub.html +1215 -1335
  80. package/docs/Light.html +831 -944
  81. package/docs/Mario.html +1255 -1420
  82. package/docs/MarioAccelerometer.html +834 -911
  83. package/docs/MarioBarcodeSensor.html +834 -911
  84. package/docs/MarioPantsSensor.html +711 -800
  85. package/docs/MediumLinearMotor.html +861 -1000
  86. package/docs/MotionSensor.html +711 -800
  87. package/docs/MoveHub.html +1255 -1420
  88. package/docs/MoveHubMediumLinearMotor.html +861 -1000
  89. package/docs/MoveHubTiltSensor.html +730 -814
  90. package/docs/PiezoBuzzer.html +732 -834
  91. package/docs/PoweredUP.html +4322 -0
  92. package/docs/RemoteControl.html +1255 -1420
  93. package/docs/RemoteControlButton.html +711 -800
  94. package/docs/SimpleMediumLinearMotor.html +628 -719
  95. package/docs/TachoMotor.html +1644 -1835
  96. package/docs/Technic3x3ColorLightMatrix.html +1181 -0
  97. package/docs/TechnicColorSensor.html +1008 -1099
  98. package/docs/TechnicDistanceSensor.html +939 -1027
  99. package/docs/TechnicForceSensor.html +883 -968
  100. package/docs/TechnicLargeAngularMotor.html +1254 -1439
  101. package/docs/TechnicLargeLinearMotor.html +1254 -1439
  102. package/docs/TechnicMediumAngularMotor.html +1254 -1439
  103. package/docs/TechnicMediumHub.html +1255 -1420
  104. package/docs/TechnicMediumHubAccelerometerSensor.html +749 -828
  105. package/docs/TechnicMediumHubGyroSensor.html +749 -828
  106. package/docs/TechnicMediumHubTiltSensor.html +1340 -831
  107. package/docs/TechnicSmallAngularMotor.html +2073 -0
  108. package/docs/TechnicXLargeLinearMotor.html +1254 -1439
  109. package/docs/TiltSensor.html +730 -814
  110. package/docs/TrainMotor.html +958 -1113
  111. package/docs/VoltageSensor.html +711 -800
  112. package/docs/WeDo2SmartHub.html +1112 -1221
  113. package/docs/consts.js.html +791 -0
  114. package/docs/devices_absolutemotor.js.html +97 -200
  115. package/docs/devices_basicmotor.js.html +91 -193
  116. package/docs/devices_colordistancesensor.js.html +184 -193
  117. package/docs/devices_currentsensor.js.html +89 -191
  118. package/docs/devices_device.js.html +99 -196
  119. package/docs/devices_duplotrainbasecolorsensor.js.html +104 -193
  120. package/docs/devices_duplotrainbasemotor.js.html +92 -194
  121. package/docs/devices_duplotrainbasespeaker.js.html +89 -191
  122. package/docs/devices_duplotrainbasespeedometer.js.html +89 -191
  123. package/docs/devices_hubled.js.html +89 -191
  124. package/docs/devices_light.js.html +90 -192
  125. package/docs/devices_marioaccelerometer.js.html +89 -191
  126. package/docs/devices_mariobarcodesensor.js.html +89 -191
  127. package/docs/devices_mariopantssensor.js.html +89 -191
  128. package/docs/devices_mediumlinearmotor.js.html +92 -194
  129. package/docs/devices_motionsensor.js.html +89 -191
  130. package/docs/devices_movehubmediumlinearmotor.js.html +92 -194
  131. package/docs/devices_movehubtiltsensor.js.html +89 -191
  132. package/docs/devices_piezobuzzer.js.html +89 -191
  133. package/docs/devices_remotecontrolbutton.js.html +89 -191
  134. package/docs/devices_simplemediumlinearmotor.js.html +92 -194
  135. package/docs/devices_tachomotor.js.html +99 -203
  136. package/docs/devices_technic3x3colorlightmatrix.js.html +190 -0
  137. package/docs/devices_techniccolorsensor.js.html +91 -192
  138. package/docs/devices_technicdistancesensor.js.html +89 -191
  139. package/docs/devices_technicforcesensor.js.html +89 -191
  140. package/docs/devices_techniclargeangularmotor.js.html +92 -194
  141. package/docs/devices_techniclargelinearmotor.js.html +92 -194
  142. package/docs/devices_technicmediumangularmotor.js.html +92 -194
  143. package/docs/devices_technicmediumhubaccelerometersensor.js.html +89 -191
  144. package/docs/devices_technicmediumhubgyrosensor.js.html +89 -191
  145. package/docs/devices_technicmediumhubtiltsensor.js.html +159 -193
  146. package/docs/devices_technicsmallangularmotor.js.html +148 -0
  147. package/docs/devices_technicxlargelinearmotor.js.html +92 -194
  148. package/docs/devices_tiltsensor.js.html +89 -191
  149. package/docs/devices_trainmotor.js.html +92 -194
  150. package/docs/devices_voltagesensor.js.html +89 -191
  151. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  152. package/docs/fonts/OpenSans-Bold-webfont.svg +1830 -0
  153. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  154. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  155. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  156. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  157. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  158. package/docs/fonts/OpenSans-Italic-webfont.svg +1830 -0
  159. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  160. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  161. package/docs/fonts/OpenSans-Light-webfont.svg +1831 -0
  162. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  163. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  164. package/docs/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  165. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  166. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  167. package/docs/fonts/OpenSans-Regular-webfont.svg +1831 -0
  168. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  169. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  170. package/docs/fonts/OpenSans-Semibold-webfont.svg +1830 -0
  171. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  172. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  173. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  174. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  175. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  176. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  177. package/docs/global.html +9829 -0
  178. package/docs/hubs_basehub.js.html +93 -191
  179. package/docs/hubs_duplotrainbase.js.html +89 -191
  180. package/docs/hubs_hub.js.html +90 -192
  181. package/docs/hubs_lpf2hub.js.html +108 -212
  182. package/docs/hubs_mario.js.html +89 -191
  183. package/docs/hubs_movehub.js.html +90 -192
  184. package/docs/hubs_remotecontrol.js.html +89 -191
  185. package/docs/hubs_technicmediumhub.js.html +90 -192
  186. package/docs/hubs_technicsmallhub.js.html +177 -0
  187. package/docs/hubs_wedo2smarthub.js.html +89 -191
  188. package/docs/icons/home.svg +4 -0
  189. package/docs/icons/search.svg +4 -0
  190. package/docs/index.html +143 -236
  191. package/docs/poweredup-browser.js.html +348 -0
  192. package/docs/poweredup-node.js.html +312 -0
  193. package/docs/scripts/linenumber.js +23 -0
  194. package/docs/scripts/pagelocation.js +89 -0
  195. package/docs/styles/collapse.css +27 -0
  196. package/docs/styles/jsdoc-default.css +953 -0
  197. package/docs/styles/prettify-jsdoc.css +111 -0
  198. package/docs/styles/prettify-tomorrow.css +15 -9
  199. package/jsdoc-template/braintree/CHANGELOG.md +31 -0
  200. package/jsdoc-template/braintree/LICENSE +27 -0
  201. package/jsdoc-template/braintree/README.md +90 -0
  202. package/jsdoc-template/braintree/package.json +39 -0
  203. package/jsdoc-template/braintree/publish.js +675 -0
  204. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.eot +0 -0
  205. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.svg +1830 -0
  206. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.woff +0 -0
  207. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  208. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.svg +1830 -0
  209. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  210. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.eot +0 -0
  211. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.svg +1830 -0
  212. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.woff +0 -0
  213. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.eot +0 -0
  214. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.svg +1831 -0
  215. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.woff +0 -0
  216. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  217. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.svg +1835 -0
  218. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  219. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.eot +0 -0
  220. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.svg +1831 -0
  221. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.woff +0 -0
  222. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.eot +0 -0
  223. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.svg +1830 -0
  224. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  225. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.woff +0 -0
  226. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  227. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.svg +1830 -0
  228. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  229. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  230. package/jsdoc-template/braintree/static/icons/home.svg +4 -0
  231. package/jsdoc-template/braintree/static/icons/search.svg +4 -0
  232. package/jsdoc-template/braintree/static/scripts/linenumber.js +23 -0
  233. package/jsdoc-template/braintree/static/scripts/pagelocation.js +89 -0
  234. package/jsdoc-template/braintree/static/styles/collapse.css +27 -0
  235. package/jsdoc-template/braintree/static/styles/jsdoc-default.css +953 -0
  236. package/jsdoc-template/braintree/static/styles/prettify-jsdoc.css +111 -0
  237. package/jsdoc-template/braintree/static/styles/prettify-tomorrow.css +138 -0
  238. package/jsdoc-template/braintree/tmpl/augments.tmpl +10 -0
  239. package/jsdoc-template/braintree/tmpl/container.tmpl +213 -0
  240. package/jsdoc-template/braintree/tmpl/details.tmpl +223 -0
  241. package/jsdoc-template/braintree/tmpl/example.tmpl +2 -0
  242. package/jsdoc-template/braintree/tmpl/examples.tmpl +14 -0
  243. package/jsdoc-template/braintree/tmpl/exceptions.tmpl +28 -0
  244. package/jsdoc-template/braintree/tmpl/layout.tmpl +150 -0
  245. package/jsdoc-template/braintree/tmpl/mainpage.tmpl +9 -0
  246. package/jsdoc-template/braintree/tmpl/members.tmpl +38 -0
  247. package/jsdoc-template/braintree/tmpl/method.tmpl +128 -0
  248. package/jsdoc-template/braintree/tmpl/params.tmpl +125 -0
  249. package/jsdoc-template/braintree/tmpl/properties.tmpl +111 -0
  250. package/jsdoc-template/braintree/tmpl/returns.tmpl +17 -0
  251. package/jsdoc-template/braintree/tmpl/source.tmpl +9 -0
  252. package/jsdoc-template/braintree/tmpl/tutorial.tmpl +23 -0
  253. package/jsdoc-template/braintree/tmpl/type.tmpl +11 -0
  254. package/package.json +14 -15
  255. package/src/color.ts +20 -0
  256. package/src/consts.ts +47 -26
  257. package/src/devices/absolutemotor.ts +2 -3
  258. package/src/devices/colordistancesensor.ts +98 -3
  259. package/src/devices/device.ts +9 -6
  260. package/src/devices/duplotrainbasecolorsensor.ts +17 -2
  261. package/src/devices/tachomotor.ts +4 -6
  262. package/src/devices/technic3x3colorlightmatrix.ts +64 -0
  263. package/src/devices/techniccolorsensor.ts +2 -1
  264. package/src/devices/technicmediumhubtiltsensor.ts +75 -3
  265. package/src/devices/technicsmallangularmotor.ts +17 -0
  266. package/src/hubs/basehub.ts +4 -0
  267. package/src/hubs/lpf2hub.ts +7 -11
  268. package/src/hubs/technicmediumhub.ts +1 -1
  269. package/src/hubs/technicsmallhub.ts +60 -0
  270. package/src/index-browser.ts +6 -0
  271. package/src/index-node.ts +6 -0
  272. package/src/poweredup-browser.ts +8 -1
  273. package/src/poweredup-node.ts +7 -1
  274. package/src/utils.ts +7 -0
  275. package/docs/classes.list.html +0 -8654
  276. package/docs/fonts/glyphicons-halflings-regular.eot +0 -0
  277. package/docs/fonts/glyphicons-halflings-regular.svg +0 -288
  278. package/docs/fonts/glyphicons-halflings-regular.ttf +0 -0
  279. package/docs/fonts/glyphicons-halflings-regular.woff +0 -0
  280. package/docs/fonts/glyphicons-halflings-regular.woff2 +0 -0
  281. package/docs/img/glyphicons-halflings-white.png +0 -0
  282. package/docs/img/glyphicons-halflings.png +0 -0
  283. package/docs/quicksearch.html +0 -31
  284. package/docs/scripts/docstrap.lib.js +0 -11
  285. package/docs/scripts/fulltext-search-ui.js +0 -89
  286. package/docs/scripts/fulltext-search.js +0 -36
  287. package/docs/scripts/lunr.min.js +0 -6
  288. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
  289. package/docs/scripts/prettify/jquery.min.js +0 -6
  290. package/docs/scripts/prettify/lang-css.js +0 -21
  291. package/docs/scripts/prettify/prettify.js +0 -496
  292. package/docs/scripts/sunlight.js +0 -1157
  293. package/docs/scripts/toc.js +0 -203
  294. package/docs/styles/darkstrap.css +0 -960
  295. package/docs/styles/site.cerulean.css +0 -7008
  296. package/docs/styles/site.cosmo.css +0 -7061
  297. package/docs/styles/site.cyborg.css +0 -7048
  298. package/docs/styles/site.darkly.css +0 -7171
  299. package/docs/styles/site.darkstrap.css +0 -5638
  300. package/docs/styles/site.dibs-bootstrap.css +0 -5899
  301. package/docs/styles/site.flatly.css +0 -7147
  302. package/docs/styles/site.journal.css +0 -6973
  303. package/docs/styles/site.lumen.css +0 -7298
  304. package/docs/styles/site.paper.css +0 -7623
  305. package/docs/styles/site.readable.css +0 -6997
  306. package/docs/styles/site.sandstone.css +0 -7035
  307. package/docs/styles/site.simplex.css +0 -7023
  308. package/docs/styles/site.slate.css +0 -7343
  309. package/docs/styles/site.spacelab.css +0 -7055
  310. package/docs/styles/site.superhero.css +0 -7131
  311. package/docs/styles/site.united.css +0 -6895
  312. package/docs/styles/site.yeti.css +0 -7195
  313. package/docs/styles/sunlight.dark.css +0 -345
  314. package/docs/styles/sunlight.default.css +0 -344
package/.drone.yml CHANGED
@@ -5,6 +5,7 @@ pipeline:
5
5
  commands:
6
6
  - apt-get update
7
7
  - apt-get install -y bluetooth bluez libbluetooth-dev libudev-dev
8
+ - git submodule update --init --recursive
8
9
  - npm install
9
10
 
10
11
  build:
package/.gitmodules ADDED
@@ -0,0 +1,3 @@
1
+ [submodule "jsdoc-template/braintree"]
2
+ path = jsdoc-template/braintree
3
+ url = https://github.com/braintree/jsdoc-template.git
@@ -1,9 +1,15 @@
1
1
  {
2
2
  "tags": {
3
- "allowUnknownTags": true
3
+ "allowUnknownTags": true,
4
+ "dictionaries": ["jsdoc"]
5
+ },
6
+ "source": {
7
+ "include": [ "README.md", "dist/node" ],
8
+ "includePattern": ".js$"
4
9
  },
5
10
  "plugins": ["plugins/markdown"],
6
11
  "templates": {
12
+ "referenceTitle": "node-poweredup Reference",
7
13
  "logoFile": "",
8
14
  "cleverLinks": false,
9
15
  "monospaceLinks": false,
@@ -24,5 +30,12 @@
24
30
  "markdown": {
25
31
  "parser": "gfm",
26
32
  "hardwrap": true
33
+ },
34
+ "opts": {
35
+ "destination": "./docs/",
36
+ "encoding": "utf8",
37
+ "private": true,
38
+ "recurse": true,
39
+ "template": "./jsdoc-template/braintree"
27
40
  }
28
41
  }
package/README.md CHANGED
@@ -1,11 +1,12 @@
1
1
  [![Drone](https://drone.kellenicki.com/api/badges/nkellenicki/node-poweredup/status.svg)](https://drone.kellenicki.com/nkellenicki/node-poweredup)
2
2
  [![NPM Version](https://img.shields.io/npm/v/node-poweredup.svg?style=flat)](https://www.npmjs.com/package/node-poweredup)
3
+ [![Docs](https://img.shields.io/badge/docs-start%20here-yellowgreen.svg)](https://nathan.kellenicki.com/node-poweredup/)
3
4
 
4
5
  # **node-poweredup** - A Javascript module to interface with LEGO Powered Up components.
5
6
 
6
7
  ### Announcements
7
8
 
8
- * v6.8.0 adds support for LEGO Super Mario.
9
+ * v7.1.0 adds support for SPIKE Essential, including the Technic Small Hub, Technic Small Angular Motor, and Technic 3x3 Color Matrix.
9
10
 
10
11
  ### Introduction
11
12
 
@@ -16,15 +17,55 @@ LEGO Powered Up is the successor to Power Functions, the system for adding elect
16
17
  * LEGO Powered Up
17
18
  * LEGO Technic CONTROL+
18
19
  * LEGO Education SPIKE Prime
20
+ * LEGO Education SPIKE Essential
19
21
  * LEGO Mindstorms Robot Inventor
20
22
 
21
23
  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.
22
24
 
23
25
  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.
24
26
 
27
+ ### Sample Usage
28
+
29
+ ```javascript
30
+ const PoweredUP = require("node-poweredup");
31
+ const poweredUP = new PoweredUP.PoweredUP();
32
+
33
+ poweredUP.on("discover", async (hub) => { // Wait to discover a Hub
34
+ console.log(`Discovered ${hub.name}!`);
35
+ await hub.connect(); // Connect to the Hub
36
+ const motorA = await hub.waitForDeviceAtPort("A"); // Make sure a motor is plugged into port A
37
+ const motorB = await hub.waitForDeviceAtPort("B"); // Make sure a motor is plugged into port B
38
+ console.log("Connected");
39
+
40
+ while (true) { // Repeat indefinitely
41
+ console.log("Running motor B at speed 50");
42
+ motorB.setPower(50); // Start a motor attached to port B to run a 3/4 speed (75) indefinitely
43
+ console.log("Running motor A at speed 100 for 2 seconds");
44
+ motorA.setPower(100); // Run a motor attached to port A for 2 seconds at maximum speed (100) then stop
45
+ await hub.sleep(2000);
46
+ motorA.brake();
47
+ await hub.sleep(1000); // Do nothing for 1 second
48
+ console.log("Running motor A at speed -30 for 1 second");
49
+ motorA.setPower(-30); // Run a motor attached to port A for 2 seconds at 1/2 speed in reverse (-50) then stop
50
+ await hub.sleep(2000);
51
+ motorA.brake();
52
+ await hub.sleep(1000); // Do nothing for 1 second
53
+ }
54
+ });
55
+
56
+ poweredUP.scan(); // Start scanning for Hubs
57
+ console.log("Scanning for Hubs...");
58
+ ```
59
+
60
+ More examples are available in the "examples" directory.
61
+
62
+ ### Documentation
63
+
64
+ [Full documentation is available here.](https://nathankellenicki.github.io/node-poweredup/)
65
+
25
66
  ### Node.js Installation
26
67
 
27
- Node.js v8.0+ required.
68
+ Node.js v12.0+ required.
28
69
 
29
70
  ```javascript
30
71
  npm install node-poweredup --save
@@ -54,6 +95,8 @@ While most Powered Up components and Hubs are compatible with each other, there
54
95
  | SPIKE Prime Color Sensor | 45678 | Sensor | No | No | Yes | Yes | <a href="https://brickset.com/sets/45678-1/">45678</a> |
55
96
  | SPIKE Prime Distance Sensor | 45678 | Sensor | No | No | Yes | Yes | <a href="https://brickset.com/sets/45678-1/">45678</a> |
56
97
  | SPIKE Prime Force Sensor | 45678 | Sensor | *Partial* | Yes | Yes | Yes | <a href="https://brickset.com/sets/45678-1/">45678</a> |
98
+ | SPIKE Essential Small Motor | 45607 | Motor/Sensor | *Partial* | No | Yes | Yes | <a href="https://brickset.com/sets/45345-1/">45345</a> |
99
+ | SPIKE Essential 3x3 Color Matrix | 45608 | Motor/Sensor | *Partial* | No | Yes | Yes | <a href="https://brickset.com/sets/45345-1/">45345</a> |
57
100
 
58
101
 
59
102
  In addition, the Hubs themselves have certain built-in features which this library exposes.
@@ -67,6 +110,7 @@ In addition, the Hubs themselves have certain built-in features which this libra
67
110
  | Duplo Train Base | 28743 | RGB LED/Headlights<br />Speaker<br />Speedometer<br />Motor<br />Color and Distance Sensor<br />Button | <a href="https://brickset.com/sets/10874-1/">10874</a><br /><a href="https://brickset.com/sets/10875-1/">10875</a> |
68
111
  | Control+ Hub | 22127 | RGB LED<br />Button<br />Tilt Sensor<br />Accelerometer | <a href="https://brickset.com/sets/42099-1/">42099</a><br /><a href="https://brickset.com/sets/42100-1/">42100</a> |
69
112
  | Super Mario | 71360 | Pants Sensor<br />Barcode and Color Sensor | <a href="https://brickset.com/sets/71360-1/">71360</a> |
113
+ | SPIKE Essential Hub | 45609 | RGB LED<br />Button<br />Tilt Sensor<br />Accelerometer | <a href="https://brickset.com/sets/45345-1/">45345</a> |
70
114
 
71
115
  ### Known Issues and Limitations
72
116
 
@@ -74,49 +118,10 @@ In addition, the Hubs themselves have certain built-in features which this libra
74
118
 
75
119
  * 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)
76
120
 
77
- * 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.
121
+ * 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.
78
122
 
79
123
  * On most Unix systems, you need root permissions to access Bluetooth devices. You may want to [grant the node executable access to the Bluetooth adapter](https://github.com/abandonware/noble#running-without-rootsudo-linux-specific)
80
124
 
81
- ### Documentation
82
-
83
- [Full documentation is available here.](https://nathankellenicki.github.io/node-poweredup/)
84
-
85
- ### Node.js Sample Usage
86
-
87
- ```javascript
88
- const PoweredUP = require("node-poweredup");
89
- const poweredUP = new PoweredUP.PoweredUP();
90
-
91
- poweredUP.on("discover", async (hub) => { // Wait to discover a Hub
92
- console.log(`Discovered ${hub.name}!`);
93
- await hub.connect(); // Connect to the Hub
94
- const motorA = await hub.waitForDeviceAtPort("A"); // Make sure a motor is plugged into port A
95
- const motorB = await hub.waitForDeviceAtPort("B"); // Make sure a motor is plugged into port B
96
- console.log("Connected");
97
-
98
- while (true) { // Repeat indefinitely
99
- console.log("Running motor B at speed 50");
100
- motorB.setPower(50); // Start a motor attached to port B to run a 3/4 speed (75) indefinitely
101
- console.log("Running motor A at speed 100 for 2 seconds");
102
- motorA.setPower(100); // Run a motor attached to port A for 2 seconds at maximum speed (100) then stop
103
- await hub.sleep(2000);
104
- motorA.brake();
105
- await hub.sleep(1000); // Do nothing for 1 second
106
- console.log("Running motor A at speed -30 for 1 second");
107
- motorA.setPower(-30); // Run a motor attached to port A for 2 seconds at 1/2 speed in reverse (-50) then stop
108
- await hub.sleep(2000);
109
- motorA.brake();
110
- await hub.sleep(1000); // Do nothing for 1 second
111
- }
112
- });
113
-
114
- poweredUP.scan(); // Start scanning for Hubs
115
- console.log("Scanning for Hubs...");
116
- ```
117
-
118
- More examples are available in the "examples" directory.
119
-
120
125
  ### Credits
121
126
 
122
127
  Thanks go to Jorge Pereira ([@JorgePe](https://github.com/JorgePe)), Sebastian Raff ([@hobbyquaker](https://github.com/hobbyquaker)), Valentin Heun ([@vheun](https://github.com/vheun)), Johan Korten ([@jakorten](https://github.com/jakorten)), and Andrey Pokhilko ([@undera](https://github.com/undera)) for their various works, contributions, and assistance on figuring out the LEGO Boost, WeDo 2.0, and Powered Up protocols.