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 TechnicMediumHubAccelerometerSensor
@@ -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 TechnicMediumHubGyroSensor
@@ -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 TechnicMediumHubTiltSensor
@@ -64,46 +64,34 @@ export class TechnicMediumHubTiltSensor extends Device {
64
64
 
65
65
  /**
66
66
  * Set the impact count value.
67
- * @method TechnicMediumHubTiltSensor#setImpactCount
68
- * @param {count} impact count between 0 and 2^32
69
- * @returns {Promise} Resolved upon successful issuance of the command.
67
+ * @param {number} count impact count between 0 and 2^32
68
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of the command.
70
69
  */
71
70
  public setImpactCount (count: number) {
72
- return new Promise<void>((resolve) => {
73
- const payload = Buffer.alloc(4);
74
- payload.writeUInt32LE(count % 2**32);
75
- // no need to subscribe, can be set in different mode
76
- this.writeDirect(0x01, payload);
77
- return resolve();
78
- });
71
+ const payload = Buffer.alloc(4);
72
+ payload.writeUInt32LE(count % 2**32);
73
+ // no need to subscribe, can be set in different mode
74
+ return this.writeDirect(0x01, payload);
79
75
  }
80
76
 
81
77
  /**
82
78
  * Set the impact threshold.
83
- * @method TechnicMediumHubTiltSensor#setImpactThreshold
84
- * @param {threshold} value between 1 and 127
85
- * @returns {Promise} Resolved upon successful issuance of the command.
79
+ * @param {number} threshold value between 1 and 127
80
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of the command.
86
81
  */
87
82
  public setImpactThreshold (threshold: number) {
88
83
  this._impactThreshold = threshold;
89
- return new Promise<void>((resolve) => {
90
- this.writeDirect(0x02, Buffer.from([this._impactThreshold, this._impactHoldoff]));
91
- return resolve();
92
- });
84
+ return this.writeDirect(0x02, Buffer.from([this._impactThreshold, this._impactHoldoff]));
93
85
  }
94
86
 
95
87
  /**
96
88
  * Set the impact holdoff time.
97
- * @method TechnicMediumHubTiltSensor#setImpactHoldoff
98
- * @param {holdoff} value between 1 and 127
99
- * @returns {Promise} Resolved upon successful issuance of the command.
89
+ * @param {number} holdoff value between 1 and 127
90
+ * @returns {Promise<CommandFeedback>} Resolved upon completion of the command.
100
91
  */
101
92
  public setImpactHoldoff (holdoff: number) {
102
93
  this._impactHoldoff = holdoff;
103
- return new Promise<void>((resolve) => {
104
- this.writeDirect(0x02, Buffer.from([this._impactThreshold, this._impactHoldoff]));
105
- return resolve();
106
- });
94
+ return this.writeDirect(0x02, Buffer.from([this._impactThreshold, this._impactHoldoff]));
107
95
  }
108
96
  }
109
97
 
