node-poweredup 9.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (706) hide show
  1. package/README.md +6 -11
  2. package/dist/color.d.ts +7 -0
  3. package/dist/color.d.ts.map +1 -0
  4. package/dist/color.js +15 -0
  5. package/dist/color.js.map +1 -0
  6. package/dist/consts.d.ts +645 -0
  7. package/dist/consts.d.ts.map +1 -0
  8. package/{docs/consts.js.html → dist/consts.js} +74 -127
  9. package/dist/consts.js.map +1 -0
  10. package/dist/devices/absolutemotor.d.ts +41 -0
  11. package/dist/devices/absolutemotor.d.ts.map +1 -0
  12. package/dist/devices/absolutemotor.js +115 -0
  13. package/dist/devices/absolutemotor.js.map +1 -0
  14. package/dist/devices/basicmotor.d.ts +37 -0
  15. package/dist/devices/basicmotor.d.ts.map +1 -0
  16. package/dist/devices/basicmotor.js +57 -0
  17. package/dist/devices/basicmotor.js.map +1 -0
  18. package/dist/devices/colordistancesensor.d.ts +74 -0
  19. package/dist/devices/colordistancesensor.d.ts.map +1 -0
  20. package/dist/devices/colordistancesensor.js +278 -0
  21. package/dist/devices/colordistancesensor.js.map +1 -0
  22. package/dist/devices/currentsensor.d.ts +17 -0
  23. package/dist/devices/currentsensor.d.ts.map +1 -0
  24. package/dist/devices/currentsensor.js +55 -0
  25. package/dist/devices/currentsensor.js.map +1 -0
  26. package/dist/devices/device.d.ts +72 -0
  27. package/dist/devices/device.d.ts.map +1 -0
  28. package/dist/devices/device.js +162 -0
  29. package/dist/devices/device.js.map +1 -0
  30. package/dist/devices/duplotrainbasecolorsensor.d.ts +20 -0
  31. package/dist/devices/duplotrainbasecolorsensor.d.ts.map +1 -0
  32. package/dist/devices/duplotrainbasecolorsensor.js +77 -0
  33. package/dist/devices/duplotrainbasecolorsensor.js.map +1 -0
  34. package/dist/devices/duplotrainbasemotor.d.ts +10 -0
  35. package/dist/devices/duplotrainbasemotor.d.ts.map +1 -0
  36. package/dist/devices/duplotrainbasemotor.js +12 -0
  37. package/dist/devices/duplotrainbasemotor.js.map +1 -0
  38. package/dist/devices/duplotrainbasespeaker.d.ts +27 -0
  39. package/dist/devices/duplotrainbasespeaker.d.ts.map +1 -0
  40. package/dist/devices/duplotrainbasespeaker.js +38 -0
  41. package/dist/devices/duplotrainbasespeaker.js.map +1 -0
  42. package/dist/devices/duplotrainbasespeedometer.d.ts +17 -0
  43. package/dist/devices/duplotrainbasespeedometer.d.ts.map +1 -0
  44. package/dist/devices/duplotrainbasespeedometer.js +34 -0
  45. package/dist/devices/duplotrainbasespeedometer.js.map +1 -0
  46. package/dist/devices/hubled.d.ts +28 -0
  47. package/dist/devices/hubled.d.ts.map +1 -0
  48. package/dist/devices/hubled.js +58 -0
  49. package/dist/devices/hubled.js.map +1 -0
  50. package/dist/devices/light.d.ts +24 -0
  51. package/dist/devices/light.d.ts.map +1 -0
  52. package/dist/devices/light.js +44 -0
  53. package/dist/devices/light.js.map +1 -0
  54. package/dist/devices/marioaccelerometer.d.ts +18 -0
  55. package/dist/devices/marioaccelerometer.d.ts.map +1 -0
  56. package/dist/devices/marioaccelerometer.js +50 -0
  57. package/dist/devices/marioaccelerometer.js.map +1 -0
  58. package/dist/devices/mariobarcodesensor.d.ts +18 -0
  59. package/dist/devices/mariobarcodesensor.d.ts.map +1 -0
  60. package/dist/devices/mariobarcodesensor.js +58 -0
  61. package/dist/devices/mariobarcodesensor.js.map +1 -0
  62. package/dist/devices/mariopantssensor.d.ts +17 -0
  63. package/dist/devices/mariopantssensor.d.ts.map +1 -0
  64. package/dist/devices/mariopantssensor.js +34 -0
  65. package/dist/devices/mariopantssensor.js.map +1 -0
  66. package/dist/devices/mediumlinearmotor.d.ts +10 -0
  67. package/dist/devices/mediumlinearmotor.d.ts.map +1 -0
  68. package/dist/devices/mediumlinearmotor.js +12 -0
  69. package/dist/devices/mediumlinearmotor.js.map +1 -0
  70. package/dist/devices/motionsensor.d.ts +17 -0
  71. package/dist/devices/motionsensor.d.ts.map +1 -0
  72. package/dist/devices/motionsensor.js +38 -0
  73. package/dist/devices/motionsensor.js.map +1 -0
  74. package/dist/devices/movehubmediumlinearmotor.d.ts +10 -0
  75. package/dist/devices/movehubmediumlinearmotor.d.ts.map +1 -0
  76. package/dist/devices/movehubmediumlinearmotor.js +12 -0
  77. package/dist/devices/movehubmediumlinearmotor.js.map +1 -0
  78. package/dist/devices/movehubtiltsensor.d.ts +17 -0
  79. package/dist/devices/movehubtiltsensor.d.ts.map +1 -0
  80. package/dist/devices/movehubtiltsensor.js +36 -0
  81. package/dist/devices/movehubtiltsensor.js.map +1 -0
  82. package/dist/devices/piezobuzzer.d.ts +17 -0
  83. package/dist/devices/piezobuzzer.d.ts.map +1 -0
  84. package/dist/devices/piezobuzzer.js +27 -0
  85. package/dist/devices/piezobuzzer.js.map +1 -0
  86. package/dist/devices/remotecontrolbutton.d.ts +20 -0
  87. package/dist/devices/remotecontrolbutton.d.ts.map +1 -0
  88. package/dist/devices/remotecontrolbutton.js +40 -0
  89. package/dist/devices/remotecontrolbutton.js.map +1 -0
  90. package/dist/devices/simplemediumlinearmotor.d.ts +10 -0
  91. package/dist/devices/simplemediumlinearmotor.d.ts.map +1 -0
  92. package/dist/devices/simplemediumlinearmotor.js +12 -0
  93. package/dist/devices/simplemediumlinearmotor.js.map +1 -0
  94. package/dist/devices/tachomotor.d.ts +65 -0
  95. package/dist/devices/tachomotor.d.ts.map +1 -0
  96. package/dist/devices/tachomotor.js +161 -0
  97. package/dist/devices/tachomotor.js.map +1 -0
  98. package/dist/devices/technic3x3colorlightmatrix.d.ts +22 -0
  99. package/dist/devices/technic3x3colorlightmatrix.d.ts.map +1 -0
  100. package/dist/devices/technic3x3colorlightmatrix.js +53 -0
  101. package/dist/devices/technic3x3colorlightmatrix.js.map +1 -0
  102. package/dist/devices/techniccolorsensor.d.ts +27 -0
  103. package/dist/devices/techniccolorsensor.d.ts.map +1 -0
  104. package/dist/devices/techniccolorsensor.js +71 -0
  105. package/dist/devices/techniccolorsensor.js.map +1 -0
  106. package/dist/devices/technicdistancesensor.d.ts +27 -0
  107. package/dist/devices/technicdistancesensor.d.ts.map +1 -0
  108. package/dist/devices/technicdistancesensor.js +57 -0
  109. package/dist/devices/technicdistancesensor.js.map +1 -0
  110. package/dist/devices/technicforcesensor.d.ts +19 -0
  111. package/dist/devices/technicforcesensor.d.ts.map +1 -0
  112. package/dist/devices/technicforcesensor.js +58 -0
  113. package/dist/devices/technicforcesensor.js.map +1 -0
  114. package/dist/devices/techniclargeangularmotor.d.ts +13 -0
  115. package/dist/devices/techniclargeangularmotor.d.ts.map +1 -0
  116. package/dist/devices/techniclargeangularmotor.js +12 -0
  117. package/dist/devices/techniclargeangularmotor.js.map +1 -0
  118. package/dist/devices/techniclargelinearmotor.d.ts +10 -0
  119. package/dist/devices/techniclargelinearmotor.d.ts.map +1 -0
  120. package/dist/devices/techniclargelinearmotor.js +12 -0
  121. package/dist/devices/techniclargelinearmotor.js.map +1 -0
  122. package/dist/devices/technicmediumangularmotor.d.ts +13 -0
  123. package/dist/devices/technicmediumangularmotor.d.ts.map +1 -0
  124. package/dist/devices/technicmediumangularmotor.js +12 -0
  125. package/dist/devices/technicmediumangularmotor.js.map +1 -0
  126. package/dist/devices/technicmediumhubaccelerometersensor.d.ts +17 -0
  127. package/dist/devices/technicmediumhubaccelerometersensor.d.ts.map +1 -0
  128. package/dist/devices/technicmediumhubaccelerometersensor.js +38 -0
  129. package/dist/devices/technicmediumhubaccelerometersensor.js.map +1 -0
  130. package/dist/devices/technicmediumhubgyrosensor.d.ts +17 -0
  131. package/dist/devices/technicmediumhubgyrosensor.d.ts.map +1 -0
  132. package/dist/devices/technicmediumhubgyrosensor.js +38 -0
  133. package/dist/devices/technicmediumhubgyrosensor.js.map +1 -0
  134. package/dist/devices/technicmediumhubtiltsensor.d.ts +38 -0
  135. package/dist/devices/technicmediumhubtiltsensor.d.ts.map +1 -0
  136. package/dist/devices/technicmediumhubtiltsensor.js +103 -0
  137. package/dist/devices/technicmediumhubtiltsensor.js.map +1 -0
  138. package/dist/devices/technicsmallangularmotor.d.ts +13 -0
  139. package/dist/devices/technicsmallangularmotor.d.ts.map +1 -0
  140. package/dist/devices/technicsmallangularmotor.js +12 -0
  141. package/dist/devices/technicsmallangularmotor.js.map +1 -0
  142. package/dist/devices/technicxlargelinearmotor.d.ts +10 -0
  143. package/dist/devices/technicxlargelinearmotor.d.ts.map +1 -0
  144. package/dist/devices/technicxlargelinearmotor.js +12 -0
  145. package/dist/devices/technicxlargelinearmotor.js.map +1 -0
  146. package/dist/devices/tiltsensor.d.ts +17 -0
  147. package/dist/devices/tiltsensor.d.ts.map +1 -0
  148. package/dist/devices/tiltsensor.js +36 -0
  149. package/dist/devices/tiltsensor.js.map +1 -0
  150. package/dist/devices/trainmotor.d.ts +10 -0
  151. package/dist/devices/trainmotor.d.ts.map +1 -0
  152. package/dist/devices/trainmotor.js +12 -0
  153. package/dist/devices/trainmotor.js.map +1 -0
  154. package/dist/devices/voltagesensor.d.ts +17 -0
  155. package/dist/devices/voltagesensor.d.ts.map +1 -0
  156. package/dist/devices/voltagesensor.js +59 -0
  157. package/dist/devices/voltagesensor.js.map +1 -0
  158. package/dist/hubs/basehub.d.ts +154 -0
  159. package/dist/hubs/basehub.d.ts.map +1 -0
  160. package/dist/hubs/basehub.js +383 -0
  161. package/dist/hubs/basehub.js.map +1 -0
  162. package/dist/hubs/duplotrainbase.d.ts +18 -0
  163. package/dist/hubs/duplotrainbase.d.ts.map +1 -0
  164. package/dist/hubs/duplotrainbase.js +35 -0
  165. package/dist/hubs/duplotrainbase.js.map +1 -0
  166. package/dist/hubs/hub.d.ts +20 -0
  167. package/dist/hubs/hub.d.ts.map +1 -0
  168. package/dist/hubs/hub.js +44 -0
  169. package/dist/hubs/hub.js.map +1 -0
  170. package/dist/hubs/lpf2hub.d.ts +46 -0
  171. package/dist/hubs/lpf2hub.d.ts.map +1 -0
  172. package/{docs/hubs_lpf2hub.js.html → dist/hubs/lpf2hub.js} +23 -103
  173. package/dist/hubs/lpf2hub.js.map +1 -0
  174. package/dist/hubs/mario.d.ts +18 -0
  175. package/dist/hubs/mario.d.ts.map +1 -0
  176. package/dist/hubs/mario.js +31 -0
  177. package/dist/hubs/mario.js.map +1 -0
  178. package/dist/hubs/movehub.d.ts +19 -0
  179. package/dist/hubs/movehub.d.ts.map +1 -0
  180. package/dist/hubs/movehub.js +46 -0
  181. package/dist/hubs/movehub.js.map +1 -0
  182. package/dist/hubs/remotecontrol.d.ts +18 -0
  183. package/dist/hubs/remotecontrol.d.ts.map +1 -0
  184. package/dist/hubs/remotecontrol.js +37 -0
  185. package/dist/hubs/remotecontrol.js.map +1 -0
  186. package/dist/hubs/technicmediumhub.d.ts +18 -0
  187. package/dist/hubs/technicmediumhub.d.ts.map +1 -0
  188. package/dist/hubs/technicmediumhub.js +42 -0
  189. package/dist/hubs/technicmediumhub.js.map +1 -0
  190. package/dist/hubs/technicsmallhub.d.ts +19 -0
  191. package/dist/hubs/technicsmallhub.d.ts.map +1 -0
  192. package/dist/hubs/technicsmallhub.js +41 -0
  193. package/dist/hubs/technicsmallhub.js.map +1 -0
  194. package/dist/hubs/wedo2smarthub.d.ts +39 -0
  195. package/dist/hubs/wedo2smarthub.d.ts.map +1 -0
  196. package/dist/hubs/wedo2smarthub.js +186 -0
  197. package/dist/hubs/wedo2smarthub.js.map +1 -0
  198. package/dist/index-browser.d.ts +2 -0
  199. package/dist/index-browser.d.ts.map +1 -0
  200. package/dist/index-browser.js +96 -0
  201. package/dist/index-browser.js.map +1 -0
  202. package/dist/index-node.d.ts +50 -0
  203. package/dist/index-node.d.ts.map +1 -0
  204. package/dist/index-node.js +50 -0
  205. package/dist/index-node.js.map +1 -0
  206. package/dist/interfaces.d.ts +24 -0
  207. package/dist/interfaces.d.ts.map +1 -0
  208. package/dist/interfaces.js +2 -0
  209. package/dist/interfaces.js.map +1 -0
  210. package/dist/nobleabstraction.d.ts +27 -0
  211. package/dist/nobleabstraction.d.ts.map +1 -0
  212. package/dist/nobleabstraction.js +121 -0
  213. package/dist/nobleabstraction.js.map +1 -0
  214. package/dist/node/color.js +2 -29
  215. package/dist/node/color.js.map +1 -1
  216. package/dist/node/commands.d.ts +299 -0
  217. package/dist/node/commands.js +672 -0
  218. package/dist/node/commands.js.map +1 -0
  219. package/dist/node/connection.d.ts +187 -0
  220. package/dist/node/connection.js +478 -0
  221. package/dist/node/connection.js.map +1 -0
  222. package/dist/node/consts.js +57 -60
  223. package/dist/node/consts.js.map +1 -1
  224. package/dist/node/devices/absolutemotor.d.ts +0 -1
  225. package/dist/node/devices/absolutemotor.js +14 -41
  226. package/dist/node/devices/absolutemotor.js.map +1 -1
  227. package/dist/node/devices/basicmotor.d.ts +3 -3
  228. package/dist/node/devices/basicmotor.js +6 -33
  229. package/dist/node/devices/basicmotor.js.map +1 -1
  230. package/dist/node/devices/colordistancesensor.d.ts +4 -5
  231. package/dist/node/devices/colordistancesensor.js +11 -38
  232. package/dist/node/devices/colordistancesensor.js.map +1 -1
  233. package/dist/node/devices/currentsensor.d.ts +0 -1
  234. package/dist/node/devices/currentsensor.js +7 -34
  235. package/dist/node/devices/currentsensor.js.map +1 -1
  236. package/dist/node/devices/device.d.ts +4 -7
  237. package/dist/node/devices/device.js +3 -30
  238. package/dist/node/devices/device.js.map +1 -1
  239. package/dist/node/devices/duplotrainbasecolorsensor.d.ts +0 -1
  240. package/dist/node/devices/duplotrainbasecolorsensor.js +9 -36
  241. package/dist/node/devices/duplotrainbasecolorsensor.js.map +1 -1
  242. package/dist/node/devices/duplotrainbasemotor.js +3 -30
  243. package/dist/node/devices/duplotrainbasemotor.js.map +1 -1
  244. package/dist/node/devices/duplotrainbasespeaker.js +5 -32
  245. package/dist/node/devices/duplotrainbasespeaker.js.map +1 -1
  246. package/dist/node/devices/duplotrainbasespeedometer.d.ts +0 -1
  247. package/dist/node/devices/duplotrainbasespeedometer.js +7 -34
  248. package/dist/node/devices/duplotrainbasespeedometer.js.map +1 -1
  249. package/dist/node/devices/hubled.js +5 -32
  250. package/dist/node/devices/hubled.js.map +1 -1
  251. package/dist/node/devices/index.d.ts +14 -0
  252. package/dist/node/devices/index.js +154 -0
  253. package/dist/node/devices/index.js.map +1 -0
  254. package/dist/node/devices/led.d.ts +140 -0
  255. package/dist/node/devices/led.js +295 -0
  256. package/dist/node/devices/led.js.map +1 -0
  257. package/dist/node/devices/light.js +5 -32
  258. package/dist/node/devices/light.js.map +1 -1
  259. package/dist/node/devices/marioaccelerometer.d.ts +0 -1
  260. package/dist/node/devices/marioaccelerometer.js +7 -34
  261. package/dist/node/devices/marioaccelerometer.js.map +1 -1
  262. package/dist/node/devices/mariobarcodesensor.d.ts +0 -1
  263. package/dist/node/devices/mariobarcodesensor.js +7 -34
  264. package/dist/node/devices/mariobarcodesensor.js.map +1 -1
  265. package/dist/node/devices/mariopantssensor.d.ts +0 -1
  266. package/dist/node/devices/mariopantssensor.js +7 -34
  267. package/dist/node/devices/mariopantssensor.js.map +1 -1
  268. package/dist/node/devices/mediumlinearmotor.js +3 -30
  269. package/dist/node/devices/mediumlinearmotor.js.map +1 -1
  270. package/dist/node/devices/motionsensor.d.ts +0 -1
  271. package/dist/node/devices/motionsensor.js +7 -34
  272. package/dist/node/devices/motionsensor.js.map +1 -1
  273. package/dist/node/devices/motor.d.ts +182 -0
  274. package/dist/node/devices/motor.js +367 -0
  275. package/dist/node/devices/motor.js.map +1 -0
  276. package/dist/node/devices/movehubmediumlinearmotor.js +3 -30
  277. package/dist/node/devices/movehubmediumlinearmotor.js.map +1 -1
  278. package/dist/node/devices/movehubtiltsensor.d.ts +0 -1
  279. package/dist/node/devices/movehubtiltsensor.js +7 -34
  280. package/dist/node/devices/movehubtiltsensor.js.map +1 -1
  281. package/dist/node/devices/piezobuzzer.js +3 -30
  282. package/dist/node/devices/piezobuzzer.js.map +1 -1
  283. package/dist/node/devices/remotecontrolbutton.d.ts +0 -1
  284. package/dist/node/devices/remotecontrolbutton.js +8 -35
  285. package/dist/node/devices/remotecontrolbutton.js.map +1 -1
  286. package/dist/node/devices/sensor.d.ts +305 -0
  287. package/dist/node/devices/sensor.js +662 -0
  288. package/dist/node/devices/sensor.js.map +1 -0
  289. package/dist/node/devices/simplemediumlinearmotor.js +3 -30
  290. package/dist/node/devices/simplemediumlinearmotor.js.map +1 -1
  291. package/dist/node/devices/tachomotor.d.ts +0 -1
  292. package/dist/node/devices/tachomotor.js +14 -41
  293. package/dist/node/devices/tachomotor.js.map +1 -1
  294. package/dist/node/devices/technic3x3colorlightmatrix.js +7 -34
  295. package/dist/node/devices/technic3x3colorlightmatrix.js.map +1 -1
  296. package/dist/node/devices/techniccolorsensor.d.ts +0 -1
  297. package/dist/node/devices/techniccolorsensor.js +9 -36
  298. package/dist/node/devices/techniccolorsensor.js.map +1 -1
  299. package/dist/node/devices/technicdistancesensor.d.ts +0 -1
  300. package/dist/node/devices/technicdistancesensor.js +7 -34
  301. package/dist/node/devices/technicdistancesensor.js.map +1 -1
  302. package/dist/node/devices/technicforcesensor.d.ts +0 -1
  303. package/dist/node/devices/technicforcesensor.js +7 -34
  304. package/dist/node/devices/technicforcesensor.js.map +1 -1
  305. package/dist/node/devices/techniclargeangularmotor.js +3 -30
  306. package/dist/node/devices/techniclargeangularmotor.js.map +1 -1
  307. package/dist/node/devices/techniclargelinearmotor.js +3 -30
  308. package/dist/node/devices/techniclargelinearmotor.js.map +1 -1
  309. package/dist/node/devices/technicmediumangularmotor.js +3 -30
  310. package/dist/node/devices/technicmediumangularmotor.js.map +1 -1
  311. package/dist/node/devices/technicmediumhubaccelerometersensor.d.ts +0 -1
  312. package/dist/node/devices/technicmediumhubaccelerometersensor.js +7 -34
  313. package/dist/node/devices/technicmediumhubaccelerometersensor.js.map +1 -1
  314. package/dist/node/devices/technicmediumhubgyrosensor.d.ts +0 -1
  315. package/dist/node/devices/technicmediumhubgyrosensor.js +7 -34
  316. package/dist/node/devices/technicmediumhubgyrosensor.js.map +1 -1
  317. package/dist/node/devices/technicmediumhubtiltsensor.d.ts +0 -1
  318. package/dist/node/devices/technicmediumhubtiltsensor.js +7 -34
  319. package/dist/node/devices/technicmediumhubtiltsensor.js.map +1 -1
  320. package/dist/node/devices/technicsmallangularmotor.js +3 -30
  321. package/dist/node/devices/technicsmallangularmotor.js.map +1 -1
  322. package/dist/node/devices/technicxlargelinearmotor.js +3 -30
  323. package/dist/node/devices/technicxlargelinearmotor.js.map +1 -1
  324. package/dist/node/devices/tiltsensor.d.ts +0 -1
  325. package/dist/node/devices/tiltsensor.js +7 -34
  326. package/dist/node/devices/tiltsensor.js.map +1 -1
  327. package/dist/node/devices/trainmotor.js +3 -30
  328. package/dist/node/devices/trainmotor.js.map +1 -1
  329. package/dist/node/devices/voltagesensor.d.ts +0 -1
  330. package/dist/node/devices/voltagesensor.js +7 -34
  331. package/dist/node/devices/voltagesensor.js.map +1 -1
  332. package/dist/node/hub.d.ts +291 -0
  333. package/dist/node/hub.js +778 -0
  334. package/dist/node/hub.js.map +1 -0
  335. package/dist/node/hubs/basehub.d.ts +9 -11
  336. package/dist/node/hubs/basehub.js +74 -101
  337. package/dist/node/hubs/basehub.js.map +1 -1
  338. package/dist/node/hubs/duplotrainbase.d.ts +1 -2
  339. package/dist/node/hubs/duplotrainbase.js +6 -33
  340. package/dist/node/hubs/duplotrainbase.js.map +1 -1
  341. package/dist/node/hubs/hub.d.ts +1 -2
  342. package/dist/node/hubs/hub.js +8 -35
  343. package/dist/node/hubs/hub.js.map +1 -1
  344. package/dist/node/hubs/lpf2hub.d.ts +5 -6
  345. package/dist/node/hubs/lpf2hub.js +17 -44
  346. package/dist/node/hubs/lpf2hub.js.map +1 -1
  347. package/dist/node/hubs/mario.d.ts +1 -2
  348. package/dist/node/hubs/mario.js +6 -33
  349. package/dist/node/hubs/mario.js.map +1 -1
  350. package/dist/node/hubs/movehub.d.ts +1 -2
  351. package/dist/node/hubs/movehub.js +8 -35
  352. package/dist/node/hubs/movehub.js.map +1 -1
  353. package/dist/node/hubs/remotecontrol.d.ts +1 -2
  354. package/dist/node/hubs/remotecontrol.js +6 -33
  355. package/dist/node/hubs/remotecontrol.js.map +1 -1
  356. package/dist/node/hubs/technicmediumhub.d.ts +1 -2
  357. package/dist/node/hubs/technicmediumhub.js +6 -33
  358. package/dist/node/hubs/technicmediumhub.js.map +1 -1
  359. package/dist/node/hubs/technicsmallhub.d.ts +1 -2
  360. package/dist/node/hubs/technicsmallhub.js +6 -33
  361. package/dist/node/hubs/technicsmallhub.js.map +1 -1
  362. package/dist/node/hubs/wedo2smarthub.d.ts +3 -5
  363. package/dist/node/hubs/wedo2smarthub.js +10 -37
  364. package/dist/node/hubs/wedo2smarthub.js.map +1 -1
  365. package/dist/node/index-browser.js +91 -116
  366. package/dist/node/index-browser.js.map +1 -1
  367. package/dist/node/index-node.d.ts +1 -0
  368. package/dist/node/index-node.js +49 -119
  369. package/dist/node/index-node.js.map +1 -1
  370. package/dist/node/index.d.ts +31 -0
  371. package/dist/node/index.js +93 -0
  372. package/dist/node/index.js.map +1 -0
  373. package/dist/node/index.mjs +0 -0
  374. package/dist/node/interfaces.d.ts +1 -3
  375. package/dist/node/interfaces.js +1 -2
  376. package/dist/node/nobleabstraction.d.ts +0 -2
  377. package/dist/node/nobleabstraction.js +5 -7
  378. package/dist/node/nobleabstraction.js.map +1 -1
  379. package/dist/node/poweredup-browser.d.ts +0 -2
  380. package/dist/node/poweredup-browser.js +23 -49
  381. package/dist/node/poweredup-browser.js.map +1 -1
  382. package/dist/node/poweredup-node.d.ts +0 -2
  383. package/dist/node/poweredup-node.js +31 -58
  384. package/dist/node/poweredup-node.js.map +1 -1
  385. package/dist/node/poweredup.d.ts +83 -0
  386. package/dist/node/poweredup.js +542 -0
  387. package/dist/node/poweredup.js.map +1 -0
  388. package/dist/node/protocol-wedo.d.ts +158 -0
  389. package/dist/node/protocol-wedo.js +342 -0
  390. package/dist/node/protocol-wedo.js.map +1 -0
  391. package/dist/node/protocol.d.ts +340 -0
  392. package/dist/node/protocol.js +730 -0
  393. package/dist/node/protocol.js.map +1 -0
  394. package/dist/node/types.d.ts +408 -0
  395. package/dist/node/types.js +291 -0
  396. package/dist/node/types.js.map +1 -0
  397. package/dist/node/utils.d.ts +1 -2
  398. package/dist/node/utils.js +14 -26
  399. package/dist/node/utils.js.map +1 -1
  400. package/dist/node/webbleabstraction.d.ts +1 -3
  401. package/dist/node/webbleabstraction.js +3 -7
  402. package/dist/node/webbleabstraction.js.map +1 -1
  403. package/dist/poweredup-browser.d.ts +46 -0
  404. package/dist/poweredup-browser.d.ts.map +1 -0
  405. package/dist/poweredup-browser.js +210 -0
  406. package/dist/poweredup-browser.js.map +1 -0
  407. package/dist/poweredup-node.d.ts +49 -0
  408. package/dist/poweredup-node.d.ts.map +1 -0
  409. package/dist/poweredup-node.js +166 -0
  410. package/dist/poweredup-node.js.map +1 -0
  411. package/dist/tsconfig.tsbuildinfo +1 -0
  412. package/dist/utils.d.ts +13 -0
  413. package/dist/utils.d.ts.map +1 -0
  414. package/dist/utils.js +90 -0
  415. package/dist/utils.js.map +1 -0
  416. package/dist/webbleabstraction.d.ts +27 -0
  417. package/dist/webbleabstraction.d.ts.map +1 -0
  418. package/dist/webbleabstraction.js +104 -0
  419. package/dist/webbleabstraction.js.map +1 -0
  420. package/docs/.nojekyll +1 -0
  421. package/docs/assets/hierarchy.js +1 -0
  422. package/docs/assets/highlight.css +99 -0
  423. package/docs/assets/icons.js +18 -0
  424. package/docs/assets/icons.svg +1 -0
  425. package/docs/assets/main.js +60 -0
  426. package/docs/assets/navigation.js +1 -0
  427. package/docs/assets/search.js +1 -0
  428. package/docs/assets/style.css +1633 -0
  429. package/docs/classes/AbsoluteMotor.html +242 -0
  430. package/docs/classes/BaseHub.html +220 -0
  431. package/docs/classes/BasicMotor.html +201 -0
  432. package/docs/classes/Color.html +3 -0
  433. package/docs/classes/ColorDistanceSensor.html +214 -0
  434. package/docs/classes/CurrentSensor.html +185 -0
  435. package/docs/classes/Device.html +185 -0
  436. package/docs/classes/DuploTrainBase.html +233 -0
  437. package/docs/classes/DuploTrainBaseColorSensor.html +185 -0
  438. package/docs/classes/DuploTrainBaseMotor.html +201 -0
  439. package/docs/classes/DuploTrainBaseSpeaker.html +191 -0
  440. package/docs/classes/DuploTrainBaseSpeedometer.html +185 -0
  441. package/docs/classes/Hub.html +233 -0
  442. package/docs/classes/HubLED.html +191 -0
  443. package/docs/classes/Light.html +195 -0
  444. package/docs/classes/Mario.html +233 -0
  445. package/docs/classes/MediumLinearMotor.html +229 -0
  446. package/docs/classes/MotionSensor.html +185 -0
  447. package/docs/classes/MoveHub.html +233 -0
  448. package/docs/classes/MoveHubMediumLinearMotor.html +229 -0
  449. package/docs/classes/MoveHubTiltSensor.html +185 -0
  450. package/docs/classes/PiezoBuzzer.html +189 -0
  451. package/docs/classes/PoweredUP.html +180 -0
  452. package/docs/classes/RemoteControl.html +233 -0
  453. package/docs/classes/RemoteControlButton.html +185 -0
  454. package/docs/classes/SimpleMediumLinearMotor.html +201 -0
  455. package/docs/classes/TachoMotor.html +229 -0
  456. package/docs/classes/Technic3x3ColorLightMatrix.html +189 -0
  457. package/docs/classes/TechnicColorSensor.html +191 -0
  458. package/docs/classes/TechnicDistanceSensor.html +192 -0
  459. package/docs/classes/TechnicForceSensor.html +185 -0
  460. package/docs/classes/TechnicLargeAngularMotor.html +242 -0
  461. package/docs/classes/TechnicLargeLinearMotor.html +242 -0
  462. package/docs/classes/TechnicMediumAngularMotor.html +242 -0
  463. package/docs/classes/TechnicMediumHub.html +233 -0
  464. package/docs/classes/TechnicMediumHubAccelerometerSensor.html +185 -0
  465. package/docs/classes/TechnicMediumHubGyroSensor.html +185 -0
  466. package/docs/classes/TechnicMediumHubTiltSensor.html +197 -0
  467. package/docs/classes/TechnicSmallAngularMotor.html +242 -0
  468. package/docs/classes/TechnicXLargeLinearMotor.html +242 -0
  469. package/docs/classes/TiltSensor.html +185 -0
  470. package/docs/classes/TrainMotor.html +201 -0
  471. package/docs/classes/VoltageSensor.html +185 -0
  472. package/docs/classes/WeDo2SmartHub.html +229 -0
  473. package/docs/enums/ActionType.html +22 -0
  474. package/docs/enums/AlertOperation.html +10 -0
  475. package/docs/enums/AlertPayload.html +6 -0
  476. package/docs/enums/AlertType.html +10 -0
  477. package/docs/enums/BLECharacteristic.html +15 -0
  478. package/docs/enums/BLEManufacturerData.html +8 -0
  479. package/docs/enums/BLEService.html +7 -0
  480. package/docs/enums/BrakingStyle.html +7 -0
  481. package/docs/enums/ButtonState.html +11 -0
  482. package/docs/enums/Consts.Color.html +25 -0
  483. package/docs/enums/DeviceType.html +79 -0
  484. package/docs/enums/DuploTrainBaseSound.html +11 -0
  485. package/docs/enums/ErrorCode.html +18 -0
  486. package/docs/enums/Event.html +8 -0
  487. package/docs/enums/HWNetWorkCommandType.html +28 -0
  488. package/docs/enums/HWNetworkFamily.html +20 -0
  489. package/docs/enums/HWNetworkSubFamily.html +16 -0
  490. package/docs/enums/HubPropertyOperation.html +14 -0
  491. package/docs/enums/HubPropertyPayload.html +32 -0
  492. package/docs/enums/HubPropertyReference.html +32 -0
  493. package/docs/enums/HubType.html +19 -0
  494. package/docs/enums/IOTypeID.html +30 -0
  495. package/docs/enums/MarioColor.html +17 -0
  496. package/docs/enums/MarioPantsType.html +13 -0
  497. package/docs/enums/MessageType.html +48 -0
  498. package/docs/enums/ModeInformationType.html +22 -0
  499. package/docs/enums/PortInputFormatSetupSubCommand.html +14 -0
  500. package/docs/hierarchy.html +1 -0
  501. package/docs/index.html +18 -120
  502. package/docs/modules/Consts.html +1 -0
  503. package/docs/modules.html +1 -0
  504. package/docs/variables/ColorNames.html +1 -0
  505. package/docs/variables/DeviceTypeNames.html +1 -0
  506. package/docs/variables/HubTypeNames.html +1 -0
  507. package/docs/variables/isWebBluetooth.html +1 -0
  508. package/package.json +19 -25
  509. package/src/color.ts +1 -1
  510. package/src/consts.ts +16 -16
  511. package/src/devices/absolutemotor.ts +4 -7
  512. package/src/devices/basicmotor.ts +4 -8
  513. package/src/devices/colordistancesensor.ts +8 -14
  514. package/src/devices/currentsensor.ts +3 -3
  515. package/src/devices/device.ts +2 -2
  516. package/src/devices/duplotrainbasecolorsensor.ts +4 -4
  517. package/src/devices/duplotrainbasemotor.ts +3 -3
  518. package/src/devices/duplotrainbasespeaker.ts +3 -5
  519. package/src/devices/duplotrainbasespeedometer.ts +3 -3
  520. package/src/devices/hubled.ts +3 -5
  521. package/src/devices/light.ts +4 -6
  522. package/src/devices/marioaccelerometer.ts +3 -3
  523. package/src/devices/mariobarcodesensor.ts +3 -3
  524. package/src/devices/mariopantssensor.ts +3 -3
  525. package/src/devices/mediumlinearmotor.ts +3 -3
  526. package/src/devices/motionsensor.ts +3 -3
  527. package/src/devices/movehubmediumlinearmotor.ts +3 -3
  528. package/src/devices/movehubtiltsensor.ts +3 -3
  529. package/src/devices/piezobuzzer.ts +3 -4
  530. package/src/devices/remotecontrolbutton.ts +3 -3
  531. package/src/devices/simplemediumlinearmotor.ts +3 -3
  532. package/src/devices/tachomotor.ts +5 -11
  533. package/src/devices/technic3x3colorlightmatrix.ts +4 -5
  534. package/src/devices/techniccolorsensor.ts +4 -5
  535. package/src/devices/technicdistancesensor.ts +3 -4
  536. package/src/devices/technicforcesensor.ts +3 -3
  537. package/src/devices/techniclargeangularmotor.ts +3 -3
  538. package/src/devices/techniclargelinearmotor.ts +3 -3
  539. package/src/devices/technicmediumangularmotor.ts +3 -3
  540. package/src/devices/technicmediumhubaccelerometersensor.ts +3 -3
  541. package/src/devices/technicmediumhubgyrosensor.ts +3 -3
  542. package/src/devices/technicmediumhubtiltsensor.ts +6 -9
  543. package/src/devices/technicsmallangularmotor.ts +3 -3
  544. package/src/devices/technicxlargelinearmotor.ts +3 -3
  545. package/src/devices/tiltsensor.ts +3 -3
  546. package/src/devices/trainmotor.ts +3 -3
  547. package/src/devices/voltagesensor.ts +3 -3
  548. package/src/hubs/basehub.ts +42 -51
  549. package/src/hubs/duplotrainbase.ts +5 -5
  550. package/src/hubs/hub.ts +5 -5
  551. package/src/hubs/lpf2hub.ts +4 -7
  552. package/src/hubs/mario.ts +5 -5
  553. package/src/hubs/movehub.ts +5 -5
  554. package/src/hubs/remotecontrol.ts +5 -5
  555. package/src/hubs/technicmediumhub.ts +5 -5
  556. package/src/hubs/technicsmallhub.ts +5 -5
  557. package/src/hubs/wedo2smarthub.ts +7 -9
  558. package/src/index-browser.ts +46 -46
  559. package/src/index-node.ts +47 -46
  560. package/src/interfaces.ts +2 -2
  561. package/src/nobleabstraction.ts +10 -10
  562. package/src/poweredup-browser.ts +15 -19
  563. package/src/poweredup-node.ts +15 -22
  564. package/src/utils.ts +1 -1
  565. package/src/webbleabstraction.ts +3 -3
  566. package/tsconfig.tsbuildinfo +1 -0
  567. package/typedoc.json +14 -0
  568. package/.jsdoc.json +0 -40
  569. package/abandonware-noble.d.ts +0 -129
  570. package/dist/browser/poweredup.js +0 -3
  571. package/dist/browser/poweredup.js.LICENSE.txt +0 -8
  572. package/dist/browser/poweredup.js.map +0 -1
  573. package/docs/AbsoluteMotor.html +0 -2008
  574. package/docs/BaseHub.html +0 -1391
  575. package/docs/BasicMotor.html +0 -1459
  576. package/docs/ColorDistanceSensor.html +0 -3025
  577. package/docs/CurrentSensor.html +0 -1022
  578. package/docs/Device.html +0 -841
  579. package/docs/DuploTrainBase.html +0 -2092
  580. package/docs/DuploTrainBaseColorSensor.html +0 -1509
  581. package/docs/DuploTrainBaseMotor.html +0 -1479
  582. package/docs/DuploTrainBaseSpeaker.html +0 -1193
  583. package/docs/DuploTraniBaseSpeedometer.html +0 -871
  584. package/docs/Hub.html +0 -7451
  585. package/docs/HubLED.html +0 -1239
  586. package/docs/LPF2Hub.html +0 -2066
  587. package/docs/Light.html +0 -1239
  588. package/docs/Mario.html +0 -2092
  589. package/docs/MarioAccelerometer.html +0 -1215
  590. package/docs/MarioBarcodeSensor.html +0 -1215
  591. package/docs/MarioPantsSensor.html +0 -1022
  592. package/docs/MediumLinearMotor.html +0 -1357
  593. package/docs/MotionSensor.html +0 -1022
  594. package/docs/MoveHub.html +0 -2092
  595. package/docs/MoveHubMediumLinearMotor.html +0 -1357
  596. package/docs/MoveHubTiltSensor.html +0 -1045
  597. package/docs/PiezoBuzzer.html +0 -1057
  598. package/docs/PoweredUP.html +0 -4371
  599. package/docs/RemoteControl.html +0 -2092
  600. package/docs/RemoteControlButton.html +0 -1022
  601. package/docs/SimpleMediumLinearMotor.html +0 -871
  602. package/docs/TachoMotor.html +0 -2620
  603. package/docs/Technic3x3ColorLightMatrix.html +0 -1037
  604. package/docs/TechnicColorSensor.html +0 -1525
  605. package/docs/TechnicDistanceSensor.html +0 -1401
  606. package/docs/TechnicForceSensor.html +0 -1316
  607. package/docs/TechnicLargeAngularMotor.html +0 -2028
  608. package/docs/TechnicLargeLinearMotor.html +0 -2028
  609. package/docs/TechnicMediumAngularMotor.html +0 -2028
  610. package/docs/TechnicMediumHub.html +0 -2092
  611. package/docs/TechnicMediumHubAccelerometerSensor.html +0 -1068
  612. package/docs/TechnicMediumHubGyroSensor.html +0 -1068
  613. package/docs/TechnicMediumHubTiltSensor.html +0 -1696
  614. package/docs/TechnicSmallAngularMotor.html +0 -2028
  615. package/docs/TechnicXLargeLinearMotor.html +0 -2028
  616. package/docs/TiltSensor.html +0 -1045
  617. package/docs/TrainMotor.html +0 -1479
  618. package/docs/VoltageSensor.html +0 -1022
  619. package/docs/WeDo2SmartHub.html +0 -1887
  620. package/docs/devices_absolutemotor.js.html +0 -195
  621. package/docs/devices_basicmotor.js.html +0 -138
  622. package/docs/devices_colordistancesensor.js.html +0 -361
  623. package/docs/devices_currentsensor.js.html +0 -132
  624. package/docs/devices_device.js.html +0 -239
  625. package/docs/devices_duplotrainbasecolorsensor.js.html +0 -154
  626. package/docs/devices_duplotrainbasemotor.js.html +0 -89
  627. package/docs/devices_duplotrainbasespeaker.js.html +0 -117
  628. package/docs/devices_duplotrainbasespeedometer.js.html +0 -111
  629. package/docs/devices_hubled.js.html +0 -137
  630. package/docs/devices_light.js.html +0 -123
  631. package/docs/devices_marioaccelerometer.js.html +0 -127
  632. package/docs/devices_mariobarcodesensor.js.html +0 -135
  633. package/docs/devices_mariopantssensor.js.html +0 -111
  634. package/docs/devices_mediumlinearmotor.js.html +0 -89
  635. package/docs/devices_motionsensor.js.html +0 -115
  636. package/docs/devices_movehubmediumlinearmotor.js.html +0 -89
  637. package/docs/devices_movehubtiltsensor.js.html +0 -113
  638. package/docs/devices_piezobuzzer.js.html +0 -105
  639. package/docs/devices_remotecontrolbutton.js.html +0 -117
  640. package/docs/devices_simplemediumlinearmotor.js.html +0 -89
  641. package/docs/devices_tachomotor.js.html +0 -244
  642. package/docs/devices_technic3x3colorlightmatrix.js.html +0 -131
  643. package/docs/devices_techniccolorsensor.js.html +0 -149
  644. package/docs/devices_technicdistancesensor.js.html +0 -135
  645. package/docs/devices_technicforcesensor.js.html +0 -135
  646. package/docs/devices_techniclargeangularmotor.js.html +0 -89
  647. package/docs/devices_techniclargelinearmotor.js.html +0 -89
  648. package/docs/devices_technicmediumangularmotor.js.html +0 -89
  649. package/docs/devices_technicmediumhubaccelerometersensor.js.html +0 -115
  650. package/docs/devices_technicmediumhubgyrosensor.js.html +0 -115
  651. package/docs/devices_technicmediumhubtiltsensor.js.html +0 -183
  652. package/docs/devices_technicsmallangularmotor.js.html +0 -89
  653. package/docs/devices_technicxlargelinearmotor.js.html +0 -89
  654. package/docs/devices_tiltsensor.js.html +0 -113
  655. package/docs/devices_trainmotor.js.html +0 -89
  656. package/docs/devices_voltagesensor.js.html +0 -136
  657. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  658. package/docs/fonts/OpenSans-Bold-webfont.svg +0 -1830
  659. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  660. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  661. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  662. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  663. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  664. package/docs/fonts/OpenSans-Italic-webfont.svg +0 -1830
  665. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  666. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  667. package/docs/fonts/OpenSans-Light-webfont.svg +0 -1831
  668. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  669. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  670. package/docs/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  671. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  672. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  673. package/docs/fonts/OpenSans-Regular-webfont.svg +0 -1831
  674. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  675. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  676. package/docs/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  677. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  678. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  679. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  680. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  681. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  682. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  683. package/docs/global.html +0 -3996
  684. package/docs/hubs_basehub.js.html +0 -469
  685. package/docs/hubs_duplotrainbase.js.html +0 -112
  686. package/docs/hubs_hub.js.html +0 -121
  687. package/docs/hubs_mario.js.html +0 -108
  688. package/docs/hubs_movehub.js.html +0 -123
  689. package/docs/hubs_remotecontrol.js.html +0 -114
  690. package/docs/hubs_technicmediumhub.js.html +0 -119
  691. package/docs/hubs_technicsmallhub.js.html +0 -118
  692. package/docs/hubs_wedo2smarthub.js.html +0 -265
  693. package/docs/icons/home.svg +0 -4
  694. package/docs/icons/search.svg +0 -4
  695. package/docs/poweredup-browser.js.html +0 -292
  696. package/docs/poweredup-node.js.html +0 -250
  697. package/docs/scripts/linenumber.js +0 -25
  698. package/docs/scripts/pagelocation.js +0 -89
  699. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
  700. package/docs/scripts/prettify/lang-css.js +0 -2
  701. package/docs/scripts/prettify/prettify.js +0 -28
  702. package/docs/styles/collapse.css +0 -27
  703. package/docs/styles/jsdoc-default.css +0 -358
  704. package/docs/styles/prettify-jsdoc.css +0 -111
  705. package/docs/styles/prettify-tomorrow.css +0 -132
  706. package/noble-mac.d.ts +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voltagesensor.d.ts","sourceRoot":"","sources":["../../src/devices/voltagesensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,MAAM;gBAExB,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI3C,OAAO,CAAE,OAAO,EAAE,MAAM;CA8BlC;AAED,oBAAY,IAAI;IACZ,OAAO,IAAO;CACjB;AAED,eAAO,MAAM,OAAO,EAAE;IAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAE7C,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { Device } from "./device.js";
