node-poweredup 9.0.0 → 10.1.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 (633) hide show
  1. package/README.md +6 -12
  2. package/dist/browser/poweredup.js +6193 -3
  3. package/dist/browser/poweredup.js.map +7 -1
  4. package/dist/{node/color.d.ts → color.d.ts} +1 -0
  5. package/dist/color.d.ts.map +1 -0
  6. package/dist/color.js +15 -0
  7. package/dist/color.js.map +1 -0
  8. package/dist/{node/consts.d.ts → consts.d.ts} +57 -16
  9. package/dist/consts.d.ts.map +1 -0
  10. package/dist/{node/consts.js → consts.js} +115 -76
  11. package/dist/consts.js.map +1 -0
  12. package/dist/{node/devices → devices}/absolutemotor.d.ts +12 -13
  13. package/dist/devices/absolutemotor.d.ts.map +1 -0
  14. package/dist/devices/absolutemotor.js +108 -0
  15. package/dist/devices/absolutemotor.js.map +1 -0
  16. package/dist/devices/basicmotor.d.ts +38 -0
  17. package/dist/devices/basicmotor.d.ts.map +1 -0
  18. package/dist/devices/basicmotor.js +51 -0
  19. package/dist/devices/basicmotor.js.map +1 -0
  20. package/dist/{node/devices → devices}/colordistancesensor.d.ts +20 -25
  21. package/dist/devices/colordistancesensor.d.ts.map +1 -0
  22. package/dist/{node/devices → devices}/colordistancesensor.js +40 -79
  23. package/dist/devices/colordistancesensor.js.map +1 -0
  24. package/dist/{node/devices → devices}/currentsensor.d.ts +3 -3
  25. package/dist/devices/currentsensor.d.ts.map +1 -0
  26. package/dist/{node/devices → devices}/currentsensor.js +7 -34
  27. package/dist/devices/currentsensor.js.map +1 -0
  28. package/dist/{node/devices → devices}/device.d.ts +18 -11
  29. package/dist/devices/device.d.ts.map +1 -0
  30. package/dist/devices/device.js +350 -0
  31. package/dist/devices/device.js.map +1 -0
  32. package/dist/{node/devices → devices}/duplotrainbasecolorsensor.d.ts +3 -3
  33. package/dist/devices/duplotrainbasecolorsensor.d.ts.map +1 -0
  34. package/dist/{node/devices → devices}/duplotrainbasecolorsensor.js +9 -36
  35. package/dist/devices/duplotrainbasecolorsensor.js.map +1 -0
  36. package/dist/{node/devices → devices}/duplotrainbasemotor.d.ts +3 -2
  37. package/dist/devices/duplotrainbasemotor.d.ts.map +1 -0
  38. package/dist/devices/duplotrainbasemotor.js +12 -0
  39. package/dist/devices/duplotrainbasemotor.js.map +1 -0
  40. package/dist/devices/duplotrainbasespeaker.d.ts +27 -0
  41. package/dist/devices/duplotrainbasespeaker.d.ts.map +1 -0
  42. package/dist/devices/duplotrainbasespeaker.js +35 -0
  43. package/dist/devices/duplotrainbasespeaker.js.map +1 -0
  44. package/dist/{node/devices → devices}/duplotrainbasespeedometer.d.ts +3 -3
  45. package/dist/devices/duplotrainbasespeedometer.d.ts.map +1 -0
  46. package/dist/devices/duplotrainbasespeedometer.js +34 -0
  47. package/dist/devices/duplotrainbasespeedometer.js.map +1 -0
  48. package/dist/devices/hubled.d.ts +29 -0
  49. package/dist/devices/hubled.d.ts.map +1 -0
  50. package/dist/devices/hubled.js +58 -0
  51. package/dist/devices/hubled.js.map +1 -0
  52. package/dist/{node/devices → devices}/light.d.ts +10 -8
  53. package/dist/devices/light.d.ts.map +1 -0
  54. package/dist/devices/light.js +38 -0
  55. package/dist/devices/light.js.map +1 -0
  56. package/dist/{node/devices → devices}/marioaccelerometer.d.ts +3 -3
  57. package/dist/devices/marioaccelerometer.d.ts.map +1 -0
  58. package/dist/devices/marioaccelerometer.js +50 -0
  59. package/dist/devices/marioaccelerometer.js.map +1 -0
  60. package/dist/{node/devices → devices}/mariobarcodesensor.d.ts +3 -3
  61. package/dist/devices/mariobarcodesensor.d.ts.map +1 -0
  62. package/dist/{node/devices → devices}/mariobarcodesensor.js +7 -34
  63. package/dist/devices/mariobarcodesensor.js.map +1 -0
  64. package/dist/{node/devices → devices}/mariopantssensor.d.ts +3 -3
  65. package/dist/devices/mariopantssensor.d.ts.map +1 -0
  66. package/dist/devices/mariopantssensor.js +34 -0
  67. package/dist/devices/mariopantssensor.js.map +1 -0
  68. package/dist/{node/devices → devices}/mediumlinearmotor.d.ts +3 -2
  69. package/dist/devices/mediumlinearmotor.d.ts.map +1 -0
  70. package/dist/devices/mediumlinearmotor.js +12 -0
  71. package/dist/devices/mediumlinearmotor.js.map +1 -0
  72. package/dist/{node/devices → devices}/motionsensor.d.ts +3 -3
  73. package/dist/devices/motionsensor.d.ts.map +1 -0
  74. package/dist/devices/motionsensor.js +38 -0
  75. package/dist/devices/motionsensor.js.map +1 -0
  76. package/dist/{node/devices → devices}/movehubmediumlinearmotor.d.ts +3 -2
  77. package/dist/devices/movehubmediumlinearmotor.d.ts.map +1 -0
  78. package/dist/devices/movehubmediumlinearmotor.js +12 -0
  79. package/dist/devices/movehubmediumlinearmotor.js.map +1 -0
  80. package/dist/{node/devices → devices}/movehubtiltsensor.d.ts +3 -3
  81. package/dist/devices/movehubtiltsensor.d.ts.map +1 -0
  82. package/dist/devices/movehubtiltsensor.js +36 -0
  83. package/dist/devices/movehubtiltsensor.js.map +1 -0
  84. package/dist/devices/piezobuzzer.d.ts +18 -0
  85. package/dist/devices/piezobuzzer.d.ts.map +1 -0
  86. package/dist/devices/piezobuzzer.js +27 -0
  87. package/dist/devices/piezobuzzer.js.map +1 -0
  88. package/dist/{node/devices → devices}/remotecontrolbutton.d.ts +3 -3
  89. package/dist/devices/remotecontrolbutton.d.ts.map +1 -0
  90. package/dist/devices/remotecontrolbutton.js +40 -0
  91. package/dist/devices/remotecontrolbutton.js.map +1 -0
  92. package/dist/{node/devices → devices}/simplemediumlinearmotor.d.ts +3 -2
  93. package/dist/devices/simplemediumlinearmotor.d.ts.map +1 -0
  94. package/dist/devices/simplemediumlinearmotor.js +12 -0
  95. package/dist/devices/simplemediumlinearmotor.js.map +1 -0
  96. package/dist/{node/devices → devices}/tachomotor.d.ts +19 -19
  97. package/dist/devices/tachomotor.d.ts.map +1 -0
  98. package/dist/devices/tachomotor.js +155 -0
  99. package/dist/devices/tachomotor.js.map +1 -0
  100. package/dist/{node/devices → devices}/technic3x3colorlightmatrix.d.ts +6 -5
  101. package/dist/devices/technic3x3colorlightmatrix.d.ts.map +1 -0
  102. package/dist/devices/technic3x3colorlightmatrix.js +50 -0
  103. package/dist/devices/technic3x3colorlightmatrix.js.map +1 -0
  104. package/dist/{node/devices → devices}/techniccolorsensor.d.ts +12 -8
  105. package/dist/devices/techniccolorsensor.d.ts.map +1 -0
  106. package/dist/devices/techniccolorsensor.js +162 -0
  107. package/dist/devices/techniccolorsensor.js.map +1 -0
  108. package/dist/{node/devices → devices}/technicdistancesensor.d.ts +4 -5
  109. package/dist/devices/technicdistancesensor.d.ts.map +1 -0
  110. package/dist/{node/devices → devices}/technicdistancesensor.js +8 -36
  111. package/dist/devices/technicdistancesensor.js.map +1 -0
  112. package/dist/{node/devices → devices}/technicforcesensor.d.ts +3 -3
  113. package/dist/devices/technicforcesensor.d.ts.map +1 -0
  114. package/dist/{node/devices → devices}/technicforcesensor.js +7 -34
  115. package/dist/devices/technicforcesensor.js.map +1 -0
  116. package/dist/{node/devices → devices}/techniclargeangularmotor.d.ts +4 -3
  117. package/dist/devices/techniclargeangularmotor.d.ts.map +1 -0
  118. package/dist/devices/techniclargeangularmotor.js +12 -0
  119. package/dist/devices/techniclargeangularmotor.js.map +1 -0
  120. package/dist/{node/devices → devices}/techniclargelinearmotor.d.ts +3 -2
  121. package/dist/devices/techniclargelinearmotor.d.ts.map +1 -0
  122. package/dist/devices/techniclargelinearmotor.js +12 -0
  123. package/dist/devices/techniclargelinearmotor.js.map +1 -0
  124. package/dist/{node/devices → devices}/technicmediumangularmotor.d.ts +4 -3
  125. package/dist/devices/technicmediumangularmotor.d.ts.map +1 -0
  126. package/dist/devices/technicmediumangularmotor.js +12 -0
  127. package/dist/devices/technicmediumangularmotor.js.map +1 -0
  128. package/dist/{node/devices → devices}/technicmediumhubaccelerometersensor.d.ts +3 -3
  129. package/dist/devices/technicmediumhubaccelerometersensor.d.ts.map +1 -0
  130. package/dist/devices/technicmediumhubaccelerometersensor.js +38 -0
  131. package/dist/devices/technicmediumhubaccelerometersensor.js.map +1 -0
  132. package/dist/{node/devices → devices}/technicmediumhubgyrosensor.d.ts +3 -3
  133. package/dist/devices/technicmediumhubgyrosensor.d.ts.map +1 -0
  134. package/dist/devices/technicmediumhubgyrosensor.js +38 -0
  135. package/dist/devices/technicmediumhubgyrosensor.js.map +1 -0
  136. package/dist/devices/technicmediumhubtiltsensor.d.ts +39 -0
  137. package/dist/devices/technicmediumhubtiltsensor.d.ts.map +1 -0
  138. package/dist/devices/technicmediumhubtiltsensor.js +94 -0
  139. package/dist/devices/technicmediumhubtiltsensor.js.map +1 -0
  140. package/dist/{node/devices → devices}/technicsmallangularmotor.d.ts +4 -3
  141. package/dist/devices/technicsmallangularmotor.d.ts.map +1 -0
  142. package/dist/devices/technicsmallangularmotor.js +12 -0
  143. package/dist/devices/technicsmallangularmotor.js.map +1 -0
  144. package/dist/{node/devices → devices}/technicxlargelinearmotor.d.ts +3 -2
  145. package/dist/devices/technicxlargelinearmotor.d.ts.map +1 -0
  146. package/dist/devices/technicxlargelinearmotor.js +12 -0
  147. package/dist/devices/technicxlargelinearmotor.js.map +1 -0
  148. package/dist/{node/devices → devices}/tiltsensor.d.ts +7 -4
  149. package/dist/devices/tiltsensor.d.ts.map +1 -0
  150. package/dist/devices/tiltsensor.js +117 -0
  151. package/dist/devices/tiltsensor.js.map +1 -0
  152. package/dist/{node/devices → devices}/trainmotor.d.ts +3 -2
  153. package/dist/devices/trainmotor.d.ts.map +1 -0
  154. package/dist/devices/trainmotor.js +12 -0
  155. package/dist/devices/trainmotor.js.map +1 -0
  156. package/dist/{node/devices → devices}/voltagesensor.d.ts +3 -3
  157. package/dist/devices/voltagesensor.d.ts.map +1 -0
  158. package/dist/{node/devices → devices}/voltagesensor.js +7 -34
  159. package/dist/devices/voltagesensor.js.map +1 -0
  160. package/dist/{node/hubs → hubs}/basehub.d.ts +5 -14
  161. package/dist/hubs/basehub.d.ts.map +1 -0
  162. package/dist/{node/hubs → hubs}/basehub.js +91 -110
  163. package/dist/hubs/basehub.js.map +1 -0
  164. package/dist/{node/hubs → hubs}/duplotrainbase.d.ts +4 -4
  165. package/dist/hubs/duplotrainbase.d.ts.map +1 -0
  166. package/dist/hubs/duplotrainbase.js +35 -0
  167. package/dist/hubs/duplotrainbase.js.map +1 -0
  168. package/dist/{node/hubs → hubs}/hub.d.ts +4 -4
  169. package/dist/hubs/hub.d.ts.map +1 -0
  170. package/dist/hubs/hub.js +44 -0
  171. package/dist/hubs/hub.js.map +1 -0
  172. package/dist/{node/hubs → hubs}/lpf2hub.d.ts +3 -5
  173. package/dist/hubs/lpf2hub.d.ts.map +1 -0
  174. package/dist/{node/hubs → hubs}/lpf2hub.js +28 -47
  175. package/dist/hubs/lpf2hub.js.map +1 -0
  176. package/dist/{node/hubs → hubs}/mario.d.ts +4 -4
  177. package/dist/hubs/mario.d.ts.map +1 -0
  178. package/dist/hubs/mario.js +31 -0
  179. package/dist/hubs/mario.js.map +1 -0
  180. package/dist/{node/hubs → hubs}/movehub.d.ts +4 -4
  181. package/dist/hubs/movehub.d.ts.map +1 -0
  182. package/dist/hubs/movehub.js +46 -0
  183. package/dist/hubs/movehub.js.map +1 -0
  184. package/dist/{node/hubs → hubs}/remotecontrol.d.ts +4 -4
  185. package/dist/hubs/remotecontrol.d.ts.map +1 -0
  186. package/dist/hubs/remotecontrol.js +37 -0
  187. package/dist/hubs/remotecontrol.js.map +1 -0
  188. package/dist/{node/hubs → hubs}/technicmediumhub.d.ts +4 -4
  189. package/dist/hubs/technicmediumhub.d.ts.map +1 -0
  190. package/dist/hubs/technicmediumhub.js +42 -0
  191. package/dist/hubs/technicmediumhub.js.map +1 -0
  192. package/dist/{node/hubs → hubs}/technicsmallhub.d.ts +4 -4
  193. package/dist/hubs/technicsmallhub.d.ts.map +1 -0
  194. package/dist/hubs/technicsmallhub.js +41 -0
  195. package/dist/hubs/technicsmallhub.js.map +1 -0
  196. package/dist/{node/hubs → hubs}/wedo2smarthub.d.ts +4 -7
  197. package/dist/hubs/wedo2smarthub.d.ts.map +1 -0
  198. package/dist/{node/hubs → hubs}/wedo2smarthub.js +10 -39
  199. package/dist/hubs/wedo2smarthub.js.map +1 -0
  200. package/dist/index-browser.d.ts +2 -0
  201. package/dist/index-browser.d.ts.map +1 -0
  202. package/dist/index-browser.js +96 -0
  203. package/dist/index-browser.js.map +1 -0
  204. package/dist/index-node.d.ts +50 -0
  205. package/dist/index-node.d.ts.map +1 -0
  206. package/dist/{node/index-node.d.ts → index-node.js} +48 -46
  207. package/dist/index-node.js.map +1 -0
  208. package/dist/{node/interfaces.d.ts → interfaces.d.ts} +3 -4
  209. package/dist/interfaces.d.ts.map +1 -0
  210. package/dist/interfaces.js +2 -0
  211. package/dist/{node/interfaces.js.map → interfaces.js.map} +1 -1
  212. package/dist/{node/nobleabstraction.d.ts → nobleabstraction.d.ts} +3 -4
  213. package/dist/nobleabstraction.d.ts.map +1 -0
  214. package/dist/{node/nobleabstraction.js → nobleabstraction.js} +5 -9
  215. package/dist/nobleabstraction.js.map +1 -0
  216. package/dist/portoutputcommand.d.ts +13 -0
  217. package/dist/portoutputcommand.d.ts.map +1 -0
  218. package/dist/portoutputcommand.js +30 -0
  219. package/dist/portoutputcommand.js.map +1 -0
  220. package/dist/portoutputsleep.d.ts +6 -0
  221. package/dist/portoutputsleep.d.ts.map +1 -0
  222. package/dist/portoutputsleep.js +10 -0
  223. package/dist/portoutputsleep.js.map +1 -0
  224. package/dist/{node/poweredup-browser.d.ts → poweredup-browser.d.ts} +2 -8
  225. package/dist/poweredup-browser.d.ts.map +1 -0
  226. package/dist/{node/poweredup-browser.js → poweredup-browser.js} +23 -55
  227. package/dist/poweredup-browser.js.map +1 -0
  228. package/dist/{node/poweredup-node.d.ts → poweredup-node.d.ts} +3 -10
  229. package/dist/poweredup-node.d.ts.map +1 -0
  230. package/dist/{node/poweredup-node.js → poweredup-node.js} +32 -66
  231. package/dist/poweredup-node.js.map +1 -0
  232. package/dist/{node/utils.d.ts → utils.d.ts} +2 -4
  233. package/dist/utils.d.ts.map +1 -0
  234. package/dist/utils.js +84 -0
  235. package/dist/utils.js.map +1 -0
  236. package/dist/{node/webbleabstraction.d.ts → webbleabstraction.d.ts} +3 -4
  237. package/dist/webbleabstraction.d.ts.map +1 -0
  238. package/dist/{node/webbleabstraction.js → webbleabstraction.js} +3 -7
  239. package/dist/webbleabstraction.js.map +1 -0
  240. package/docs/.nojekyll +1 -0
  241. package/docs/assets/hierarchy.js +1 -0
  242. package/docs/assets/highlight.css +99 -0
  243. package/docs/assets/icons.js +18 -0
  244. package/docs/assets/icons.svg +1 -0
  245. package/docs/assets/main.js +60 -0
  246. package/docs/assets/navigation.js +1 -0
  247. package/docs/assets/search.js +1 -0
  248. package/docs/assets/style.css +1633 -0
  249. package/docs/classes/AbsoluteMotor.html +242 -0
  250. package/docs/classes/BaseHub.html +220 -0
  251. package/docs/classes/BasicMotor.html +201 -0
  252. package/docs/classes/Color.html +3 -0
  253. package/docs/classes/ColorDistanceSensor.html +214 -0
  254. package/docs/classes/CurrentSensor.html +185 -0
  255. package/docs/classes/Device.html +185 -0
  256. package/docs/classes/DuploTrainBase.html +233 -0
  257. package/docs/classes/DuploTrainBaseColorSensor.html +185 -0
  258. package/docs/classes/DuploTrainBaseMotor.html +201 -0
  259. package/docs/classes/DuploTrainBaseSpeaker.html +191 -0
  260. package/docs/classes/DuploTrainBaseSpeedometer.html +185 -0
  261. package/docs/classes/Hub.html +233 -0
  262. package/docs/classes/HubLED.html +191 -0
  263. package/docs/classes/Light.html +195 -0
  264. package/docs/classes/Mario.html +233 -0
  265. package/docs/classes/MediumLinearMotor.html +229 -0
  266. package/docs/classes/MotionSensor.html +185 -0
  267. package/docs/classes/MoveHub.html +233 -0
  268. package/docs/classes/MoveHubMediumLinearMotor.html +229 -0
  269. package/docs/classes/MoveHubTiltSensor.html +185 -0
  270. package/docs/classes/PiezoBuzzer.html +189 -0
  271. package/docs/classes/PoweredUP.html +180 -0
  272. package/docs/classes/RemoteControl.html +233 -0
  273. package/docs/classes/RemoteControlButton.html +185 -0
  274. package/docs/classes/SimpleMediumLinearMotor.html +201 -0
  275. package/docs/classes/TachoMotor.html +229 -0
  276. package/docs/classes/Technic3x3ColorLightMatrix.html +189 -0
  277. package/docs/classes/TechnicColorSensor.html +191 -0
  278. package/docs/classes/TechnicDistanceSensor.html +192 -0
  279. package/docs/classes/TechnicForceSensor.html +185 -0
  280. package/docs/classes/TechnicLargeAngularMotor.html +242 -0
  281. package/docs/classes/TechnicLargeLinearMotor.html +242 -0
  282. package/docs/classes/TechnicMediumAngularMotor.html +242 -0
  283. package/docs/classes/TechnicMediumHub.html +233 -0
  284. package/docs/classes/TechnicMediumHubAccelerometerSensor.html +185 -0
  285. package/docs/classes/TechnicMediumHubGyroSensor.html +185 -0
  286. package/docs/classes/TechnicMediumHubTiltSensor.html +197 -0
  287. package/docs/classes/TechnicSmallAngularMotor.html +242 -0
  288. package/docs/classes/TechnicXLargeLinearMotor.html +242 -0
  289. package/docs/classes/TiltSensor.html +185 -0
  290. package/docs/classes/TrainMotor.html +201 -0
  291. package/docs/classes/VoltageSensor.html +185 -0
  292. package/docs/classes/WeDo2SmartHub.html +229 -0
  293. package/docs/enums/ActionType.html +22 -0
  294. package/docs/enums/AlertOperation.html +10 -0
  295. package/docs/enums/AlertPayload.html +6 -0
  296. package/docs/enums/AlertType.html +10 -0
  297. package/docs/enums/BLECharacteristic.html +15 -0
  298. package/docs/enums/BLEManufacturerData.html +8 -0
  299. package/docs/enums/BLEService.html +7 -0
  300. package/docs/enums/BrakingStyle.html +7 -0
  301. package/docs/enums/ButtonState.html +11 -0
  302. package/docs/enums/Consts.Color.html +25 -0
  303. package/docs/enums/DeviceType.html +79 -0
  304. package/docs/enums/DuploTrainBaseSound.html +11 -0
  305. package/docs/enums/ErrorCode.html +18 -0
  306. package/docs/enums/Event.html +8 -0
  307. package/docs/enums/HWNetWorkCommandType.html +28 -0
  308. package/docs/enums/HWNetworkFamily.html +20 -0
  309. package/docs/enums/HWNetworkSubFamily.html +16 -0
  310. package/docs/enums/HubPropertyOperation.html +14 -0
  311. package/docs/enums/HubPropertyPayload.html +32 -0
  312. package/docs/enums/HubPropertyReference.html +32 -0
  313. package/docs/enums/HubType.html +19 -0
  314. package/docs/enums/IOTypeID.html +30 -0
  315. package/docs/enums/MarioColor.html +17 -0
  316. package/docs/enums/MarioPantsType.html +13 -0
  317. package/docs/enums/MessageType.html +48 -0
  318. package/docs/enums/ModeInformationType.html +22 -0
  319. package/docs/enums/PortInputFormatSetupSubCommand.html +14 -0
  320. package/docs/hierarchy.html +1 -0
  321. package/docs/index.html +18 -120
  322. package/docs/modules/Consts.html +1 -0
  323. package/docs/modules.html +1 -0
  324. package/docs/variables/ColorNames.html +1 -0
  325. package/docs/variables/DeviceTypeNames.html +1 -0
  326. package/docs/variables/HubTypeNames.html +1 -0
  327. package/docs/variables/isWebBluetooth.html +1 -0
  328. package/package.json +19 -25
  329. package/src/color.ts +1 -1
  330. package/src/consts.ts +60 -16
  331. package/src/devices/absolutemotor.ts +28 -38
  332. package/src/devices/basicmotor.ts +20 -30
  333. package/src/devices/colordistancesensor.ts +31 -43
  334. package/src/devices/currentsensor.ts +3 -3
  335. package/src/devices/device.ts +200 -22
  336. package/src/devices/duplotrainbasecolorsensor.ts +4 -4
  337. package/src/devices/duplotrainbasemotor.ts +3 -3
  338. package/src/devices/duplotrainbasespeaker.ts +8 -13
  339. package/src/devices/duplotrainbasespeedometer.ts +3 -3
  340. package/src/devices/hubled.ts +25 -27
  341. package/src/devices/light.ts +15 -24
  342. package/src/devices/marioaccelerometer.ts +3 -3
  343. package/src/devices/mariobarcodesensor.ts +3 -3
  344. package/src/devices/mariopantssensor.ts +3 -3
  345. package/src/devices/mediumlinearmotor.ts +3 -3
  346. package/src/devices/motionsensor.ts +3 -3
  347. package/src/devices/movehubmediumlinearmotor.ts +3 -3
  348. package/src/devices/movehubtiltsensor.ts +3 -3
  349. package/src/devices/piezobuzzer.ts +6 -7
  350. package/src/devices/remotecontrolbutton.ts +3 -3
  351. package/src/devices/simplemediumlinearmotor.ts +3 -3
  352. package/src/devices/tachomotor.ts +52 -64
  353. package/src/devices/technic3x3colorlightmatrix.ts +24 -28
  354. package/src/devices/techniccolorsensor.ts +106 -15
  355. package/src/devices/technicdistancesensor.ts +4 -5
  356. package/src/devices/technicforcesensor.ts +3 -3
  357. package/src/devices/techniclargeangularmotor.ts +3 -3
  358. package/src/devices/techniclargelinearmotor.ts +3 -3
  359. package/src/devices/technicmediumangularmotor.ts +3 -3
  360. package/src/devices/technicmediumhubaccelerometersensor.ts +3 -3
  361. package/src/devices/technicmediumhubgyrosensor.ts +3 -3
  362. package/src/devices/technicmediumhubtiltsensor.ts +15 -27
  363. package/src/devices/technicsmallangularmotor.ts +3 -3
  364. package/src/devices/technicxlargelinearmotor.ts +3 -3
  365. package/src/devices/tiltsensor.ts +88 -8
  366. package/src/devices/trainmotor.ts +3 -3
  367. package/src/devices/voltagesensor.ts +3 -3
  368. package/src/hubs/basehub.ts +60 -51
  369. package/src/hubs/duplotrainbase.ts +5 -5
  370. package/src/hubs/hub.ts +5 -5
  371. package/src/hubs/lpf2hub.ts +16 -12
  372. package/src/hubs/mario.ts +5 -5
  373. package/src/hubs/movehub.ts +5 -5
  374. package/src/hubs/remotecontrol.ts +5 -5
  375. package/src/hubs/technicmediumhub.ts +5 -5
  376. package/src/hubs/technicsmallhub.ts +5 -5
  377. package/src/hubs/wedo2smarthub.ts +7 -9
  378. package/src/index-browser.ts +46 -46
  379. package/src/index-node.ts +47 -46
  380. package/src/interfaces.ts +2 -2
  381. package/src/nobleabstraction.ts +10 -10
  382. package/src/portoutputcommand.ts +37 -0
  383. package/src/portoutputsleep.ts +11 -0
  384. package/src/poweredup-browser.ts +15 -19
  385. package/src/poweredup-node.ts +15 -22
  386. package/src/utils.ts +15 -20
  387. package/src/webbleabstraction.ts +3 -3
  388. package/tsconfig.tsbuildinfo +1 -0
  389. package/typedoc.json +14 -0
  390. package/webpack.config.cjs +35 -0
  391. package/.jsdoc.json +0 -40
  392. package/abandonware-noble.d.ts +0 -129
  393. package/dist/browser/poweredup.js.LICENSE.txt +0 -8
  394. package/dist/node/color.js +0 -42
  395. package/dist/node/color.js.map +0 -1
  396. package/dist/node/consts.js.map +0 -1
  397. package/dist/node/devices/absolutemotor.js +0 -145
  398. package/dist/node/devices/absolutemotor.js.map +0 -1
  399. package/dist/node/devices/basicmotor.d.ts +0 -40
  400. package/dist/node/devices/basicmotor.js +0 -88
  401. package/dist/node/devices/basicmotor.js.map +0 -1
  402. package/dist/node/devices/colordistancesensor.js.map +0 -1
  403. package/dist/node/devices/currentsensor.js.map +0 -1
  404. package/dist/node/devices/device.js +0 -189
  405. package/dist/node/devices/device.js.map +0 -1
  406. package/dist/node/devices/duplotrainbasecolorsensor.js.map +0 -1
  407. package/dist/node/devices/duplotrainbasemotor.js +0 -39
  408. package/dist/node/devices/duplotrainbasemotor.js.map +0 -1
  409. package/dist/node/devices/duplotrainbasespeaker.d.ts +0 -28
  410. package/dist/node/devices/duplotrainbasespeaker.js +0 -67
  411. package/dist/node/devices/duplotrainbasespeaker.js.map +0 -1
  412. package/dist/node/devices/duplotrainbasespeedometer.js +0 -61
  413. package/dist/node/devices/duplotrainbasespeedometer.js.map +0 -1
  414. package/dist/node/devices/hubled.d.ts +0 -29
  415. package/dist/node/devices/hubled.js +0 -87
  416. package/dist/node/devices/hubled.js.map +0 -1
  417. package/dist/node/devices/light.js +0 -73
  418. package/dist/node/devices/light.js.map +0 -1
  419. package/dist/node/devices/marioaccelerometer.js +0 -77
  420. package/dist/node/devices/marioaccelerometer.js.map +0 -1
  421. package/dist/node/devices/mariobarcodesensor.js.map +0 -1
  422. package/dist/node/devices/mariopantssensor.js +0 -61
  423. package/dist/node/devices/mariopantssensor.js.map +0 -1
  424. package/dist/node/devices/mediumlinearmotor.js +0 -39
  425. package/dist/node/devices/mediumlinearmotor.js.map +0 -1
  426. package/dist/node/devices/motionsensor.js +0 -65
  427. package/dist/node/devices/motionsensor.js.map +0 -1
  428. package/dist/node/devices/movehubmediumlinearmotor.js +0 -39
  429. package/dist/node/devices/movehubmediumlinearmotor.js.map +0 -1
  430. package/dist/node/devices/movehubtiltsensor.js +0 -63
  431. package/dist/node/devices/movehubtiltsensor.js.map +0 -1
  432. package/dist/node/devices/piezobuzzer.d.ts +0 -17
  433. package/dist/node/devices/piezobuzzer.js +0 -55
  434. package/dist/node/devices/piezobuzzer.js.map +0 -1
  435. package/dist/node/devices/remotecontrolbutton.js +0 -67
  436. package/dist/node/devices/remotecontrolbutton.js.map +0 -1
  437. package/dist/node/devices/simplemediumlinearmotor.js +0 -39
  438. package/dist/node/devices/simplemediumlinearmotor.js.map +0 -1
  439. package/dist/node/devices/tachomotor.js +0 -194
  440. package/dist/node/devices/tachomotor.js.map +0 -1
  441. package/dist/node/devices/technic3x3colorlightmatrix.js +0 -81
  442. package/dist/node/devices/technic3x3colorlightmatrix.js.map +0 -1
  443. package/dist/node/devices/techniccolorsensor.js +0 -99
  444. package/dist/node/devices/techniccolorsensor.js.map +0 -1
  445. package/dist/node/devices/technicdistancesensor.js.map +0 -1
  446. package/dist/node/devices/technicforcesensor.js.map +0 -1
  447. package/dist/node/devices/techniclargeangularmotor.js +0 -39
  448. package/dist/node/devices/techniclargeangularmotor.js.map +0 -1
  449. package/dist/node/devices/techniclargelinearmotor.js +0 -39
  450. package/dist/node/devices/techniclargelinearmotor.js.map +0 -1
  451. package/dist/node/devices/technicmediumangularmotor.js +0 -39
  452. package/dist/node/devices/technicmediumangularmotor.js.map +0 -1
  453. package/dist/node/devices/technicmediumhubaccelerometersensor.js +0 -65
  454. package/dist/node/devices/technicmediumhubaccelerometersensor.js.map +0 -1
  455. package/dist/node/devices/technicmediumhubgyrosensor.js +0 -65
  456. package/dist/node/devices/technicmediumhubgyrosensor.js.map +0 -1
  457. package/dist/node/devices/technicmediumhubtiltsensor.d.ts +0 -41
  458. package/dist/node/devices/technicmediumhubtiltsensor.js +0 -133
  459. package/dist/node/devices/technicmediumhubtiltsensor.js.map +0 -1
  460. package/dist/node/devices/technicsmallangularmotor.js +0 -39
  461. package/dist/node/devices/technicsmallangularmotor.js.map +0 -1
  462. package/dist/node/devices/technicxlargelinearmotor.js +0 -39
  463. package/dist/node/devices/technicxlargelinearmotor.js.map +0 -1
  464. package/dist/node/devices/tiltsensor.js +0 -63
  465. package/dist/node/devices/tiltsensor.js.map +0 -1
  466. package/dist/node/devices/trainmotor.js +0 -39
  467. package/dist/node/devices/trainmotor.js.map +0 -1
  468. package/dist/node/devices/voltagesensor.js.map +0 -1
  469. package/dist/node/hubs/basehub.js.map +0 -1
  470. package/dist/node/hubs/duplotrainbase.js +0 -62
  471. package/dist/node/hubs/duplotrainbase.js.map +0 -1
  472. package/dist/node/hubs/hub.js +0 -71
  473. package/dist/node/hubs/hub.js.map +0 -1
  474. package/dist/node/hubs/lpf2hub.js.map +0 -1
  475. package/dist/node/hubs/mario.js +0 -58
  476. package/dist/node/hubs/mario.js.map +0 -1
  477. package/dist/node/hubs/movehub.js +0 -73
  478. package/dist/node/hubs/movehub.js.map +0 -1
  479. package/dist/node/hubs/remotecontrol.js +0 -64
  480. package/dist/node/hubs/remotecontrol.js.map +0 -1
  481. package/dist/node/hubs/technicmediumhub.js +0 -69
  482. package/dist/node/hubs/technicmediumhub.js.map +0 -1
  483. package/dist/node/hubs/technicsmallhub.js +0 -68
  484. package/dist/node/hubs/technicsmallhub.js.map +0 -1
  485. package/dist/node/hubs/wedo2smarthub.js.map +0 -1
  486. package/dist/node/index-browser.d.ts +0 -1
  487. package/dist/node/index-browser.js +0 -121
  488. package/dist/node/index-browser.js.map +0 -1
  489. package/dist/node/index-node.js +0 -120
  490. package/dist/node/index-node.js.map +0 -1
  491. package/dist/node/interfaces.js +0 -3
  492. package/dist/node/nobleabstraction.js.map +0 -1
  493. package/dist/node/poweredup-browser.js.map +0 -1
  494. package/dist/node/poweredup-node.js.map +0 -1
  495. package/dist/node/utils.js +0 -102
  496. package/dist/node/utils.js.map +0 -1
  497. package/dist/node/webbleabstraction.js.map +0 -1
  498. package/docs/AbsoluteMotor.html +0 -2008
  499. package/docs/BaseHub.html +0 -1391
  500. package/docs/BasicMotor.html +0 -1459
  501. package/docs/ColorDistanceSensor.html +0 -3025
  502. package/docs/CurrentSensor.html +0 -1022
  503. package/docs/Device.html +0 -841
  504. package/docs/DuploTrainBase.html +0 -2092
  505. package/docs/DuploTrainBaseColorSensor.html +0 -1509
  506. package/docs/DuploTrainBaseMotor.html +0 -1479
  507. package/docs/DuploTrainBaseSpeaker.html +0 -1193
  508. package/docs/DuploTraniBaseSpeedometer.html +0 -871
  509. package/docs/Hub.html +0 -7451
  510. package/docs/HubLED.html +0 -1239
  511. package/docs/LPF2Hub.html +0 -2066
  512. package/docs/Light.html +0 -1239
  513. package/docs/Mario.html +0 -2092
  514. package/docs/MarioAccelerometer.html +0 -1215
  515. package/docs/MarioBarcodeSensor.html +0 -1215
  516. package/docs/MarioPantsSensor.html +0 -1022
  517. package/docs/MediumLinearMotor.html +0 -1357
  518. package/docs/MotionSensor.html +0 -1022
  519. package/docs/MoveHub.html +0 -2092
  520. package/docs/MoveHubMediumLinearMotor.html +0 -1357
  521. package/docs/MoveHubTiltSensor.html +0 -1045
  522. package/docs/PiezoBuzzer.html +0 -1057
  523. package/docs/PoweredUP.html +0 -4371
  524. package/docs/RemoteControl.html +0 -2092
  525. package/docs/RemoteControlButton.html +0 -1022
  526. package/docs/SimpleMediumLinearMotor.html +0 -871
  527. package/docs/TachoMotor.html +0 -2620
  528. package/docs/Technic3x3ColorLightMatrix.html +0 -1037
  529. package/docs/TechnicColorSensor.html +0 -1525
  530. package/docs/TechnicDistanceSensor.html +0 -1401
  531. package/docs/TechnicForceSensor.html +0 -1316
  532. package/docs/TechnicLargeAngularMotor.html +0 -2028
  533. package/docs/TechnicLargeLinearMotor.html +0 -2028
  534. package/docs/TechnicMediumAngularMotor.html +0 -2028
  535. package/docs/TechnicMediumHub.html +0 -2092
  536. package/docs/TechnicMediumHubAccelerometerSensor.html +0 -1068
  537. package/docs/TechnicMediumHubGyroSensor.html +0 -1068
  538. package/docs/TechnicMediumHubTiltSensor.html +0 -1696
  539. package/docs/TechnicSmallAngularMotor.html +0 -2028
  540. package/docs/TechnicXLargeLinearMotor.html +0 -2028
  541. package/docs/TiltSensor.html +0 -1045
  542. package/docs/TrainMotor.html +0 -1479
  543. package/docs/VoltageSensor.html +0 -1022
  544. package/docs/WeDo2SmartHub.html +0 -1887
  545. package/docs/consts.js.html +0 -728
  546. package/docs/devices_absolutemotor.js.html +0 -195
  547. package/docs/devices_basicmotor.js.html +0 -138
  548. package/docs/devices_colordistancesensor.js.html +0 -361
  549. package/docs/devices_currentsensor.js.html +0 -132
  550. package/docs/devices_device.js.html +0 -239
  551. package/docs/devices_duplotrainbasecolorsensor.js.html +0 -154
  552. package/docs/devices_duplotrainbasemotor.js.html +0 -89
  553. package/docs/devices_duplotrainbasespeaker.js.html +0 -117
  554. package/docs/devices_duplotrainbasespeedometer.js.html +0 -111
  555. package/docs/devices_hubled.js.html +0 -137
  556. package/docs/devices_light.js.html +0 -123
  557. package/docs/devices_marioaccelerometer.js.html +0 -127
  558. package/docs/devices_mariobarcodesensor.js.html +0 -135
  559. package/docs/devices_mariopantssensor.js.html +0 -111
  560. package/docs/devices_mediumlinearmotor.js.html +0 -89
  561. package/docs/devices_motionsensor.js.html +0 -115
  562. package/docs/devices_movehubmediumlinearmotor.js.html +0 -89
  563. package/docs/devices_movehubtiltsensor.js.html +0 -113
  564. package/docs/devices_piezobuzzer.js.html +0 -105
  565. package/docs/devices_remotecontrolbutton.js.html +0 -117
  566. package/docs/devices_simplemediumlinearmotor.js.html +0 -89
  567. package/docs/devices_tachomotor.js.html +0 -244
  568. package/docs/devices_technic3x3colorlightmatrix.js.html +0 -131
  569. package/docs/devices_techniccolorsensor.js.html +0 -149
  570. package/docs/devices_technicdistancesensor.js.html +0 -135
  571. package/docs/devices_technicforcesensor.js.html +0 -135
  572. package/docs/devices_techniclargeangularmotor.js.html +0 -89
  573. package/docs/devices_techniclargelinearmotor.js.html +0 -89
  574. package/docs/devices_technicmediumangularmotor.js.html +0 -89
  575. package/docs/devices_technicmediumhubaccelerometersensor.js.html +0 -115
  576. package/docs/devices_technicmediumhubgyrosensor.js.html +0 -115
  577. package/docs/devices_technicmediumhubtiltsensor.js.html +0 -183
  578. package/docs/devices_technicsmallangularmotor.js.html +0 -89
  579. package/docs/devices_technicxlargelinearmotor.js.html +0 -89
  580. package/docs/devices_tiltsensor.js.html +0 -113
  581. package/docs/devices_trainmotor.js.html +0 -89
  582. package/docs/devices_voltagesensor.js.html +0 -136
  583. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  584. package/docs/fonts/OpenSans-Bold-webfont.svg +0 -1830
  585. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  586. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  587. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  588. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  589. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  590. package/docs/fonts/OpenSans-Italic-webfont.svg +0 -1830
  591. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  592. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  593. package/docs/fonts/OpenSans-Light-webfont.svg +0 -1831
  594. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  595. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  596. package/docs/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  597. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  598. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  599. package/docs/fonts/OpenSans-Regular-webfont.svg +0 -1831
  600. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  601. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  602. package/docs/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  603. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  604. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  605. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  606. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  607. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  608. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  609. package/docs/global.html +0 -3996
  610. package/docs/hubs_basehub.js.html +0 -469
  611. package/docs/hubs_duplotrainbase.js.html +0 -112
  612. package/docs/hubs_hub.js.html +0 -121
  613. package/docs/hubs_lpf2hub.js.html +0 -391
  614. package/docs/hubs_mario.js.html +0 -108
  615. package/docs/hubs_movehub.js.html +0 -123
  616. package/docs/hubs_remotecontrol.js.html +0 -114
  617. package/docs/hubs_technicmediumhub.js.html +0 -119
  618. package/docs/hubs_technicsmallhub.js.html +0 -118
  619. package/docs/hubs_wedo2smarthub.js.html +0 -265
  620. package/docs/icons/home.svg +0 -4
  621. package/docs/icons/search.svg +0 -4
  622. package/docs/poweredup-browser.js.html +0 -292
  623. package/docs/poweredup-node.js.html +0 -250
  624. package/docs/scripts/linenumber.js +0 -25
  625. package/docs/scripts/pagelocation.js +0 -89
  626. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
  627. package/docs/scripts/prettify/lang-css.js +0 -2
  628. package/docs/scripts/prettify/prettify.js +0 -28
  629. package/docs/styles/collapse.css +0 -27
  630. package/docs/styles/jsdoc-default.css +0 -358
  631. package/docs/styles/prettify-jsdoc.css +0 -111
  632. package/docs/styles/prettify-tomorrow.css +0 -132
  633. package/noble-mac.d.ts +0 -3
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class MarioBarcodeSensor
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class MarioPantsSensor
@@ -1,8 +1,8 @@
1
- import { TachoMotor } from "./tachomotor";
1
+ import { TachoMotor } from "./tachomotor.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class MediumLinearMotor
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class MotionSensor
@@ -1,8 +1,8 @@
1
- import { TachoMotor } from "./tachomotor";
1
+ import { TachoMotor } from "./tachomotor.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class MoveHubMediumLinearMotor
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class MoveHubTiltSensor
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class PiezoBuzzer
@@ -18,18 +18,17 @@ export class PiezoBuzzer extends Device {
18
18
 
19
19
  /**
20
20
  * Play a tone on the Hub's in-built buzzer
21
- * @method PiezoBuzzer#playTone
22
21
  * @param {number} frequency
23
22
  * @param {number} time How long the tone should play for (in milliseconds).
24
- * @returns {Promise} Resolved upon successful completion of command (ie. once the tone has finished playing).
23
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the tone has finished playing).
25
24
  */
26
25
  public playTone (frequency: number, time: number) {
27
- return new Promise((resolve) => {
26
+ return new Promise<Consts.CommandFeedback>((resolve) => {
28
27
  const data = Buffer.from([0x05, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00]);
29
28
  data.writeUInt16LE(frequency, 3);
30
29
  data.writeUInt16LE(time, 5);
31
30
  this.send(data, Consts.BLECharacteristic.WEDO2_MOTOR_VALUE_WRITE);
32
- global.setTimeout(resolve, time);
31
+ global.setTimeout(() => {return resolve(Consts.CommandFeedback.FEEDBACK_DISABLED)}, time);
33
32
  });
34
33
  }
35
34
 
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class RemoteControlButton
@@ -1,8 +1,8 @@
1
- import { BasicMotor } from "./basicmotor";
1
+ import { BasicMotor } from "./basicmotor.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class SimpleMediumLinearMotor
@@ -1,9 +1,9 @@
1
- import { BasicMotor } from "./basicmotor";
1
+ import { BasicMotor } from "./basicmotor.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
6
- import { mapSpeed } from "../utils";
5
+ import * as Consts from "../consts.js";
6
+ import { mapSpeed } from "../utils.js";
7
7
 
8
8
  /**
9
9
  * @class TachoMotor
@@ -42,7 +42,6 @@ export class TachoMotor extends BasicMotor {
42
42
  * Set the braking style of the motor.
43
43
  *
44
44
  * Note: This applies to setSpeed, rotateByDegrees, and gotoAngle.
45
- * @method TachoMotor#setBrakingStyle
46
45
  * @param {number} style Either BRAKE or HOLD
47
46
  */
48
47
  public setBrakingStyle (style: Consts.BrakingStyle) {
@@ -54,8 +53,7 @@ export class TachoMotor extends BasicMotor {
54
53
  * Set the max power of the motor.
55
54
  *
56
55
  * Note: This applies to setSpeed, rotateByDegrees, and gotoAngle.
57
- * @method TachoMotor#setMaxPower
58
- * @param {number} style Either BRAKE or HOLD
56
+ * @param {number} maxPower Maximum power level (0-100)
59
57
  */
60
58
  public setMaxPower (maxPower: number) {
61
59
  this._maxPower = maxPower;
@@ -64,102 +62,92 @@ export class TachoMotor extends BasicMotor {
64
62
 
65
63
  /**
66
64
  * Set the global acceleration time
67
- * @method TachoMotor#setAccelerationTime
68
65
  * @param {number} time How long acceleration should last (in milliseconds).
69
- * @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
66
+ * @param {number} profile 0 by default
67
+ * @param {boolean} [interrupt=false] If true, previous commands are discarded.
68
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
70
69
  */
71
- public setAccelerationTime (time: number, profile: number = 0x00) {
72
- const message = Buffer.from([0x81, this.portId, 0x11, 0x05, 0x00, 0x00, profile]);
73
- message.writeUInt16LE(time, 4);
74
- this.send(message);
70
+ public setAccelerationTime (time: number, profile: number = 0x00, interrupt: boolean = false) {
71
+ const message = Buffer.from([0x05, 0x00, 0x00, profile]);
72
+ message.writeUInt16LE(time, 1);
73
+ return this.sendPortOutputCommand(message, interrupt);
75
74
  }
76
75
 
77
76
 
78
77
  /**
79
78
  * Set the global deceleration time
80
- * @method TachoMotor#setDecelerationTime
81
79
  * @param {number} time How long deceleration should last (in milliseconds).
82
- * @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
80
+ * @param {number} profile 0 by default
81
+ * @param {boolean} [interrupt=false] If true, previous commands are discarded.
82
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
83
83
  */
84
- public setDecelerationTime (time: number, profile: number = 0x00) {
85
- const message = Buffer.from([0x81, this.portId, 0x11, 0x06, 0x00, 0x00, profile]);
86
- message.writeUInt16LE(time, 4);
87
- this.send(message);
84
+ public setDecelerationTime (time: number, profile: number = 0x00, interrupt: boolean = true) {
85
+ const message = Buffer.from([0x06, 0x00, 0x00, profile]);
86
+ message.writeUInt16LE(time, 1);
87
+ return this.sendPortOutputCommand(message, interrupt);
88
88
  }
89
89
 
90
90
 
91
91
  /**
92
92
  * Set the motor speed.
93
- * @method TachoMotor#setSpeed
94
93
  * @param {number} speed For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100. Stop is 0.
95
94
  * @param {number} time How long the motor should run for (in milliseconds).
96
- * @returns {Promise} Resolved upon successful issuance of the command.
95
+ * @param {boolean} [interrupt=false] If true, previous commands are discarded.
96
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
97
97
  */
98
- public setSpeed (speed: [number, number] | number, time: number | undefined) {
98
+ public setSpeed (speed: [number, number] | number, time: number | undefined, interrupt: boolean = false) {
99
99
  if (!this.isVirtualPort && speed instanceof Array) {
100
100
  throw new Error("Only virtual ports can accept multiple speeds");
101
101
  }
102
102
  if (this.isWeDo2SmartHub) {
103
103
  throw new Error("Motor speed is not available on the WeDo 2.0 Smart Hub");
104
104
  }
105
- this.cancelEventTimer();
106
- return new Promise<void>((resolve) => {
107
- if (speed === undefined || speed === null) {
108
- speed = 100;
105
+ if (speed === undefined || speed === null) {
106
+ speed = 100;
107
+ }
108
+ let message;
109
+ if (time !== undefined) {
110
+ if (speed instanceof Array) {
111
+ message = Buffer.from([0x0a, 0x00, 0x00, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this._brakeStyle, this.useProfile()]);
112
+ } else {
113
+ message = Buffer.from([0x09, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
109
114
  }
110
- let message;
111
- if (time !== undefined) {
112
- if (speed instanceof Array) {
113
- message = Buffer.from([0x81, this.portId, 0x11, 0x0a, 0x00, 0x00, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this._brakeStyle, this.useProfile()]);
114
- } else {
115
- message = Buffer.from([0x81, this.portId, 0x11, 0x09, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
116
- }
117
- message.writeUInt16LE(time, 4);
115
+ message.writeUInt16LE(time, 1);
116
+ } else {
117
+ if (speed instanceof Array) {
118
+ message = Buffer.from([0x08, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this.useProfile()]);
118
119
  } else {
119
- if (speed instanceof Array) {
120
- message = Buffer.from([0x81, this.portId, 0x11, 0x08, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this.useProfile()]);
121
- } else {
122
- message = Buffer.from([0x81, this.portId, 0x11, 0x07, mapSpeed(speed), this._maxPower, this.useProfile()]);
123
- }
120
+ message = Buffer.from([0x07, mapSpeed(speed), this._maxPower, this.useProfile()]);
124
121
  }
125
- this.send(message);
126
- this._finishedCallbacks.push(() => {
127
- return resolve();
128
- });
129
- });
122
+ }
123
+ return this.sendPortOutputCommand(message, interrupt);
130
124
  }
131
125
 
132
126
  /**
133
127
  * Rotate a motor by a given amount of degrees.
134
- * @method TachoMotor#rotateByDegrees
135
128
  * @param {number} degrees How much the motor should be rotated (in degrees).
136
129
  * @param {number} [speed=100] For forward, a value between 1 - 100 should be set. For reverse, a value between -1 to -100.
137
- * @returns {Promise} Resolved upon successful completion of command (ie. once the motor is finished).
130
+ * @param {boolean} [interrupt=false] If true, previous commands are discarded.
131
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of command (i.e. once the motor is finished).
138
132
  */
139
- public rotateByDegrees (degrees: number, speed: [number, number] | number) {
133
+ public rotateByDegrees (degrees: number, speed: [number, number] | number, interrupt: boolean = false) {
140
134
  if (!this.isVirtualPort && speed instanceof Array) {
141
135
  throw new Error("Only virtual ports can accept multiple speeds");
142
136
  }
143
137
  if (this.isWeDo2SmartHub) {
144
138
  throw new Error("Rotation is not available on the WeDo 2.0 Smart Hub");
145
139
  }
146
- this.cancelEventTimer();
147
- return new Promise<void>((resolve) => {
148
- if (speed === undefined || speed === null) {
149
- speed = 100;
150
- }
151
- let message;
152
- if (speed instanceof Array) {
153
- message = Buffer.from([0x81, this.portId, 0x11, 0x0c, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this._brakeStyle, this.useProfile()]);
154
- } else {
155
- message = Buffer.from([0x81, this.portId, 0x11, 0x0b, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
156
- }
157
- message.writeUInt32LE(degrees, 4);
158
- this.send(message);
159
- this._finishedCallbacks.push(() => {
160
- return resolve();
161
- });
162
- });
140
+ if (speed === undefined || speed === null) {
141
+ speed = 100;
142
+ }
143
+ let message;
144
+ if (speed instanceof Array) {
145
+ message = Buffer.from([0x0c, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed[0]), mapSpeed(speed[1]), this._maxPower, this._brakeStyle, this.useProfile()]);
146
+ } else {
147
+ message = Buffer.from([0x0b, 0x00, 0x00, 0x00, 0x00, mapSpeed(speed), this._maxPower, this._brakeStyle, this.useProfile()]);
148
+ }
149
+ message.writeUInt32LE(degrees, 1);
150
+ return this.sendPortOutputCommand(message, interrupt);
163
151
  }
164
152
 
165
153
 
@@ -1,10 +1,10 @@
1
- import { Color } from "../color";
1
+ import { Color } from "../color.js";
2
2
 
3
- import { Device } from "./device";
3
+ import { Device } from "./device.js";
4
4
 
5
- import { IDeviceInterface } from "../interfaces";
5
+ import { IDeviceInterface } from "../interfaces.js";
6
6
 
7
- import * as Consts from "../consts";
7
+ import * as Consts from "../consts.js";
8
8
 
9
9
  /**
10
10
  * @class Technic3x3ColorLightMatrix
@@ -20,37 +20,33 @@ export class Technic3x3ColorLightMatrix extends Device {
20
20
 
21
21
  /**
22
22
  * Set the LED matrix, one color per LED
23
- * @method Technic3x3ColorLightMatrix#setMatrix
24
23
  * @param {Color[] | Color} colors Array of 9 colors, 9 Color objects, or a single color
25
- * @returns {Promise} Resolved upon successful issuance of the command.
24
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of command.
26
25
  */
27
26
  public setMatrix (colors: number[] | number) {
28
- return new Promise<void>((resolve) => {
29
- this.subscribe(Mode.PIX_0);
30
- const colorArray = new Array(9);
31
- for (let i = 0; i < colorArray.length; i++) {
32
- if (typeof colors === 'number') {
33
- // @ts-ignore
34
- colorArray[i] = colors + (10 << 4);
35
- }
27
+ this.subscribe(Mode.PIX_0);
28
+ const colorArray = new Array(9);
29
+ for (let i = 0; i < colorArray.length; i++) {
30
+ if (typeof colors === 'number') {
36
31
  // @ts-ignore
37
- if (colors[i] instanceof Color) {
38
- // @ts-ignore
39
- colorArray[i] = colors[i].toValue();
40
- }
32
+ colorArray[i] = colors + (10 << 4);
33
+ }
34
+ // @ts-ignore
35
+ if (colors[i] instanceof Color) {
41
36
  // @ts-ignore
42
- if (colors[i] === Consts.Color.NONE) {
43
- colorArray[i] = Consts.Color.NONE;
44
- }
37
+ colorArray[i] = colors[i].toValue();
38
+ }
39
+ // @ts-ignore
40
+ if (colors[i] === Consts.Color.NONE) {
41
+ colorArray[i] = Consts.Color.NONE;
42
+ }
43
+ // @ts-ignore
44
+ if (colors[i] <= 10) {
45
45
  // @ts-ignore
46
- if (colors[i] <= 10) {
47
- // @ts-ignore
48
- colorArray[i] = colors[i] + (10 << 4); // If a raw color value, set it to max brightness (10)
49
- }
46
+ colorArray[i] = colors[i] + (10 << 4); // If a raw color value, set it to max brightness (10)
50
47
  }
51
- this.writeDirect(Mode.PIX_0, Buffer.from(colorArray));
52
- return resolve();
53
- });
48
+ }
49
+ return this.writeDirect(Mode.PIX_0, Buffer.from(colorArray));
54
50
  }
55
51
 
56
52
 
@@ -1,9 +1,9 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
6
- import { parseColor } from "../utils";
5
+ import * as Consts from "../consts.js";
6
+ import { parseColor } from "../utils.js";
7
7
 
8
8
  /**
9
9
  * @class TechnicColorSensor
@@ -17,9 +17,17 @@ export class TechnicColorSensor extends Device {
17
17
 
18
18
  public receive (message: Buffer) {
19
19
  const mode = this._mode;
20
+ let hue;
21
+ let saturation;
22
+ let value;
23
+ let intensity;
20
24
 
21
25
  switch (mode) {
22
26
  case Mode.COLOR:
27
+ if (message.length !== 5) {
28
+ // if mode of device has not changed to this._mode yet
29
+ break;
30
+ }
23
31
  if (message[4] <= 10) {
24
32
  const color = parseColor(message[4]);
25
33
 
@@ -33,9 +41,12 @@ export class TechnicColorSensor extends Device {
33
41
  }
34
42
  break;
35
43
 
36
- case Mode.REFLECTIVITY:
44
+ case Mode.REFLECT:
45
+ if (message.length !== 5) {
46
+ // if mode of device has not changed to this._mode yet
47
+ break;
48
+ }
37
49
  const reflect = message[4];
38
-
39
50
  /**
40
51
  * Emits when the light reflectivity changes.
41
52
  * @event TechnicColorSensor#reflect
@@ -45,9 +56,12 @@ export class TechnicColorSensor extends Device {
45
56
  this.notify("reflect", { reflect });
46
57
  break;
47
58
 
48
- case Mode.AMBIENT_LIGHT:
59
+ case Mode.AMBIENT:
60
+ if (message.length !== 5) {
61
+ // if mode of device has not changed to this._mode yet
62
+ break;
63
+ }
49
64
  const ambient = message[4];
50
-
51
65
  /**
52
66
  * Emits when the ambient light changes.
53
67
  * @event TechnicColorSensor#ambient
@@ -56,31 +70,108 @@ export class TechnicColorSensor extends Device {
56
70
  */
57
71
  this.notify("ambient", { ambient });
58
72
  break;
73
+
74
+ case Mode.RGB_I:
75
+ if (this.isWeDo2SmartHub) {
76
+ break;
77
+ }
78
+ if (message.length !== 12) {
79
+ // if mode of device has not changed to this._mode yet
80
+ break;
81
+ }
82
+ const red = message.readUInt16LE(4);
83
+ const green = message.readUInt16LE(6);
84
+ const blue = message.readUInt16LE(8);
85
+ intensity = message.readUInt16LE(10);
86
+ /**
87
+ * Emits when a color sensor is activated. Measured with light on.
88
+ * @event TechnicColorSensor#rgbIntensity
89
+ * @type {object}
90
+ * @param {number} red
91
+ * @param {number} green
92
+ * @param {number} blue
93
+ * @param {number} intensity
94
+ */
95
+ this.notify("rgbIntensity", { red, green, blue, intensity });
96
+ break;
97
+
98
+ case Mode.HSV:
99
+ if (this.isWeDo2SmartHub) {
100
+ break;
101
+ }
102
+ if (message.length !== 10) {
103
+ // if mode of device has not changed to this._mode yet
104
+ break;
105
+ }
106
+ hue = message.readUInt16LE(4);
107
+ saturation = message.readUInt16LE(6);
108
+ value = message.readUInt16LE(8);
109
+ /**
110
+ * Emits when a color sensor is activated. Measured with light on.
111
+ * @event TechnicColorSensor#hsvIntensity
112
+ * @type {object}
113
+ * @param {number} hue
114
+ * @param {number} saturation
115
+ * @param {number} value
116
+ */
117
+ this.notify("hsvIntensity", { hue, saturation, value });
118
+ break;
119
+
120
+ case Mode.SHSV:
121
+ if (this.isWeDo2SmartHub) {
122
+ break;
123
+ }
124
+ if (message.length !== 12) {
125
+ // if mode of device has not changed to this._mode yet
126
+ break;
127
+ }
128
+ hue = message.readUInt16LE(4);
129
+ saturation = message.readUInt16LE(6);
130
+ value = message.readUInt16LE(8);
131
+ intensity = message.readUInt16LE(10);
132
+ /**
133
+ * Emits when a color sensor is activated. Measured with light off.
134
+ * @event TechnicColorSensor#hsvAmbient
135
+ * @type {object}
136
+ * @param {number} hue
137
+ * @param {number} saturation
138
+ * @param {number} value
139
+ * @param {number} intensity
140
+ */
141
+ this.notify("hsvAmbient", { hue, saturation, value, intensity });
142
+ break;
59
143
  }
60
144
  }
61
145
 
62
146
  /**
63
147
  * Set the brightness (or turn on/off) of the lights around the sensor.
64
- * @method TechnicColorSensor#setBrightness
65
148
  * @param {number} firstSegment First light segment. 0-100 brightness.
66
149
  * @param {number} secondSegment Second light segment. 0-100 brightness.
67
150
  * @param {number} thirdSegment Third light segment. 0-100 brightness.
68
- * @returns {Promise} Resolved upon successful issuance of the command.
151
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of the command.
69
152
  */
70
153
  public setBrightness (firstSegment: number, secondSegment: number, thirdSegment: number) {
71
- this.writeDirect(0x03, Buffer.from([firstSegment, secondSegment, thirdSegment]));
154
+ this.subscribe(Mode.LIGHT); // other modes use different light setting
155
+ return this.writeDirect(Mode.LIGHT, Buffer.from([firstSegment, secondSegment, thirdSegment]));
72
156
  }
73
157
 
74
158
  }
75
159
 
76
160
  export enum Mode {
77
161
  COLOR = 0x00,
78
- REFLECTIVITY = 0x01,
79
- AMBIENT_LIGHT = 0x02
162
+ REFLECT = 0x01,
163
+ AMBIENT = 0x02,
164
+ LIGHT = 0x03,
165
+ RGB_I = 0x05,
166
+ HSV = 0x06,
167
+ SHSV = 0x07
80
168
  }
81
169
 
82
170
  export const ModeMap: {[event: string]: number} = {
83
171
  "color": Mode.COLOR,
84
- "reflect": Mode.REFLECTIVITY,
85
- "ambient": Mode.AMBIENT_LIGHT
172
+ "reflect": Mode.REFLECT,
173
+ "ambient": Mode.AMBIENT,
174
+ "rgbIntensity": Mode.RGB_I,
175
+ "hsvIntensity": Mode.HSV,
176
+ "hsvAmbient": Mode.SHSV
86
177
  };
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class TechnicDistanceSensor
@@ -46,12 +46,11 @@ export class TechnicDistanceSensor extends Device {
46
46
 
47
47
  /**
48
48
  * Set the brightness (or turn on/off) of the lights around the eyes.
49
- * @method TechnicDistanceSensor#setBrightness
50
49
  * @param {number} topLeft Top left quadrant (above left eye). 0-100 brightness.
51
50
  * @param {number} bottomLeft Bottom left quadrant (below left eye). 0-100 brightness.
52
51
  * @param {number} topRight Top right quadrant (above right eye). 0-100 brightness.
53
52
  * @param {number} bottomRight Bottom right quadrant (below right eye). 0-100 brightness.
54
- * @returns {Promise} Resolved upon successful issuance of the command.
53
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of the command.
55
54
  */
56
55
  public setBrightness (topLeft: number, bottomLeft: number, topRight: number, bottomRight: number) {
57
56
  this.writeDirect(0x05, Buffer.from([topLeft, topRight, bottomLeft, bottomRight]));
@@ -1,8 +1,8 @@
1
- import { Device } from "./device";
1
+ import { Device } from "./device.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class TechnicForceSensor
@@ -1,8 +1,8 @@
1
- import { AbsoluteMotor } from "./absolutemotor";
1
+ import { AbsoluteMotor } from "./absolutemotor.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class TechnicLargeAngularMotor
@@ -1,8 +1,8 @@
1
- import { AbsoluteMotor } from "./absolutemotor";
1
+ import { AbsoluteMotor } from "./absolutemotor.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class TechnicLargeLinearMotor
@@ -1,8 +1,8 @@
1
- import { AbsoluteMotor } from "./absolutemotor";
1
+ import { AbsoluteMotor } from "./absolutemotor.js";
2
2
 
3
- import { IDeviceInterface } from "../interfaces";
3
+ import { IDeviceInterface } from "../interfaces.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
7
  /**
8
8
  * @class TechnicMediumAngularMotor