@@ -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 TechnicSmallAngularMotor
@@ -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 TechnicXLargeLinearMotor
@@ -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 TiltSensor
@@ -16,11 +16,18 @@ export class TiltSensor extends Device {
16
16
 
17
17
  public receive (message: Buffer) {
18
18
  const mode = this._mode;
19
+ let x = 0;
20
+ let y = 0;
21
+ let z = 0;
19
22
 
20
23
  switch (mode) {
21
24
  case Mode.TILT:
22
- const x = message.readInt8(this.isWeDo2SmartHub ? 2 : 4);
23
- const y = message.readInt8(this.isWeDo2SmartHub ? 3 : 5);
25
+ if (message.length !== (this.isWeDo2SmartHub ? 4 : 6)) {
26
+ // if mode of device has not changed to this._mode yet
27
+ break;
28
+ }
29
+ x = message.readInt8(this.isWeDo2SmartHub ? 2 : 4);
30
+ y = message.readInt8(this.isWeDo2SmartHub ? 3 : 5);
24
31
  /**
25
32
  * Emits when a tilt sensor is activated.
26
33
  * @event TiltSensor#tilt
@@ -30,15 +37,88 @@ export class TiltSensor extends Device {
30
37
  */
31
38
  this.notify("tilt", { x, y });
32
39
  break;
40
+ case Mode.DIRECTION:
41
+ const dir = message.readInt8(this.isWeDo2SmartHub ? 2 : 4);
42
+ /**
43
+ * Emits when the tilt sensor direction changes.
44
+ * @event TiltSensor#direction
45
+ * @type {object}
46
+ * @param {TiltDirection} dir
47
+ */
48
+ this.notify("direction", { dir });
49
+ break;
50
+ case Mode.CRASH:
51
+ if (message.length !== (this.isWeDo2SmartHub ? 5 : 7)) {
52
+ // if mode of device has not changed to this._mode yet
53
+ break;
54
+ }
55
+ x = message.readUInt8(this.isWeDo2SmartHub ? 2 : 4);
56
+ y = message.readUInt8(this.isWeDo2SmartHub ? 3 : 5);
57
+ z = message.readUInt8(this.isWeDo2SmartHub ? 4 : 6);
58
+ /**
59
+ * Emits when proper acceleration is above threshold (e.g. on impact when being thrown to the ground).
60
+ * @event TiltSensor#impactCount
61
+ * @type {object}
62
+ * @param {number} x
63
+ * @param {number} y
64
+ * @param {number} z
65
+ */
66
+ this.notify("impactCount", { x, y, z });
67
+ break;
68
+ case Mode.CAL:
69
+ if (message.length !== (this.isWeDo2SmartHub ? 5 : 7)) {
70
+ // if mode of device has not changed to this._mode yet
71
+ break;
72
+ }
73
+ const ax = message.readInt8(this.isWeDo2SmartHub ? 2 : 4);
74
+ const ay = message.readInt8(this.isWeDo2SmartHub ? 3 : 5);
75
+ const az = message.readInt8(this.isWeDo2SmartHub ? 4 : 6);
76
+ const con = 1000/(45*Math.sqrt(2)); // convert to mG
77
+ x = con*ax;
78
+ y = con*ay;
79
+ z = con*az;
80
+ if(ax === 45) {
81
+ x = con*Math.sqrt(2*45**2 - ay**2 - az**2);
82
+ }
83
+ else if(ax === -45) {
84
+ x = -con*Math.sqrt(2*45**2 - ay**2 - az**2);
85
+ }
86
+ if(ay === 45) {
87
+ y = con*Math.sqrt(2*45**2 - ax**2 - az**2);
88
+ }
89
+ else if(ay === -45) {
90
+ y = -con*Math.sqrt(2*45**2 - ax**2 - az**2);
91
+ }
92
+ if(az === 45) {
93
+ z = con*Math.sqrt(2*45**2 - ax**2 - ay**2);
94
+ }
95
+ else if(az === -45) {
96
+ z = -con*Math.sqrt(2*45**2 - ax**2 - ay**2);
97
+ }
98
+ /**
99
+ * Emits when tilt sensor detects acceleration. Measured in mG.
100
+ * @event TiltSensor#accel
101
+ * @type {object}
102
+ * @param {number} x
103
+ * @param {number} y
104
+ * @param {number} z
105
+ */
106
+ this.notify("accel", { x, y, z });
107
+ break;
33
108
  }
34
109
  }
35
-
36
110
  }
37
111
 
38
112
  export enum Mode {
39
- TILT = 0x00
113
+ TILT = 0x00,
114
+ DIRECTION = 0x01,
115
+ CRASH = 0x02,
116
+ CAL = 0x03
40
117
  }
41
118
 