2
+ import * as Consts from "../consts.js";
3
+ /**
4
+ * @class VoltageSensor
5
+ * @extends Device
6
+ */
7
+ export class VoltageSensor extends Device {
8
+ constructor(hub, portId) {
9
+ super(hub, portId, ModeMap, Consts.DeviceType.VOLTAGE_SENSOR);
10
+ }
11
+ receive(message) {
12
+ const mode = this._mode;
13
+ switch (mode) {
14
+ case Mode.VOLTAGE:
15
+ if (this.isWeDo2SmartHub) {
16
+ const voltage = message.readInt16LE(2) / 40;
17
+ this.notify("voltage", { voltage });
18
+ }
19
+ else {
20
+ let maxVoltageValue = MaxVoltageValue[this.hub.type];
21
+ if (maxVoltageValue === undefined) {
22
+ maxVoltageValue = MaxVoltageValue[Consts.HubType.UNKNOWN];
23
+ }
24
+ let maxVoltageRaw = MaxVoltageRaw[this.hub.type];
25
+ if (maxVoltageRaw === undefined) {
26
+ maxVoltageRaw = MaxVoltageRaw[Consts.HubType.UNKNOWN];
27
+ }
28
+ const voltage = message.readUInt16LE(4) * maxVoltageValue / maxVoltageRaw;
29
+ /**
30
+ * Emits when a voltage change is detected.
31
+ * @event VoltageSensor#voltage
32
+ * @type {object}
33
+ * @param {number} voltage
34
+ */
35
+ this.notify("voltage", { voltage });
36
+ }
37
+ break;
38
+ }
39
+ }
40
+ }
41
+ export var Mode;
42
+ (function (Mode) {
43
+ Mode[Mode["VOLTAGE"] = 0] = "VOLTAGE";
44
+ })(Mode || (Mode = {}));
45
+ export const ModeMap = {
46
+ "voltage": Mode.VOLTAGE
47
+ };
48
+ const MaxVoltageValue = {
49
+ [Consts.HubType.UNKNOWN]: 9.615,
50
+ [Consts.HubType.DUPLO_TRAIN_BASE]: 6.4,
51
+ [Consts.HubType.REMOTE_CONTROL]: 6.4,
52
+ };
53
+ const MaxVoltageRaw = {
54
+ [Consts.HubType.UNKNOWN]: 3893,
55
+ [Consts.HubType.DUPLO_TRAIN_BASE]: 3047,
56
+ [Consts.HubType.REMOTE_CONTROL]: 3200,
57
+ [Consts.HubType.TECHNIC_MEDIUM_HUB]: 4095,
58
+ };
59
+ //# sourceMappingURL=voltagesensor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voltagesensor.js","sourceRoot":"","sources":["../../src/devices/voltagesensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIrC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,MAAM;IAErC,YAAa,GAAqB,EAAE,MAAc;QAC9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC;IAEM,OAAO,CAAE,OAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,OAAO;gBACb,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;oBAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACJ,IAAI,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACrD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;wBAChC,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC9D,CAAC;oBACD,IAAI,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;wBAC9B,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1D,CAAC;oBACD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,GAAG,aAAa,CAAC;oBAC1E;;;;;uBAKG;oBACH,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM;QACd,CAAC;IACL,CAAC;CAEJ;AAED,MAAM,CAAN,IAAY,IAEX;AAFD,WAAY,IAAI;IACZ,qCAAc,CAAA;AAClB,CAAC,EAFW,IAAI,KAAJ,IAAI,QAEf;AAED,MAAM,CAAC,MAAM,OAAO,GAA8B;IAC9C,SAAS,EAAE,IAAI,CAAC,OAAO;CAC1B,CAAC;AAEF,MAAM,eAAe,GAAgC;IACjD,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK;IAC/B,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG;IACtC,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,GAAG;CACvC,CAAC;AAEF,MAAM,aAAa,GAAgC;IAC/C,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI;IAC9B,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI;IACvC,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI;IACrC,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI;CAC5C,CAAC"}
@@ -0,0 +1,154 @@
1
+ import { EventEmitter } from "events";
2
+ import { IBLEAbstraction } from "../interfaces.js";
3
+ import { Device } from "../devices/device.js";
4
+ import * as Consts from "../consts.js";
5
+ /**
6
+ * @class BaseHub
7
+ * @extends EventEmitter
8
+ */
9
+ export declare class BaseHub extends EventEmitter {
10
+ protected _attachedDevices: {
11
+ [portId: number]: Device;
12
+ };
13
+ protected _name: string;
14
+ protected _firmwareVersion: string;
15
+ protected _hardwareVersion: string;
16
+ protected _primaryMACAddress: string;
17
+ protected _batteryLevel: number;
18
+ protected _rssi: number;
19
+ protected _portMap: {
20
+ [portName: string]: number;
21
+ };
22
+ protected _virtualPorts: number[];
23
+ protected _bleDevice: IBLEAbstraction;
24
+ private _type;
25
+ private _attachCallbacks;
26
+ constructor(bleDevice: IBLEAbstraction, portMap?: {
27
+ [portName: string]: number;
28
+ }, type?: Consts.HubType);
29
+ /**
30
+ * @readonly
31
+ * @property {string} name Name of the hub
32
+ */
33
+ get name(): string;
34
+ /**
35
+ * @readonly
36
+ * @property {string} connected Connected status
37
+ */
38
+ get connected(): boolean;
39
+ /**
40
+ * @readonly
41
+ * @property {string} connecting Connecting status
42
+ */
43
+ get connecting(): boolean;
44
+ /**
45
+ * @readonly
46
+ * @property {string} type Hub type
47
+ */
48
+ get type(): Consts.HubType;
49
+ /**
50
+ * @readonly
51
+ * @property {string[]} ports Array of port names
52
+ */
53
+ get ports(): string[];
54
+ /**
55
+ * @readonly
56
+ * @property {string} firmwareVersion Firmware version of the hub
57
+ */
58
+ get firmwareVersion(): string;
59
+ /**
60
+ * @readonly
61
+ * @property {string} hardwareVersion Hardware version of the hub
62
+ */
63
+ get hardwareVersion(): string;
64
+ /**
65
+ * @readonly
66
+ * @property {string} primaryMACAddress Primary MAC address of the hub
67
+ */
68
+ get primaryMACAddress(): string;
69
+ /**
70
+ * @readonly
71
+ * @property {string} uuid UUID of the hub
72
+ */
73
+ get uuid(): string;
74
+ /**
75
+ * @readonly
76
+ * @property {number} batteryLevel Battery level of the hub (Percentage between 0-100)
77
+ */
78
+ get batteryLevel(): number;
79
+ /**
80
+ * @readonly
81
+ * @property {number} rssi Signal strength of the hub
82
+ */
83
+ get rssi(): number;
84
+ /**
85
+ * Connect to the Hub.
86
+ * @returns {Promise} Resolved upon successful connect.
87
+ */
88
+ connect(): Promise<void>;
89
+ /**
90
+ * Disconnect the Hub.
91
+ * @returns {Promise} Resolved upon successful disconnect.
92
+ */
93
+ disconnect(): Promise<void>;
94
+ /**
95
+ * Retrieves the device attached to a given port.
96
+ * @param {string} portName The name of the port to retrieve the device from.
97
+ * @returns {Device | undefined} The device attached to the port.
98
+ */
99
+ getDeviceAtPort(portName: string): Device | undefined;
100
+ /**
101
+ * Retrieves the device attached to a given port, waiting until one is attached if there isn't one.
102
+ *
103
+ * Note: If a device is never attached, the returned promise may never resolve.
104
+ * @param {string} portName The name of the port to retrieve the device from.
105
+ * @returns {Promise} Resolved once a device is attached, or resolved immediately if a device is already attached.
106
+ */
107
+ waitForDeviceAtPort(portName: string): Promise<unknown>;
108
+ /**
109
+ * Retrieves all attached devices.
110
+ * @returns {Device[]} Array of all attached devices.
111
+ */
112
+ getDevices(): Device[];
113
+ /**
114
+ * Retrieves an array of devices of the specified type.
115
+ * @param {number} deviceType The device type to lookup.
116
+ * @returns {Device[]} Array of all devices of the specified type.
117
+ */
118
+ getDevicesByType(deviceType: number): Device[];
119
+ /**
120
+ * Retrieves the first device attached of the specified type, waiting until one is attached if there isn't one.
121
+ *
122
+ * Note: If a device is never attached, the returned promise may never resolve.
123
+ * @param {number} deviceType The device type to lookup.
124
+ * @returns {Promise} Resolved once a device is attached, or resolved immediately if a device is already attached.
125
+ */
126
+ waitForDeviceByType(deviceType: number): Promise<unknown>;
127
+ getPortNameForPortId(portId: number): string | undefined;
128
+ isPortVirtual(portId: number): boolean;
129
+ /**
130
+ * Sleep a given amount of time.
131
+ *
132
+ * Note: This is a helper method to make it easier to add delays into a chain of commands.
133
+ * @param {number} delay How long to sleep (in milliseconds).
134
+ * @returns {Promise} Resolved after the delay is finished.
135
+ */
136
+ sleep(delay: number): Promise<unknown>;
137
+ /**
138
+ * Wait until a given list of concurrently running commands are complete.
139
+ *
140
+ * Note: This is a helper method to make it easier to wait for concurrent commands to complete.
141
+ * @param {Array<Promise<any>>} commands Array of executing commands.
142
+ * @returns {Promise} Resolved after the commands are finished.
143
+ */
144
+ wait(commands: Promise<any>[]): Promise<any[]>;
145
+ send(message: Buffer, uuid: string): Promise<void>;
146
+ subscribe(portId: number, deviceType: number, mode: number): void;
147
+ unsubscribe(portId: number, deviceType: number, mode: number): void;
148
+ manuallyAttachDevice(deviceType: number, portId: number): Device;
149
+ protected _attachDevice(device: Device): void;
150
+ protected _detachDevice(device: Device): void;
151
+ protected _createDevice(deviceType: number, portId: number): Device;
152
+ protected _getDeviceByPortId(portId: number): Device;
153
+ }
154
+ //# sourceMappingURL=basehub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basehub.d.ts","sourceRoot":"","sources":["../../src/hubs/basehub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,383 @@
1
+ import { EventEmitter } from "events";
2
+ import { ColorDistanceSensor } from "../devices/colordistancesensor.js";
3
+ import { CurrentSensor } from "../devices/currentsensor.js";
4
+ import { Device } from "../devices/device.js";
5
+ import { DuploTrainBaseColorSensor } from "../devices/duplotrainbasecolorsensor.js";
6
+ import { DuploTrainBaseMotor } from "../devices/duplotrainbasemotor.js";
7
+ import { DuploTrainBaseSpeaker } from "../devices/duplotrainbasespeaker.js";
8
+ import { DuploTrainBaseSpeedometer } from "../devices/duplotrainbasespeedometer.js";
9
+ import { HubLED } from "../devices/hubled.js";
10
+ import { Light } from "../devices/light.js";
11
+ import { MarioAccelerometer } from "../devices/marioaccelerometer.js";
12
+ import { MarioBarcodeSensor } from "../devices/mariobarcodesensor.js";
13
+ import { MarioPantsSensor } from "../devices/mariopantssensor.js";
14
+ import { MediumLinearMotor } from "../devices/mediumlinearmotor.js";
15
+ import { MotionSensor } from "../devices/motionsensor.js";
16
+ import { MoveHubMediumLinearMotor } from "../devices/movehubmediumlinearmotor.js";
17
+ import { MoveHubTiltSensor } from "../devices/movehubtiltsensor.js";
18
+ import { PiezoBuzzer } from "../devices/piezobuzzer.js";
19
+ import { RemoteControlButton } from "../devices/remotecontrolbutton.js";
20
+ import { SimpleMediumLinearMotor } from "../devices/simplemediumlinearmotor.js";
21
+ import { TechnicColorSensor } from "../devices/techniccolorsensor.js";
22
+ import { TechnicDistanceSensor } from "../devices/technicdistancesensor.js";
23
+ import { TechnicForceSensor } from "../devices/technicforcesensor.js";
24
+ import { TechnicLargeAngularMotor } from "../devices/techniclargeangularmotor.js";
25
+ import { TechnicLargeLinearMotor } from "../devices/techniclargelinearmotor.js";
26
+ import { TechnicSmallAngularMotor } from "../devices/technicsmallangularmotor.js";
27
+ import { TechnicMediumAngularMotor } from "../devices/technicmediumangularmotor.js";
28
+ import { TechnicMediumHubAccelerometerSensor } from "../devices/technicmediumhubaccelerometersensor.js";
29
+ import { TechnicMediumHubGyroSensor } from "../devices/technicmediumhubgyrosensor.js";
30
+ import { TechnicMediumHubTiltSensor } from "../devices/technicmediumhubtiltsensor.js";
31
+ import { TechnicXLargeLinearMotor } from "../devices/technicxlargelinearmotor.js";
32
+ import { TiltSensor } from "../devices/tiltsensor.js";
33
+ import { TrainMotor } from "../devices/trainmotor.js";
34
+ import { VoltageSensor } from "../devices/voltagesensor.js";
35
+ import * as Consts from "../consts.js";
36
+ import Debug from "debug";
37
+ import { Technic3x3ColorLightMatrix } from "../devices/technic3x3colorlightmatrix.js";
38
+ const debug = Debug("basehub");
39
+ /**
40
+ * @class BaseHub
41
+ * @extends EventEmitter
42
+ */
43
+ export class BaseHub extends EventEmitter {
44
+ constructor(bleDevice, portMap = {}, type = Consts.HubType.UNKNOWN) {
45
+ super();
46
+ this._attachedDevices = {};
47
+ this._name = "";
48
+ this._firmwareVersion = "0.0.00.0000";
49
+ this._hardwareVersion = "0.0.00.0000";
50
+ this._primaryMACAddress = "00:00:00:00:00:00";
51
+ this._batteryLevel = 100;
52
+ this._rssi = -60;
53
+ this._portMap = {};
54
+ this._virtualPorts = [];
55
+ this._attachCallbacks = [];
56
+ this.setMaxListeners(23); // Technic Medium Hub has 9 built in devices + 4 external ports. Node.js throws a warning after 10 attached event listeners.
57
+ this._type = type;
58
+ this._bleDevice = bleDevice;
59
+ this._portMap = Object.assign({}, portMap);
60
+ bleDevice.on("disconnect", () => {
61
+ /**
62
+ * Emits when the hub is disconnected.
63
+ * @event Hub#disconnect
64
+ */
65
+ this.emit("disconnect");
66
+ });
67
+ }
68
+ /**
69
+ * @readonly
70
+ * @property {string} name Name of the hub
71
+ */
72
+ get name() {
73
+ return this._bleDevice.name;
74
+ }
75
+ /**
76
+ * @readonly
77
+ * @property {string} connected Connected status
78
+ */
79
+ get connected() {
80
+ return this._bleDevice.connected;
81
+ }
82
+ /**
83
+ * @readonly
84
+ * @property {string} connecting Connecting status
85
+ */
86
+ get connecting() {
87
+ return this._bleDevice.connecting;
88
+ }
89
+ /**
90
+ * @readonly
91
+ * @property {string} type Hub type
92
+ */
93
+ get type() {
94
+ return this._type;
95
+ }
96
+ /**
97
+ * @readonly
98
+ * @property {string[]} ports Array of port names
99
+ */
100
+ get ports() {
101
+ return Object.keys(this._portMap);
102
+ }
103
+ /**
104
+ * @readonly
105
+ * @property {string} firmwareVersion Firmware version of the hub
106
+ */
107
+ get firmwareVersion() {
108
+ return this._firmwareVersion;
109
+ }
110
+ /**
111
+ * @readonly
112
+ * @property {string} hardwareVersion Hardware version of the hub
113
+ */
114
+ get hardwareVersion() {
115
+ return this._hardwareVersion;
116
+ }
117
+ /**
118
+ * @readonly
119
+ * @property {string} primaryMACAddress Primary MAC address of the hub
120
+ */
121
+ get primaryMACAddress() {
122
+ return this._primaryMACAddress;
123
+ }
124
+ /**
125
+ * @readonly
126
+ * @property {string} uuid UUID of the hub
127
+ */
128
+ get uuid() {
129
+ return this._bleDevice.uuid;
130
+ }
131
+ /**
132
+ * @readonly
133
+ * @property {number} batteryLevel Battery level of the hub (Percentage between 0-100)
134
+ */
135
+ get batteryLevel() {
136
+ return this._batteryLevel;
137
+ }
138
+ /**
139
+ * @readonly
140
+ * @property {number} rssi Signal strength of the hub
141
+ */
142
+ get rssi() {
143
+ return this._rssi;
144
+ }
145
+ /**
146
+ * Connect to the Hub.
147
+ * @returns {Promise} Resolved upon successful connect.
148
+ */
149
+ connect() {
150
+ if (this._bleDevice.connecting) {
151
+ throw new Error("Already connecting");
152
+ }
153
+ else if (this._bleDevice.connected) {
154
+ throw new Error("Already connected");
155
+ }
156
+ return this._bleDevice.connect();
157
+ }
158
+ /**
159
+ * Disconnect the Hub.
160
+ * @returns {Promise} Resolved upon successful disconnect.
161
+ */
162
+ disconnect() {
163
+ return this._bleDevice.disconnect();
164
+ }
165
+ /**
166
+ * Retrieves the device attached to a given port.
167
+ * @param {string} portName The name of the port to retrieve the device from.
168
+ * @returns {Device | undefined} The device attached to the port.
169
+ */
170
+ getDeviceAtPort(portName) {
171
+ const portId = this._portMap[portName];
172
+ if (portId !== undefined) {
173
+ return this._attachedDevices[portId];
174
+ }
175
+ else {
176
+ return undefined;
177
+ }
178
+ }
179
+ /**
180
+ * Retrieves the device attached to a given port, waiting until one is attached if there isn't one.
181
+ *
182
+ * Note: If a device is never attached, the returned promise may never resolve.
183
+ * @param {string} portName The name of the port to retrieve the device from.
184
+ * @returns {Promise} Resolved once a device is attached, or resolved immediately if a device is already attached.
185
+ */
186
+ waitForDeviceAtPort(portName) {
187
+ return new Promise((resolve) => {
188
+ const existingDevice = this.getDeviceAtPort(portName);
189
+ if (existingDevice) {
190
+ return resolve(existingDevice);
191
+ }
192
+ this._attachCallbacks.push((device) => {
193
+ if (device.portName === portName) {
194
+ resolve(device);
195
+ return true;
196
+ }
197
+ else {
198
+ return false;
199
+ }
200
+ });
201
+ });
202
+ }
203
+ /**
204
+ * Retrieves all attached devices.
205
+ * @returns {Device[]} Array of all attached devices.
206
+ */
207
+ getDevices() {
208
+ return Object.values(this._attachedDevices);
209
+ }
210
+ /**
211
+ * Retrieves an array of devices of the specified type.
212
+ * @param {number} deviceType The device type to lookup.
213
+ * @returns {Device[]} Array of all devices of the specified type.
214
+ */
215
+ getDevicesByType(deviceType) {
216
+ return this.getDevices().filter((device) => device.type === deviceType);
217
+ }
218
+ /**
219
+ * Retrieves the first device attached of the specified type, waiting until one is attached if there isn't one.
220
+ *
221
+ * Note: If a device is never attached, the returned promise may never resolve.
222
+ * @param {number} deviceType The device type to lookup.
223
+ * @returns {Promise} Resolved once a device is attached, or resolved immediately if a device is already attached.
224
+ */
225
+ waitForDeviceByType(deviceType) {
226
+ return new Promise((resolve) => {
227
+ const existingDevices = this.getDevicesByType(deviceType);
228
+ if (existingDevices.length >= 1) {
229
+ return resolve(existingDevices[0]);
230
+ }
231
+ this._attachCallbacks.push((device) => {
232
+ if (device.type === deviceType) {
233
+ resolve(device);
234
+ return true;
235
+ }
236
+ else {
237
+ return false;
238
+ }
239
+ });
240
+ });
241
+ }
242
+ getPortNameForPortId(portId) {
243
+ for (const port of Object.keys(this._portMap)) {
244
+ if (this._portMap[port] === portId) {
245
+ return port;
246
+ }
247
+ }
248
+ return;
249
+ }
250
+ isPortVirtual(portId) {
251
+ return (this._virtualPorts.indexOf(portId) > -1);
252
+ }
253
+ /**
254
+ * Sleep a given amount of time.
255
+ *
256
+ * Note: This is a helper method to make it easier to add delays into a chain of commands.
257
+ * @param {number} delay How long to sleep (in milliseconds).
258
+ * @returns {Promise} Resolved after the delay is finished.
259
+ */
260
+ sleep(delay) {
261
+ return new Promise((resolve) => {
262
+ global.setTimeout(resolve, delay);
263
+ });
264
+ }
265
+ /**
266
+ * Wait until a given list of concurrently running commands are complete.
267
+ *
268
+ * Note: This is a helper method to make it easier to wait for concurrent commands to complete.
269
+ * @param {Array<Promise<any>>} commands Array of executing commands.
270
+ * @returns {Promise} Resolved after the commands are finished.
271
+ */
272
+ wait(commands) {
273
+ return Promise.all(commands);
274
+ }
275
+ send(message, uuid) {
276
+ return Promise.resolve();
277
+ }
278
+ subscribe(portId, deviceType, mode) {
279
+ // NK Do nothing here
280
+ }
281
+ unsubscribe(portId, deviceType, mode) {
282
+ // NK Do nothing here
283
+ }
284
+ manuallyAttachDevice(deviceType, portId) {
285
+ if (!this._attachedDevices[portId]) {
286
+ debug(`No device attached to portId ${portId}, creating and attaching device type ${deviceType}`);
287
+ const device = this._createDevice(deviceType, portId);
288
+ this._attachDevice(device);
289
+ return device;
290
+ }
291
+ else {
292
+ if (this._attachedDevices[portId].type === deviceType) {
293
+ debug(`Device of ${deviceType} already attached to portId ${portId}, returning existing device`);
294
+ return this._attachedDevices[portId];
295
+ }
296
+ else {
297
+ throw new Error(`Already a different type of device attached to portId ${portId}. Only use this method when you are certain what's attached.`);
298
+ }
299
+ }
300
+ }
301
+ _attachDevice(device) {
302
+ if (this._attachedDevices[device.portId] && this._attachedDevices[device.portId].type === device.type) {
303
+ return;
304
+ }
305
+ this._attachedDevices[device.portId] = device;
306
+ /**
307
+ * Emits when a device is attached to the Hub.
308
+ * @event Hub#attach
309
+ * @param {Device} device
310
+ */
311
+ this.emit("attach", device);
312
+ debug(`Attached device type ${device.type} (${Consts.DeviceTypeNames[device.type]}) on port ${device.portName} (${device.portId})`);
313
+ let i = this._attachCallbacks.length;
314
+ while (i--) {
315
+ const callback = this._attachCallbacks[i];
316
+ if (callback(device)) {
317
+ this._attachCallbacks.splice(i, 1);
318
+ }
319
+ }
320
+ }
321
+ _detachDevice(device) {
322
+ delete this._attachedDevices[device.portId];
323
+ /**
324
+ * Emits when a device is detached from the Hub.
325
+ * @event Hub#detach
326
+ * @param {Device} device
327
+ */
328
+ this.emit("detach", device);
329
+ debug(`Detached device type ${device.type} (${Consts.DeviceTypeNames[device.type]}) on port ${device.portName} (${device.portId})`);
330
+ }
331
+ _createDevice(deviceType, portId) {
332
+ let constructor;
333
+ // NK TODO: This needs to go in a better place
334
+ const deviceConstructors = {
335
+ [Consts.DeviceType.LIGHT]: Light,
336
+ [Consts.DeviceType.TRAIN_MOTOR]: TrainMotor,
337
+ [Consts.DeviceType.SIMPLE_MEDIUM_LINEAR_MOTOR]: SimpleMediumLinearMotor,
338
+ [Consts.DeviceType.MOVE_HUB_MEDIUM_LINEAR_MOTOR]: MoveHubMediumLinearMotor,
339
+ [Consts.DeviceType.MOTION_SENSOR]: MotionSensor,
340
+ [Consts.DeviceType.TILT_SENSOR]: TiltSensor,
341
+ [Consts.DeviceType.MOVE_HUB_TILT_SENSOR]: MoveHubTiltSensor,
342
+ [Consts.DeviceType.PIEZO_BUZZER]: PiezoBuzzer,
343
+ [Consts.DeviceType.TECHNIC_COLOR_SENSOR]: TechnicColorSensor,
344
+ [Consts.DeviceType.TECHNIC_DISTANCE_SENSOR]: TechnicDistanceSensor,
345
+ [Consts.DeviceType.TECHNIC_FORCE_SENSOR]: TechnicForceSensor,
346
+ [Consts.DeviceType.TECHNIC_MEDIUM_HUB_TILT_SENSOR]: TechnicMediumHubTiltSensor,
347
+ [Consts.DeviceType.TECHNIC_MEDIUM_HUB_GYRO_SENSOR]: TechnicMediumHubGyroSensor,
348
+ [Consts.DeviceType.TECHNIC_MEDIUM_HUB_ACCELEROMETER]: TechnicMediumHubAccelerometerSensor,
349
+ [Consts.DeviceType.MEDIUM_LINEAR_MOTOR]: MediumLinearMotor,
350
+ [Consts.DeviceType.TECHNIC_SMALL_ANGULAR_MOTOR]: TechnicSmallAngularMotor,
351
+ [Consts.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR]: TechnicMediumAngularMotor,
352
+ [Consts.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR]: TechnicLargeAngularMotor,
353
+ [Consts.DeviceType.TECHNIC_LARGE_LINEAR_MOTOR]: TechnicLargeLinearMotor,
354
+ [Consts.DeviceType.TECHNIC_XLARGE_LINEAR_MOTOR]: TechnicXLargeLinearMotor,
355
+ [Consts.DeviceType.COLOR_DISTANCE_SENSOR]: ColorDistanceSensor,
356
+ [Consts.DeviceType.VOLTAGE_SENSOR]: VoltageSensor,
357
+ [Consts.DeviceType.CURRENT_SENSOR]: CurrentSensor,
358
+ [Consts.DeviceType.REMOTE_CONTROL_BUTTON]: RemoteControlButton,
359
+ [Consts.DeviceType.HUB_LED]: HubLED,
360
+ [Consts.DeviceType.DUPLO_TRAIN_BASE_COLOR_SENSOR]: DuploTrainBaseColorSensor,
361
+ [Consts.DeviceType.DUPLO_TRAIN_BASE_MOTOR]: DuploTrainBaseMotor,
362
+ [Consts.DeviceType.DUPLO_TRAIN_BASE_SPEAKER]: DuploTrainBaseSpeaker,
363
+ [Consts.DeviceType.DUPLO_TRAIN_BASE_SPEEDOMETER]: DuploTrainBaseSpeedometer,
364
+ [Consts.DeviceType.MARIO_ACCELEROMETER]: MarioAccelerometer,
365
+ [Consts.DeviceType.MARIO_BARCODE_SENSOR]: MarioBarcodeSensor,
366
+ [Consts.DeviceType.MARIO_PANTS_SENSOR]: MarioPantsSensor,
367
+ [Consts.DeviceType.TECHNIC_MEDIUM_ANGULAR_MOTOR_GREY]: TechnicMediumAngularMotor,
368
+ [Consts.DeviceType.TECHNIC_LARGE_ANGULAR_MOTOR_GREY]: TechnicLargeAngularMotor,
369
+ [Consts.DeviceType.TECHNIC_3X3_COLOR_LIGHT_MATRIX]: Technic3x3ColorLightMatrix,
370
+ };
371
+ constructor = deviceConstructors[deviceType];
372
+ if (constructor) {
373
+ return new constructor(this, portId, undefined, deviceType);
374
+ }
375
+ else {
376
+ return new Device(this, portId, undefined, deviceType);
377
+ }
378
+ }
379
+ _getDeviceByPortId(portId) {
380
+ return this._attachedDevices[portId];
381
+ }
382
+ }
383
+ //# sourceMappingURL=basehub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basehub.js","sourceRoot":"","sources":["../../src/hubs/basehub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Peripheral } from "@stoprocent/noble";
2
+ import { LPF2Hub } from "./lpf2hub.js";
3
+ import { IBLEAbstraction } from "../interfaces.js";
4
+ /**
5
+ * The DuploTrainBase is emitted if the discovered device is a Duplo Train Base.
6
+ * @class DuploTrainBase
7
+ * @extends LPF2Hub
8
+ * @extends BaseHub
9
+ */
10
+ export declare class DuploTrainBase extends LPF2Hub {
11
+ static IsDuploTrainBase(peripheral: Peripheral): boolean;
12
+ constructor(device: IBLEAbstraction);
13
+ connect(): Promise<void>;
14
+ }
15
+ export declare const PortMap: {
16
+ [portName: string]: number;
17
+ };
18
+ //# sourceMappingURL=duplotrainbase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplotrainbase.d.ts","sourceRoot":"","sources":["../../src/hubs/duplotrainbase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAKvC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,OAAO;WAGzB,gBAAgB,CAAE,UAAU,EAAE,UAAU;gBAYzC,MAAM,EAAE,eAAe;IAMvB,OAAO;CAOvB;AAED,eAAO,MAAM,OAAO,EAAE;IAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;CAIhD,CAAC"}