42
119
  export const ModeMap: {[event: string]: number} = {
43
- "tilt": Mode.TILT
120
+ "tilt": Mode.TILT,
121
+ "direction": Mode.DIRECTION,
122
+ "impactCount": Mode.CRASH,
123
+ "accel": Mode.CAL
44
124
  };
@@ -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 TrainMotor
@@ -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 VoltageSensor
@@ -1,47 +1,47 @@
1
1
  import { EventEmitter } from "events";
2
2
 
3
- import { IBLEAbstraction } from "../interfaces";
4
-
5
- import { ColorDistanceSensor } from "../devices/colordistancesensor";
6
- import { CurrentSensor } from "../devices/currentsensor";
7
- import { Device } from "../devices/device";
8
-
9
- import { DuploTrainBaseColorSensor } from "../devices/duplotrainbasecolorsensor";
10
- import { DuploTrainBaseMotor } from "../devices/duplotrainbasemotor";
11
- import { DuploTrainBaseSpeaker } from "../devices/duplotrainbasespeaker";
12
- import { DuploTrainBaseSpeedometer } from "../devices/duplotrainbasespeedometer";
13
-
14
- import { HubLED } from "../devices/hubled";
15
- import { Light } from "../devices/light";
16
- import { MarioAccelerometer } from "../devices/marioaccelerometer";
17
- import { MarioBarcodeSensor } from "../devices/mariobarcodesensor";
18
- import { MarioPantsSensor } from "../devices/mariopantssensor";
19
- import { MediumLinearMotor } from "../devices/mediumlinearmotor";
20
- import { MotionSensor } from "../devices/motionsensor";
21
- import { MoveHubMediumLinearMotor } from "../devices/movehubmediumlinearmotor";
22
- import { MoveHubTiltSensor } from "../devices/movehubtiltsensor";
23
- import { PiezoBuzzer } from "../devices/piezobuzzer";
24
- import { RemoteControlButton } from "../devices/remotecontrolbutton";
25
- import { SimpleMediumLinearMotor } from "../devices/simplemediumlinearmotor";
26
- import { TechnicColorSensor } from "../devices/techniccolorsensor";
27
- import { TechnicDistanceSensor } from "../devices/technicdistancesensor";
28
- import { TechnicForceSensor } from "../devices/technicforcesensor";
29
- import { TechnicLargeAngularMotor } from "../devices/techniclargeangularmotor";
30
- import { TechnicLargeLinearMotor } from "../devices/techniclargelinearmotor";
31
- import { TechnicSmallAngularMotor } from "../devices/technicsmallangularmotor";
32
- import { TechnicMediumAngularMotor } from "../devices/technicmediumangularmotor";
33
- import { TechnicMediumHubAccelerometerSensor } from "../devices/technicmediumhubaccelerometersensor";
34
- import { TechnicMediumHubGyroSensor } from "../devices/technicmediumhubgyrosensor";
35
- import { TechnicMediumHubTiltSensor } from "../devices/technicmediumhubtiltsensor";
36
- import { TechnicXLargeLinearMotor } from "../devices/technicxlargelinearmotor";
37
- import { TiltSensor } from "../devices/tiltsensor";
38
- import { TrainMotor } from "../devices/trainmotor";
39
- import { VoltageSensor } from "../devices/voltagesensor";
40
-
41
- import * as Consts from "../consts";
42
-
43
- import Debug = require("debug");
44
- import { Technic3x3ColorLightMatrix } from "../devices/technic3x3colorlightmatrix";
3
+ import { IBLEAbstraction } from "../interfaces.js";
4
+
5
+ import { ColorDistanceSensor } from "../devices/colordistancesensor.js";
6
+ import { CurrentSensor } from "../devices/currentsensor.js";
7
+ import { Device } from "../devices/device.js";
8
+
9
+ import { DuploTrainBaseColorSensor } from "../devices/duplotrainbasecolorsensor.js";
10
+ import { DuploTrainBaseMotor } from "../devices/duplotrainbasemotor.js";
11
+ import { DuploTrainBaseSpeaker } from "../devices/duplotrainbasespeaker.js";
12
+ import { DuploTrainBaseSpeedometer } from "../devices/duplotrainbasespeedometer.js";
13
+
14
+ import { HubLED } from "../devices/hubled.js";
15
+ import { Light } from "../devices/light.js";
16
+ import { MarioAccelerometer } from "../devices/marioaccelerometer.js";
17
+ import { MarioBarcodeSensor } from "../devices/mariobarcodesensor.js";
18
+ import { MarioPantsSensor } from "../devices/mariopantssensor.js";
19
+ import { MediumLinearMotor } from "../devices/mediumlinearmotor.js";
20
+ import { MotionSensor } from "../devices/motionsensor.js";
21
+ import { MoveHubMediumLinearMotor } from "../devices/movehubmediumlinearmotor.js";
22
+ import { MoveHubTiltSensor } from "../devices/movehubtiltsensor.js";
23
+ import { PiezoBuzzer } from "../devices/piezobuzzer.js";
24
+ import { RemoteControlButton } from "../devices/remotecontrolbutton.js";
25
+ import { SimpleMediumLinearMotor } from "../devices/simplemediumlinearmotor.js";
26
+ import { TechnicColorSensor } from "../devices/techniccolorsensor.js";
27
+ import { TechnicDistanceSensor } from "../devices/technicdistancesensor.js";
28
+ import { TechnicForceSensor } from "../devices/technicforcesensor.js";
29
+ import { TechnicLargeAngularMotor } from "../devices/techniclargeangularmotor.js";
30
+ import { TechnicLargeLinearMotor } from "../devices/techniclargelinearmotor.js";
31
+ import { TechnicSmallAngularMotor } from "../devices/technicsmallangularmotor.js";
32
+ import { TechnicMediumAngularMotor } from "../devices/technicmediumangularmotor.js";
33
+ import { TechnicMediumHubAccelerometerSensor } from "../devices/technicmediumhubaccelerometersensor.js";
34
+ import { TechnicMediumHubGyroSensor } from "../devices/technicmediumhubgyrosensor.js";
35
+ import { TechnicMediumHubTiltSensor } from "../devices/technicmediumhubtiltsensor.js";
36
+ import { TechnicXLargeLinearMotor } from "../devices/technicxlargelinearmotor.js";
37
+ import { TiltSensor } from "../devices/tiltsensor.js";
38
+ import { TrainMotor } from "../devices/trainmotor.js";
39
+ import { VoltageSensor } from "../devices/voltagesensor.js";
40
+
41
+ import * as Consts from "../consts.js";
42
+
43
+ import Debug from "debug";
44
+ import { Technic3x3ColorLightMatrix } from "../devices/technic3x3colorlightmatrix.js";
45
45
  const debug = Debug("basehub");
46
46
 
47
47
 
@@ -184,7 +184,6 @@ export class BaseHub extends EventEmitter {
184
184
 
185
185
  /**
186
186
  * Connect to the Hub.
187
- * @method Hub#connect
188
187
  * @returns {Promise} Resolved upon successful connect.
189
188
  */
190
189
  public connect () {
@@ -199,7 +198,6 @@ export class BaseHub extends EventEmitter {
199
198
 
200
199
  /**
201
200
  * Disconnect the Hub.
202
- * @method Hub#disconnect
203
201
  * @returns {Promise} Resolved upon successful disconnect.
204
202
  */
205
203
  public disconnect () {
@@ -209,7 +207,6 @@ export class BaseHub extends EventEmitter {
209
207
 
210
208
  /**
211
209
  * Retrieves the device attached to a given port.
212
- * @method Hub#getDeviceAtPort
213
210
  * @param {string} portName The name of the port to retrieve the device from.
214
211
  * @returns {Device | undefined} The device attached to the port.
215
212
  */
@@ -227,7 +224,6 @@ export class BaseHub extends EventEmitter {
227
224
  * Retrieves the device attached to a given port, waiting until one is attached if there isn't one.
228
225
  *
229
226
  * Note: If a device is never attached, the returned promise may never resolve.
230
- * @method Hub#waitForDeviceAtPort
231
227
  * @param {string} portName The name of the port to retrieve the device from.
232
228
  * @returns {Promise} Resolved once a device is attached, or resolved immediately if a device is already attached.
233
229
  */
@@ -251,7 +247,6 @@ export class BaseHub extends EventEmitter {
251
247
 
252
248
  /**
253
249
  * Retrieves all attached devices.
254
- * @method Hub#getDevices
255
250
  * @returns {Device[]} Array of all attached devices.
256
251
  */
257
252
  public getDevices () {
@@ -261,7 +256,6 @@ export class BaseHub extends EventEmitter {
261
256
 
262
257
  /**
263
258
  * Retrieves an array of devices of the specified type.
264
- * @method Hub#getDevicesByType
265
259
  * @param {number} deviceType The device type to lookup.
266
260
  * @returns {Device[]} Array of all devices of the specified type.
267
261
  */
@@ -274,7 +268,6 @@ export class BaseHub extends EventEmitter {
274
268
  * Retrieves the first device attached of the specified type, waiting until one is attached if there isn't one.
275
269
  *
276
270
  * Note: If a device is never attached, the returned promise may never resolve.
277
- * @method Hub#waitForDeviceByType
278
271
  * @param {number} deviceType The device type to lookup.
279
272
  * @returns {Promise} Resolved once a device is attached, or resolved immediately if a device is already attached.
280
273
  */
@@ -315,7 +308,6 @@ export class BaseHub extends EventEmitter {
315
308
  * Sleep a given amount of time.
316
309
  *
317
310
  * Note: This is a helper method to make it easier to add delays into a chain of commands.
318
- * @method Hub#sleep
319
311
  * @param {number} delay How long to sleep (in milliseconds).
320
312
  * @returns {Promise} Resolved after the delay is finished.
321
313
  */
@@ -330,7 +322,6 @@ export class BaseHub extends EventEmitter {
330
322
  * Wait until a given list of concurrently running commands are complete.
331
323
  *
332
324
  * Note: This is a helper method to make it easier to wait for concurrent commands to complete.
333
- * @method Hub#wait
334
325
  * @param {Array<Promise<any>>} commands Array of executing commands.
335
326
  * @returns {Promise} Resolved after the commands are finished.
336
327
  */
@@ -370,6 +361,24 @@ export class BaseHub extends EventEmitter {
370
361
  }
371
362
  }
372
363
 
364
+ public manuallyDetachDevice(portId: number) {
365
+ const device = this._attachedDevices[portId];
366
+ if (!device) {
367
+ debug(`No device attached to portId ${portId}, nothing to detach`);
368
+ return;
369
+ }
370
+ debug(`Detaching device type ${device.type} from portId ${portId}`);
371
+ this._detachDevice(device);
372
+ if (this.isPortVirtual(portId)) {
373
+ const portName = this.getPortNameForPortId(portId);
374
+ if (portName) {
375
+ delete this._portMap[portName];
376
+ }
377
+ this._virtualPorts = this._virtualPorts.filter((virtualPortId) => virtualPortId !== portId);
378
+ }
379
+ return device;
380
+ }
381
+
373
382
 
374
383
  protected _attachDevice (device: Device) {
375
384
  if (this._attachedDevices[device.portId] && this._attachedDevices[device.portId].type === device.type) {
@@ -1,11 +1,11 @@
1
- import { Peripheral } from "@abandonware/noble";
1
+ import { Peripheral } from "@stoprocent/noble";
2
2
 
3
- import { LPF2Hub } from "./lpf2hub";
3
+ import { LPF2Hub } from "./lpf2hub.js";
4
4
 
5
- import * as Consts from "../consts";
5
+ import * as Consts from "../consts.js";
6
6
 
7
- import Debug = require("debug");
8
- import { IBLEAbstraction } from "../interfaces";
7
+ import Debug from "debug";
8
+ import { IBLEAbstraction } from "../interfaces.js";
9
9
  const debug = Debug("duplotrainbase");
10
10
 
11
11
 
package/src/hubs/hub.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { Peripheral } from "@abandonware/noble";
1
+ import { Peripheral } from "@stoprocent/noble";
2
2
  import { compareVersions } from "compare-versions";
3
3
 
4
- import { IBLEAbstraction } from "../interfaces";
4
+ import { IBLEAbstraction } from "../interfaces.js";
5
5
 
6
- import { LPF2Hub } from "./lpf2hub";
6
+ import { LPF2Hub } from "./lpf2hub.js";
7
7
 
8
- import * as Consts from "../consts";
8
+ import * as Consts from "../consts.js";
9
9
 
10
- import Debug = require("debug");
10
+ import Debug from "debug";
11
11
  const debug = Debug("hub");
12
12
 
13
13
 
@@ -1,10 +1,10 @@
1
- import { BaseHub } from "./basehub";
1
+ import { BaseHub } from "./basehub.js";
2
2
 
3
- import * as Consts from "../consts";
3
+ import * as Consts from "../consts.js";
4
4
 
5
- import { decodeMACAddress, decodeVersion, toBin, toHex } from "../utils";
5
+ import { decodeMACAddress, decodeVersion, toBin, toHex } from "../utils.js";
6
6
 
7
- import Debug = require("debug");
7
+ import Debug from "debug";
8
8
  const debug = Debug("lpf2hub");
9
9
  const modeInfoDebug = Debug("lpf2hubmodeinfo");
10
10
 
@@ -38,7 +38,6 @@ export class LPF2Hub extends BaseHub {
38
38
 
39
39
  /**
40
40
  * Shutdown the Hub.
41
- * @method LPF2Hub#shutdown
42
41
  * @returns {Promise} Resolved upon successful disconnect.
43
42
  */
44
43
  public shutdown () {
@@ -48,7 +47,6 @@ export class LPF2Hub extends BaseHub {
48
47
 
49
48
  /**
50
49
  * Set the name of the Hub.
51
- * @method LPF2Hub#setName
52
50
  * @param {string} name New name of the hub (14 characters or less, ASCII only).
53
51
  * @returns {Promise} Resolved upon successful issuance of command.
54
52
  */
@@ -87,7 +85,6 @@ export class LPF2Hub extends BaseHub {
87
85
  * Combines two ports with into a single virtual port.
88
86
  *
89
87
  * Note: The devices attached to the ports must be of the same device type.
90
- * @method LPF2Hub#createVirtualPort
91
88
  * @param {string} firstPortName First port name
92
89
  * @param {string} secondPortName Second port name
93
90
  * @returns {Promise} Resolved upon successful issuance of command.
@@ -159,10 +156,14 @@ export class LPF2Hub extends BaseHub {
159
156
  this._parseSensorMessage(message);
160
157
  break;
161
158
  }
159
+ case Consts.MessageType.PORT_INPUT_FORMAT_SINGLE: {
160
+ this._parsePortInputFormatMessage(message);
161
+ break;
162
+ }
162
163
  case Consts.MessageType.PORT_OUTPUT_COMMAND_FEEDBACK: {
163
164
  this._parsePortAction(message);
164
165
  break;
165
- }
166
+ }
166
167
  }
167
168
 
168
169
  if (this._messageBuffer.length > 0) {
@@ -346,7 +347,6 @@ export class LPF2Hub extends BaseHub {
346
347
  }
347
348
  }
348
349
 
349
-
350
350
  private _parsePortAction (message: Buffer) {
351
351
  for (let offset = 3; offset < message.length; offset += 2) {
352
352
  const device = this._getDeviceByPortId(message[offset]);
@@ -357,17 +357,21 @@ export class LPF2Hub extends BaseHub {
357
357
  }
358
358
  }
359
359
 
360
-
361
360
  private _parseSensorMessage (message: Buffer) {
362
-
363
361
  const portId = message[3];
364
362
  const device = this._getDeviceByPortId(portId);
365
363
 
366
364
  if (device) {
367
365
  device.receive(message);
368
366
  }
369
-
370
367
  }
371
368
 
369
+ private _parsePortInputFormatMessage (message: Buffer) {
370
+ const portId = message[3];
371
+ const device = this._getDeviceByPortId(portId);
372
372
 
373
+ if (device) {
374
+ device.setMode(message[4]);
375
+ }
376
+ }
373
377
  }
package/src/hubs/mario.ts CHANGED
@@ -1,13 +1,13 @@
1
- import { Peripheral } from "@abandonware/noble";
1
+ import { Peripheral } from "@stoprocent/noble";
2
2
  import compareVersion from "compare-versions";
3
3
 
4
- import { IBLEAbstraction } from "../interfaces";
4
+ import { IBLEAbstraction } from "../interfaces.js";
5
5
 
6
- import { LPF2Hub } from "./lpf2hub";
6
+ import { LPF2Hub } from "./lpf2hub.js";
7
7
 
8
- import * as Consts from "../consts";
8
+ import * as Consts from "../consts.js";
9
9
 
10
- import Debug = require("debug");
10
+ import Debug from "debug";
11
11
  const debug = Debug("movehub");
12
12
 
13
13
 
@@ -1,13 +1,13 @@
1
- import { Peripheral } from "@abandonware/noble";
1
+ import { Peripheral } from "@stoprocent/noble";
2
2
  import { compareVersions } from "compare-versions";
3
3
 
4
- import { IBLEAbstraction } from "../interfaces";
4
+ import { IBLEAbstraction } from "../interfaces.js";
5
5
 
6
- import { LPF2Hub } from "./lpf2hub";
6
+ import { LPF2Hub } from "./lpf2hub.js";
7
7
 
8
- import * as Consts from "../consts";
8
+ import * as Consts from "../consts.js";
9
9
 
10
- import Debug = require("debug");
10
+ import Debug from "debug";
11
11
  const debug = Debug("movehub");
12
12
 
13
13
 
@@ -1,12 +1,12 @@
1
- import { Peripheral } from "@abandonware/noble";
1
+ import { Peripheral } from "@stoprocent/noble";
2
2
 
3
- import { IBLEAbstraction } from "../interfaces";
3
+ import { IBLEAbstraction } from "../interfaces.js";
4
4
 
5
- import { LPF2Hub } from "./lpf2hub";
5
+ import { LPF2Hub } from "./lpf2hub.js";
6
6
 
7
- import * as Consts from "../consts";
7
+ import * as Consts from "../consts.js";
8
8
 
9
- import Debug = require("debug");
9
+ import Debug from "debug";
10
10
  const debug = Debug("remotecontrol");
11
11
 
12
12
 
@@ -1,12 +1,12 @@
1
- import { Peripheral } from "@abandonware/noble";
1
+ import { Peripheral } from "@stoprocent/noble";
2
2
 
3
- import { IBLEAbstraction } from "../interfaces";
3
+ import { IBLEAbstraction } from "../interfaces.js";
4
4
 
5
- import { LPF2Hub } from "./lpf2hub";
5
+ import { LPF2Hub } from "./lpf2hub.js";
6
6
 
7
- import * as Consts from "../consts";
7
+ import * as Consts from "../consts.js";
8
8
 
9
- import Debug = require("debug");
9
+ import Debug from "debug";
10
10
  const debug = Debug("technicmediumhub");
11
11
 
12
12