node-poweredup 10.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 (313) hide show
  1. package/README.md +0 -1
  2. package/dist/browser/poweredup.js +6193 -0
  3. package/dist/browser/poweredup.js.map +7 -0
  4. package/dist/consts.d.ts +40 -0
  5. package/dist/consts.d.ts.map +1 -1
  6. package/dist/consts.js +42 -0
  7. package/dist/consts.js.map +1 -1
  8. package/dist/devices/absolutemotor.d.ts +8 -6
  9. package/dist/devices/absolutemotor.d.ts.map +1 -1
  10. package/dist/devices/absolutemotor.js +24 -31
  11. package/dist/devices/absolutemotor.js.map +1 -1
  12. package/dist/devices/basicmotor.d.ts +11 -10
  13. package/dist/devices/basicmotor.d.ts.map +1 -1
  14. package/dist/devices/basicmotor.js +16 -22
  15. package/dist/devices/basicmotor.js.map +1 -1
  16. package/dist/devices/colordistancesensor.d.ts +13 -12
  17. package/dist/devices/colordistancesensor.d.ts.map +1 -1
  18. package/dist/devices/colordistancesensor.js +25 -31
  19. package/dist/devices/colordistancesensor.js.map +1 -1
  20. package/dist/devices/device.d.ts +15 -6
  21. package/dist/devices/device.d.ts.map +1 -1
  22. package/dist/devices/device.js +209 -21
  23. package/dist/devices/device.js.map +1 -1
  24. package/dist/devices/duplotrainbasespeaker.d.ts +4 -4
  25. package/dist/devices/duplotrainbasespeaker.d.ts.map +1 -1
  26. package/dist/devices/duplotrainbasespeaker.js +5 -8
  27. package/dist/devices/duplotrainbasespeaker.js.map +1 -1
  28. package/dist/devices/hubled.d.ts +5 -4
  29. package/dist/devices/hubled.d.ts.map +1 -1
  30. package/dist/devices/hubled.js +24 -24
  31. package/dist/devices/hubled.js.map +1 -1
  32. package/dist/devices/light.d.ts +7 -4
  33. package/dist/devices/light.d.ts.map +1 -1
  34. package/dist/devices/light.js +11 -17
  35. package/dist/devices/light.js.map +1 -1
  36. package/dist/devices/piezobuzzer.d.ts +3 -2
  37. package/dist/devices/piezobuzzer.d.ts.map +1 -1
  38. package/dist/devices/piezobuzzer.js +2 -2
  39. package/dist/devices/piezobuzzer.js.map +1 -1
  40. package/dist/devices/tachomotor.d.ts +14 -8
  41. package/dist/devices/tachomotor.d.ts.map +1 -1
  42. package/dist/devices/tachomotor.js +50 -56
  43. package/dist/devices/tachomotor.js.map +1 -1
  44. package/dist/devices/technic3x3colorlightmatrix.d.ts +3 -2
  45. package/dist/devices/technic3x3colorlightmatrix.d.ts.map +1 -1
  46. package/dist/devices/technic3x3colorlightmatrix.js +20 -23
  47. package/dist/devices/technic3x3colorlightmatrix.js.map +1 -1
  48. package/dist/devices/techniccolorsensor.d.ts +9 -4
  49. package/dist/devices/techniccolorsensor.d.ts.map +1 -1
  50. package/dist/devices/techniccolorsensor.js +99 -8
  51. package/dist/devices/techniccolorsensor.js.map +1 -1
  52. package/dist/devices/technicdistancesensor.d.ts +1 -1
  53. package/dist/devices/technicdistancesensor.js +1 -1
  54. package/dist/devices/technicmediumhubtiltsensor.d.ts +7 -6
  55. package/dist/devices/technicmediumhubtiltsensor.d.ts.map +1 -1
  56. package/dist/devices/technicmediumhubtiltsensor.js +9 -18
  57. package/dist/devices/technicmediumhubtiltsensor.js.map +1 -1
  58. package/dist/devices/tiltsensor.d.ts +4 -1
  59. package/dist/devices/tiltsensor.d.ts.map +1 -1
  60. package/dist/devices/tiltsensor.js +84 -3
  61. package/dist/devices/tiltsensor.js.map +1 -1
  62. package/dist/hubs/basehub.d.ts +1 -0
  63. package/dist/hubs/basehub.d.ts.map +1 -1
  64. package/dist/hubs/basehub.js +17 -0
  65. package/dist/hubs/basehub.js.map +1 -1
  66. package/dist/hubs/lpf2hub.d.ts +1 -0
  67. package/dist/hubs/lpf2hub.d.ts.map +1 -1
  68. package/dist/hubs/lpf2hub.js +11 -0
  69. package/dist/hubs/lpf2hub.js.map +1 -1
  70. package/dist/portoutputcommand.d.ts +13 -0
  71. package/dist/portoutputcommand.d.ts.map +1 -0
  72. package/dist/portoutputcommand.js +30 -0
  73. package/dist/portoutputcommand.js.map +1 -0
  74. package/dist/portoutputsleep.d.ts +6 -0
  75. package/dist/portoutputsleep.d.ts.map +1 -0
  76. package/dist/portoutputsleep.js +10 -0
  77. package/dist/portoutputsleep.js.map +1 -0
  78. package/dist/utils.d.ts +1 -3
  79. package/dist/utils.d.ts.map +1 -1
  80. package/dist/utils.js +13 -19
  81. package/dist/utils.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/consts.ts +44 -0
  84. package/src/devices/absolutemotor.ts +24 -31
  85. package/src/devices/basicmotor.ts +16 -22
  86. package/src/devices/colordistancesensor.ts +23 -29
  87. package/src/devices/device.ts +198 -20
  88. package/src/devices/duplotrainbasespeaker.ts +5 -8
  89. package/src/devices/hubled.ts +22 -22
  90. package/src/devices/light.ts +11 -18
  91. package/src/devices/piezobuzzer.ts +3 -3
  92. package/src/devices/tachomotor.ts +47 -53
  93. package/src/devices/technic3x3colorlightmatrix.ts +20 -23
  94. package/src/devices/techniccolorsensor.ts +102 -10
  95. package/src/devices/technicdistancesensor.ts +1 -1
  96. package/src/devices/technicmediumhubtiltsensor.ts +9 -18
  97. package/src/devices/tiltsensor.ts +85 -5
  98. package/src/hubs/basehub.ts +18 -0
  99. package/src/hubs/lpf2hub.ts +12 -5
  100. package/src/portoutputcommand.ts +37 -0
  101. package/src/portoutputsleep.ts +11 -0
  102. package/src/utils.ts +14 -19
  103. package/tsconfig.tsbuildinfo +1 -1
  104. package/webpack.config.cjs +35 -0
  105. package/dist/node/color.d.ts +0 -6
  106. package/dist/node/color.js +0 -15
  107. package/dist/node/color.js.map +0 -1
  108. package/dist/node/commands.d.ts +0 -299
  109. package/dist/node/commands.js +0 -672
  110. package/dist/node/commands.js.map +0 -1
  111. package/dist/node/connection.d.ts +0 -187
  112. package/dist/node/connection.js +0 -478
  113. package/dist/node/connection.js.map +0 -1
  114. package/dist/node/consts.d.ts +0 -644
  115. package/dist/node/consts.js +0 -675
  116. package/dist/node/consts.js.map +0 -1
  117. package/dist/node/devices/absolutemotor.d.ts +0 -43
  118. package/dist/node/devices/absolutemotor.js +0 -118
  119. package/dist/node/devices/absolutemotor.js.map +0 -1
  120. package/dist/node/devices/basicmotor.d.ts +0 -40
  121. package/dist/node/devices/basicmotor.js +0 -61
  122. package/dist/node/devices/basicmotor.js.map +0 -1
  123. package/dist/node/devices/colordistancesensor.d.ts +0 -79
  124. package/dist/node/devices/colordistancesensor.js +0 -284
  125. package/dist/node/devices/colordistancesensor.js.map +0 -1
  126. package/dist/node/devices/currentsensor.d.ts +0 -16
  127. package/dist/node/devices/currentsensor.js +0 -55
  128. package/dist/node/devices/currentsensor.js.map +0 -1
  129. package/dist/node/devices/device.d.ts +0 -71
  130. package/dist/node/devices/device.js +0 -162
  131. package/dist/node/devices/device.js.map +0 -1
  132. package/dist/node/devices/duplotrainbasecolorsensor.d.ts +0 -19
  133. package/dist/node/devices/duplotrainbasecolorsensor.js +0 -77
  134. package/dist/node/devices/duplotrainbasecolorsensor.js.map +0 -1
  135. package/dist/node/devices/duplotrainbasemotor.d.ts +0 -9
  136. package/dist/node/devices/duplotrainbasemotor.js +0 -12
  137. package/dist/node/devices/duplotrainbasemotor.js.map +0 -1
  138. package/dist/node/devices/duplotrainbasespeaker.d.ts +0 -28
  139. package/dist/node/devices/duplotrainbasespeaker.js +0 -40
  140. package/dist/node/devices/duplotrainbasespeaker.js.map +0 -1
  141. package/dist/node/devices/duplotrainbasespeedometer.d.ts +0 -16
  142. package/dist/node/devices/duplotrainbasespeedometer.js +0 -34
  143. package/dist/node/devices/duplotrainbasespeedometer.js.map +0 -1
  144. package/dist/node/devices/hubled.d.ts +0 -29
  145. package/dist/node/devices/hubled.js +0 -60
  146. package/dist/node/devices/hubled.js.map +0 -1
  147. package/dist/node/devices/index.d.ts +0 -14
  148. package/dist/node/devices/index.js +0 -154
  149. package/dist/node/devices/index.js.map +0 -1
  150. package/dist/node/devices/led.d.ts +0 -140
  151. package/dist/node/devices/led.js +0 -295
  152. package/dist/node/devices/led.js.map +0 -1
  153. package/dist/node/devices/light.d.ts +0 -25
  154. package/dist/node/devices/light.js +0 -46
  155. package/dist/node/devices/light.js.map +0 -1
  156. package/dist/node/devices/marioaccelerometer.d.ts +0 -17
  157. package/dist/node/devices/marioaccelerometer.js +0 -50
  158. package/dist/node/devices/marioaccelerometer.js.map +0 -1
  159. package/dist/node/devices/mariobarcodesensor.d.ts +0 -17
  160. package/dist/node/devices/mariobarcodesensor.js +0 -58
  161. package/dist/node/devices/mariobarcodesensor.js.map +0 -1
  162. package/dist/node/devices/mariopantssensor.d.ts +0 -16
  163. package/dist/node/devices/mariopantssensor.js +0 -34
  164. package/dist/node/devices/mariopantssensor.js.map +0 -1
  165. package/dist/node/devices/mediumlinearmotor.d.ts +0 -9
  166. package/dist/node/devices/mediumlinearmotor.js +0 -12
  167. package/dist/node/devices/mediumlinearmotor.js.map +0 -1
  168. package/dist/node/devices/motionsensor.d.ts +0 -16
  169. package/dist/node/devices/motionsensor.js +0 -38
  170. package/dist/node/devices/motionsensor.js.map +0 -1
  171. package/dist/node/devices/motor.d.ts +0 -182
  172. package/dist/node/devices/motor.js +0 -367
  173. package/dist/node/devices/motor.js.map +0 -1
  174. package/dist/node/devices/movehubmediumlinearmotor.d.ts +0 -9
  175. package/dist/node/devices/movehubmediumlinearmotor.js +0 -12
  176. package/dist/node/devices/movehubmediumlinearmotor.js.map +0 -1
  177. package/dist/node/devices/movehubtiltsensor.d.ts +0 -16
  178. package/dist/node/devices/movehubtiltsensor.js +0 -36
  179. package/dist/node/devices/movehubtiltsensor.js.map +0 -1
  180. package/dist/node/devices/piezobuzzer.d.ts +0 -17
  181. package/dist/node/devices/piezobuzzer.js +0 -28
  182. package/dist/node/devices/piezobuzzer.js.map +0 -1
  183. package/dist/node/devices/remotecontrolbutton.d.ts +0 -19
  184. package/dist/node/devices/remotecontrolbutton.js +0 -40
  185. package/dist/node/devices/remotecontrolbutton.js.map +0 -1
  186. package/dist/node/devices/sensor.d.ts +0 -305
  187. package/dist/node/devices/sensor.js +0 -662
  188. package/dist/node/devices/sensor.js.map +0 -1
  189. package/dist/node/devices/simplemediumlinearmotor.d.ts +0 -9
  190. package/dist/node/devices/simplemediumlinearmotor.js +0 -12
  191. package/dist/node/devices/simplemediumlinearmotor.js.map +0 -1
  192. package/dist/node/devices/tachomotor.d.ts +0 -70
  193. package/dist/node/devices/tachomotor.js +0 -167
  194. package/dist/node/devices/tachomotor.js.map +0 -1
  195. package/dist/node/devices/technic3x3colorlightmatrix.d.ts +0 -22
  196. package/dist/node/devices/technic3x3colorlightmatrix.js +0 -54
  197. package/dist/node/devices/technic3x3colorlightmatrix.js.map +0 -1
  198. package/dist/node/devices/techniccolorsensor.d.ts +0 -27
  199. package/dist/node/devices/techniccolorsensor.js +0 -72
  200. package/dist/node/devices/techniccolorsensor.js.map +0 -1
  201. package/dist/node/devices/technicdistancesensor.d.ts +0 -27
  202. package/dist/node/devices/technicdistancesensor.js +0 -58
  203. package/dist/node/devices/technicdistancesensor.js.map +0 -1
  204. package/dist/node/devices/technicforcesensor.d.ts +0 -18
  205. package/dist/node/devices/technicforcesensor.js +0 -58
  206. package/dist/node/devices/technicforcesensor.js.map +0 -1
  207. package/dist/node/devices/techniclargeangularmotor.d.ts +0 -12
  208. package/dist/node/devices/techniclargeangularmotor.js +0 -12
  209. package/dist/node/devices/techniclargeangularmotor.js.map +0 -1
  210. package/dist/node/devices/techniclargelinearmotor.d.ts +0 -9
  211. package/dist/node/devices/techniclargelinearmotor.js +0 -12
  212. package/dist/node/devices/techniclargelinearmotor.js.map +0 -1
  213. package/dist/node/devices/technicmediumangularmotor.d.ts +0 -12
  214. package/dist/node/devices/technicmediumangularmotor.js +0 -12
  215. package/dist/node/devices/technicmediumangularmotor.js.map +0 -1
  216. package/dist/node/devices/technicmediumhubaccelerometersensor.d.ts +0 -16
  217. package/dist/node/devices/technicmediumhubaccelerometersensor.js +0 -38
  218. package/dist/node/devices/technicmediumhubaccelerometersensor.js.map +0 -1
  219. package/dist/node/devices/technicmediumhubgyrosensor.d.ts +0 -16
  220. package/dist/node/devices/technicmediumhubgyrosensor.js +0 -38
  221. package/dist/node/devices/technicmediumhubgyrosensor.js.map +0 -1
  222. package/dist/node/devices/technicmediumhubtiltsensor.d.ts +0 -40
  223. package/dist/node/devices/technicmediumhubtiltsensor.js +0 -106
  224. package/dist/node/devices/technicmediumhubtiltsensor.js.map +0 -1
  225. package/dist/node/devices/technicsmallangularmotor.d.ts +0 -12
  226. package/dist/node/devices/technicsmallangularmotor.js +0 -12
  227. package/dist/node/devices/technicsmallangularmotor.js.map +0 -1
  228. package/dist/node/devices/technicxlargelinearmotor.d.ts +0 -9
  229. package/dist/node/devices/technicxlargelinearmotor.js +0 -12
  230. package/dist/node/devices/technicxlargelinearmotor.js.map +0 -1
  231. package/dist/node/devices/tiltsensor.d.ts +0 -16
  232. package/dist/node/devices/tiltsensor.js +0 -36
  233. package/dist/node/devices/tiltsensor.js.map +0 -1
  234. package/dist/node/devices/trainmotor.d.ts +0 -9
  235. package/dist/node/devices/trainmotor.js +0 -12
  236. package/dist/node/devices/trainmotor.js.map +0 -1
  237. package/dist/node/devices/voltagesensor.d.ts +0 -16
  238. package/dist/node/devices/voltagesensor.js +0 -59
  239. package/dist/node/devices/voltagesensor.js.map +0 -1
  240. package/dist/node/hub.d.ts +0 -291
  241. package/dist/node/hub.js +0 -778
  242. package/dist/node/hub.js.map +0 -1
  243. package/dist/node/hubs/basehub.d.ts +0 -162
  244. package/dist/node/hubs/basehub.js +0 -392
  245. package/dist/node/hubs/basehub.js.map +0 -1
  246. package/dist/node/hubs/duplotrainbase.d.ts +0 -17
  247. package/dist/node/hubs/duplotrainbase.js +0 -35
  248. package/dist/node/hubs/duplotrainbase.js.map +0 -1
  249. package/dist/node/hubs/hub.d.ts +0 -19
  250. package/dist/node/hubs/hub.js +0 -44
  251. package/dist/node/hubs/hub.js.map +0 -1
  252. package/dist/node/hubs/lpf2hub.d.ts +0 -48
  253. package/dist/node/hubs/lpf2hub.js +0 -314
  254. package/dist/node/hubs/lpf2hub.js.map +0 -1
  255. package/dist/node/hubs/mario.d.ts +0 -17
  256. package/dist/node/hubs/mario.js +0 -31
  257. package/dist/node/hubs/mario.js.map +0 -1
  258. package/dist/node/hubs/movehub.d.ts +0 -18
  259. package/dist/node/hubs/movehub.js +0 -46
  260. package/dist/node/hubs/movehub.js.map +0 -1
  261. package/dist/node/hubs/remotecontrol.d.ts +0 -17
  262. package/dist/node/hubs/remotecontrol.js +0 -37
  263. package/dist/node/hubs/remotecontrol.js.map +0 -1
  264. package/dist/node/hubs/technicmediumhub.d.ts +0 -17
  265. package/dist/node/hubs/technicmediumhub.js +0 -42
  266. package/dist/node/hubs/technicmediumhub.js.map +0 -1
  267. package/dist/node/hubs/technicsmallhub.d.ts +0 -18
  268. package/dist/node/hubs/technicsmallhub.js +0 -41
  269. package/dist/node/hubs/technicsmallhub.js.map +0 -1
  270. package/dist/node/hubs/wedo2smarthub.d.ts +0 -40
  271. package/dist/node/hubs/wedo2smarthub.js +0 -188
  272. package/dist/node/hubs/wedo2smarthub.js.map +0 -1
  273. package/dist/node/index-browser.d.ts +0 -1
  274. package/dist/node/index-browser.js +0 -96
  275. package/dist/node/index-browser.js.map +0 -1
  276. package/dist/node/index-node.d.ts +0 -49
  277. package/dist/node/index-node.js +0 -50
  278. package/dist/node/index-node.js.map +0 -1
  279. package/dist/node/index.d.ts +0 -31
  280. package/dist/node/index.js +0 -93
  281. package/dist/node/index.js.map +0 -1
  282. package/dist/node/index.mjs +0 -0
  283. package/dist/node/interfaces.d.ts +0 -23
  284. package/dist/node/interfaces.js +0 -2
  285. package/dist/node/interfaces.js.map +0 -1
  286. package/dist/node/nobleabstraction.d.ts +0 -26
  287. package/dist/node/nobleabstraction.js +0 -123
  288. package/dist/node/nobleabstraction.js.map +0 -1
  289. package/dist/node/poweredup-browser.d.ts +0 -50
  290. package/dist/node/poweredup-browser.js +0 -216
  291. package/dist/node/poweredup-browser.js.map +0 -1
  292. package/dist/node/poweredup-node.d.ts +0 -54
  293. package/dist/node/poweredup-node.js +0 -173
  294. package/dist/node/poweredup-node.js.map +0 -1
  295. package/dist/node/poweredup.d.ts +0 -83
  296. package/dist/node/poweredup.js +0 -542
  297. package/dist/node/poweredup.js.map +0 -1
  298. package/dist/node/protocol-wedo.d.ts +0 -158
  299. package/dist/node/protocol-wedo.js +0 -342
  300. package/dist/node/protocol-wedo.js.map +0 -1
  301. package/dist/node/protocol.d.ts +0 -340
  302. package/dist/node/protocol.js +0 -730
  303. package/dist/node/protocol.js.map +0 -1
  304. package/dist/node/types.d.ts +0 -408
  305. package/dist/node/types.js +0 -291
  306. package/dist/node/types.js.map +0 -1
  307. package/dist/node/utils.d.ts +0 -12
  308. package/dist/node/utils.js +0 -90
  309. package/dist/node/utils.js.map +0 -1
  310. package/dist/node/webbleabstraction.d.ts +0 -26
  311. package/dist/node/webbleabstraction.js +0 -104
  312. package/dist/node/webbleabstraction.js.map +0 -1
  313. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"duplotrainbase.js","sourceRoot":"","sources":["../../../src/hubs/duplotrainbase.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAGtC;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IAGhC,MAAM,CAAC,gBAAgB,CAAE,UAAsB;QAClD,OAAO,CACH,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,aAAa,CAAC,YAAY;YACrC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;YAChG,UAAU,CAAC,aAAa,CAAC,gBAAgB;YACzC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACpD,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,CAClG,CAAC;IACN,CAAC;IAGD,YAAa,MAAuB;QAChC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACzC,CAAC;IAGM,KAAK,CAAC,OAAO;QAChB,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACxC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;CAGJ;AAED,MAAM,CAAC,MAAM,OAAO,GAAiC;IACjD,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,EAAE;IACX,aAAa,EAAE,EAAE;CACpB,CAAC"}
@@ -1,19 +0,0 @@
1
- import { Peripheral } from "@stoprocent/noble";
2
- import { IBLEAbstraction } from "../interfaces";
3
- import { LPF2Hub } from "./lpf2hub";
4
- /**
5
- * The Hub is emitted if the discovered device is a Hub.
6
- * @class Hub
7
- * @extends LPF2Hub
8
- * @extends BaseHub
9
- */
10
- export declare class Hub extends LPF2Hub {
11
- static IsHub(peripheral: Peripheral): boolean;
12
- protected _currentPort: number;
13
- constructor(device: IBLEAbstraction);
14
- connect(): Promise<void>;
15
- protected _checkFirmware(version: string): void;
16
- }
17
- export declare const PortMap: {
18
- [portName: string]: number;
19
- };
@@ -1,44 +0,0 @@
1
- import { compareVersions } from "compare-versions";
2
- import { LPF2Hub } from "./lpf2hub";
3
- import * as Consts from "../consts";
4
- import Debug from "debug";
5
- const debug = Debug("hub");
6
- /**
7
- * The Hub is emitted if the discovered device is a Hub.
8
- * @class Hub
9
- * @extends LPF2Hub
10
- * @extends BaseHub
11
- */
12
- export class Hub extends LPF2Hub {
13
- static IsHub(peripheral) {
14
- return (peripheral.advertisement &&
15
- peripheral.advertisement.serviceUuids &&
16
- peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 &&
17
- peripheral.advertisement.manufacturerData &&
18
- peripheral.advertisement.manufacturerData.length > 3 &&
19
- peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.HUB_ID);
20
- }
21
- constructor(device) {
22
- super(device, PortMap, Consts.HubType.HUB);
23
- this._currentPort = 0x3b;
24
- debug("Discovered Powered UP Hub");
25
- }
26
- async connect() {
27
- debug("Connecting to Powered UP Hub");
28
- await super.connect();
29
- debug("Connect completed");
30
- }
31
- _checkFirmware(version) {
32
- if (compareVersions("1.1.00.0004", version) === 1) {
33
- throw new Error(`Your Powered Up Hub's (${this.name}) firmware is out of date and unsupported by this library. Please update it via the official Powered Up app.`);
34
- }
35
- }
36
- }
37
- export const PortMap = {
38
- "A": 0,
39
- "B": 1,
40
- "HUB_LED": 50,
41
- "CURRENT_SENSOR": 59,
42
- "VOLTAGE_SENSOR": 60
43
- };
44
- //# sourceMappingURL=hub.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hub.js","sourceRoot":"","sources":["../../../src/hubs/hub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAG3B;;;;;GAKG;AACH,MAAM,OAAO,GAAI,SAAQ,OAAO;IAGrB,MAAM,CAAC,KAAK,CAAE,UAAsB;QACvC,OAAO,CACH,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,aAAa,CAAC,YAAY;YACrC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;YAChG,UAAU,CAAC,aAAa,CAAC,gBAAgB;YACzC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACpD,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,mBAAmB,CAAC,MAAM,CACrF,CAAC;IACN,CAAC;IAID,YAAa,MAAuB;QAChC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAHrC,iBAAY,GAAG,IAAI,CAAC;QAI1B,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACvC,CAAC;IAGM,KAAK,CAAC,OAAO;QAChB,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;IAGS,cAAc,CAAE,OAAe;QACrC,IAAI,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,8GAA8G,CAAC,CAAC;QACvK,CAAC;IACL,CAAC;CAGJ;AAED,MAAM,CAAC,MAAM,OAAO,GAAiC;IACjD,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;CACvB,CAAC"}
@@ -1,48 +0,0 @@
1
- import { BaseHub } from "./basehub";
2
- /**
3
- * @class LPF2Hub
4
- * @extends BaseHub
5
- */
6
- export declare class LPF2Hub extends BaseHub {
7
- private _messageBuffer;
8
- private _propertyRequestCallbacks;
9
- connect(): Promise<void>;
10
- /**
11
- * Shutdown the Hub.
12
- * @method LPF2Hub#shutdown
13
- * @returns {Promise} Resolved upon successful disconnect.
14
- */
15
- shutdown(): any;
16
- /**
17
- * Set the name of the Hub.
18
- * @method LPF2Hub#setName
19
- * @param {string} name New name of the hub (14 characters or less, ASCII only).
20
- * @returns {Promise} Resolved upon successful issuance of command.
21
- */
22
- setName(name: string): Promise<void>;
23
- send(message: Buffer, uuid: string): any;
24
- subscribe(portId: number, deviceType: number, mode: number): any;
25
- unsubscribe(portId: number, mode: number): any;
26
- /**
27
- * Combines two ports with into a single virtual port.
28
- *
29
- * Note: The devices attached to the ports must be of the same device type.
30
- * @method LPF2Hub#createVirtualPort
31
- * @param {string} firstPortName First port name
32
- * @param {string} secondPortName Second port name
33
- * @returns {Promise} Resolved upon successful issuance of command.
34
- */
35
- createVirtualPort(firstPortName: string, secondPortName: string): any;
36
- protected _checkFirmware(version: string): void;
37
- private _parseMessage;
38
- private _requestHubPropertyValue;
39
- private _requestHubPropertyReports;
40
- private _parseHubPropertyResponse;
41
- private _parsePortMessage;
42
- private _sendPortInformationRequest;
43
- private _parsePortInformationResponse;
44
- private _sendModeInformationRequest;
45
- private _parseModeInformationResponse;
46
- private _parsePortAction;
47
- private _parseSensorMessage;
48
- }
@@ -1,314 +0,0 @@
1
- import { BaseHub } from "./basehub";
2
- import * as Consts from "../consts";
3
- import { decodeMACAddress, decodeVersion, toBin, toHex } from "../utils";
4
- import Debug from "debug";
5
- const debug = Debug("lpf2hub");
6
- const modeInfoDebug = Debug("lpf2hubmodeinfo");
7
- /**
8
- * @class LPF2Hub
9
- * @extends BaseHub
10
- */
11
- export class LPF2Hub extends BaseHub {
12
- constructor() {
13
- super(...arguments);
14
- this._messageBuffer = Buffer.alloc(0);
15
- this._propertyRequestCallbacks = {};
16
- }
17
- async connect() {
18
- debug("LPF2Hub connecting");
19
- await super.connect();
20
- await this._bleDevice.discoverCharacteristicsForService(Consts.BLEService.LPF2_HUB);
21
- this._bleDevice.subscribeToCharacteristic(Consts.BLECharacteristic.LPF2_ALL, this._parseMessage.bind(this));
22
- await this._requestHubPropertyReports(Consts.HubPropertyPayload.BUTTON_STATE);
23
- await this._requestHubPropertyValue(Consts.HubPropertyPayload.FW_VERSION);
24
- await this._requestHubPropertyValue(Consts.HubPropertyPayload.HW_VERSION);
25
- await this._requestHubPropertyReports(Consts.HubPropertyPayload.RSSI);
26
- await this._requestHubPropertyReports(Consts.HubPropertyPayload.BATTERY_VOLTAGE);
27
- await this._requestHubPropertyValue(Consts.HubPropertyPayload.PRIMARY_MAC_ADDRESS);
28
- this.emit("connect");
29
- debug("LPF2Hub connected");
30
- }
31
- /**
32
- * Shutdown the Hub.
33
- * @method LPF2Hub#shutdown
34
- * @returns {Promise} Resolved upon successful disconnect.
35
- */
36
- shutdown() {
37
- return this.send(Buffer.from([0x02, 0x01]), Consts.BLECharacteristic.LPF2_ALL);
38
- }
39
- /**
40
- * Set the name of the Hub.
41
- * @method LPF2Hub#setName
42
- * @param {string} name New name of the hub (14 characters or less, ASCII only).
43
- * @returns {Promise} Resolved upon successful issuance of command.
44
- */
45
- async setName(name) {
46
- if (name.length > 14) {
47
- throw new Error("Name must be 14 characters or less");
48
- }
49
- let data = Buffer.from([0x01, 0x01, 0x01]);
50
- data = Buffer.concat([data, Buffer.from(name, "ascii")]);
51
- // Send this twice, as sometimes the first time doesn't take
52
- await this.send(data, Consts.BLECharacteristic.LPF2_ALL);
53
- await this.send(data, Consts.BLECharacteristic.LPF2_ALL);
54
- this._name = name;
55
- }
56
- send(message, uuid) {
57
- message = Buffer.concat([Buffer.alloc(2), message]);
58
- message[0] = message.length;
59
- debug("Sent Message (LPF2_ALL)", message);
60
- return this._bleDevice.writeToCharacteristic(uuid, message);
61
- }
62
- subscribe(portId, deviceType, mode) {
63
- return this.send(Buffer.from([0x41, portId, mode, 0x01, 0x00, 0x00, 0x00, 0x01]), Consts.BLECharacteristic.LPF2_ALL);
64
- }
65
- unsubscribe(portId, mode) {
66
- return this.send(Buffer.from([0x41, portId, mode, 0x01, 0x00, 0x00, 0x00, 0x00]), Consts.BLECharacteristic.LPF2_ALL);
67
- }
68
- /**
69
- * Combines two ports with into a single virtual port.
70
- *
71
- * Note: The devices attached to the ports must be of the same device type.
72
- * @method LPF2Hub#createVirtualPort
73
- * @param {string} firstPortName First port name
74
- * @param {string} secondPortName Second port name
75
- * @returns {Promise} Resolved upon successful issuance of command.
76
- */
77
- createVirtualPort(firstPortName, secondPortName) {
78
- const firstDevice = this.getDeviceAtPort(firstPortName);
79
- if (!firstDevice) {
80
- throw new Error(`Port ${firstPortName} does not have an attached device`);
81
- }
82
- const secondDevice = this.getDeviceAtPort(secondPortName);
83
- if (!secondDevice) {
84
- throw new Error(`Port ${secondPortName} does not have an attached device`);
85
- }
86
- if (firstDevice.type !== secondDevice.type) {
87
- throw new Error(`Both devices must be of the same type to create a virtual port`);
88
- }
89
- return this.send(Buffer.from([0x61, 0x01, firstDevice.portId, secondDevice.portId]), Consts.BLECharacteristic.LPF2_ALL);
90
- }
91
- _checkFirmware(version) {
92
- return;
93
- }
94
- _parseMessage(data) {
95
- if (data) {
96
- this._messageBuffer = Buffer.concat([this._messageBuffer, data]);
97
- }
98
- if (this._messageBuffer.length <= 0) {
99
- return;
100
- }
101
- const len = this._messageBuffer[0];
102
- if (len <= this._messageBuffer.length) {
103
- const message = this._messageBuffer.slice(0, len);
104
- this._messageBuffer = this._messageBuffer.slice(len);
105
- debug("Received Message (LPF2_ALL)", message);
106
- switch (message[2]) {
107
- case Consts.MessageType.HUB_PROPERTIES: {
108
- const property = message[3];
109
- const callback = this._propertyRequestCallbacks[property];
110
- if (callback) {
111
- callback(message);
112
- }
113
- else {
114
- this._parseHubPropertyResponse(message);
115
- }
116
- delete this._propertyRequestCallbacks[property];
117
- break;
118
- }
119
- case Consts.MessageType.HUB_ATTACHED_IO: {
120
- this._parsePortMessage(message);
121
- break;
122
- }
123
- case Consts.MessageType.PORT_INFORMATION: {
124
- this._parsePortInformationResponse(message);
125
- break;
126
- }
127
- case Consts.MessageType.PORT_MODE_INFORMATION: {
128
- this._parseModeInformationResponse(message);
129
- break;
130
- }
131
- case Consts.MessageType.PORT_VALUE_SINGLE: {
132
- this._parseSensorMessage(message);
133
- break;
134
- }
135
- case Consts.MessageType.PORT_OUTPUT_COMMAND_FEEDBACK: {
136
- this._parsePortAction(message);
137
- break;
138
- }
139
- }
140
- if (this._messageBuffer.length > 0) {
141
- this._parseMessage();
142
- }
143
- }
144
- }
145
- _requestHubPropertyValue(property) {
146
- return new Promise((resolve) => {
147
- this._propertyRequestCallbacks[property] = (message) => {
148
- this._parseHubPropertyResponse(message);
149
- return resolve();
150
- };
151
- this.send(Buffer.from([0x01, property, 0x05]), Consts.BLECharacteristic.LPF2_ALL);
152
- });
153
- }
154
- _requestHubPropertyReports(property) {
155
- return this.send(Buffer.from([0x01, property, 0x02]), Consts.BLECharacteristic.LPF2_ALL);
156
- }
157
- _parseHubPropertyResponse(message) {
158
- if (message[3] === Consts.HubPropertyPayload.BUTTON_STATE) {
159
- if (message[5] === 1) {
160
- /**
161
- * Emits when a button is pressed.
162
- * @event LPF2Hub#button
163
- * @param {string} button
164
- * @param {ButtonState} state
165
- */
166
- this.emit("button", { event: Consts.ButtonState.PRESSED });
167
- return;
168
- }
169
- else if (message[5] === 0) {
170
- this.emit("button", { event: Consts.ButtonState.RELEASED });
171
- return;
172
- }
173
- }
174
- else if (message[3] === Consts.HubPropertyPayload.FW_VERSION) {
175
- this._firmwareVersion = decodeVersion(message.readInt32LE(5));
176
- this._checkFirmware(this._firmwareVersion);
177
- }
178
- else if (message[3] === Consts.HubPropertyPayload.HW_VERSION) {
179
- this._hardwareVersion = decodeVersion(message.readInt32LE(5));
180
- }
181
- else if (message[3] === Consts.HubPropertyPayload.RSSI) {
182
- const rssi = message.readInt8(5);
183
- if (rssi !== 0) {
184
- this._rssi = rssi;
185
- this.emit("rssi", { rssi: this._rssi });
186
- }
187
- }
188
- else if (message[3] === Consts.HubPropertyPayload.PRIMARY_MAC_ADDRESS) {
189
- this._primaryMACAddress = decodeMACAddress(message.slice(5));
190
- }
191
- else if (message[3] === Consts.HubPropertyPayload.BATTERY_VOLTAGE) {
192
- const batteryLevel = message[5];
193
- if (batteryLevel !== this._batteryLevel) {
194
- this._batteryLevel = batteryLevel;
195
- this.emit("batteryLevel", { batteryLevel });
196
- }
197
- }
198
- }
199
- async _parsePortMessage(message) {
200
- const portId = message[3];
201
- const event = message[4];
202
- const deviceType = event ? message.readUInt16LE(5) : 0;
203
- if (event === Consts.Event.ATTACHED_IO) {
204
- if (modeInfoDebug.enabled) {
205
- const deviceTypeName = Consts.DeviceTypeNames[message[5]] || "Unknown";
206
- modeInfoDebug(`Port ${toHex(portId)}, type ${toHex(deviceType, 4)} (${deviceTypeName})`);
207
- const hwVersion = decodeVersion(message.readInt32LE(7));
208
- const swVersion = decodeVersion(message.readInt32LE(11));
209
- modeInfoDebug(`Port ${toHex(portId)}, hardware version ${hwVersion}, software version ${swVersion}`);
210
- await this._sendPortInformationRequest(portId);
211
- }
212
- const device = this._createDevice(deviceType, portId);
213
- this._attachDevice(device);
214
- }
215
- else if (event === Consts.Event.DETACHED_IO) {
216
- const device = this._getDeviceByPortId(portId);
217
- if (device) {
218
- this._detachDevice(device);
219
- if (this.isPortVirtual(portId)) {
220
- const portName = this.getPortNameForPortId(portId);
221
- if (portName) {
222
- delete this._portMap[portName];
223
- }
224
- this._virtualPorts = this._virtualPorts.filter((virtualPortId) => virtualPortId !== portId);
225
- }
226
- }
227
- }
228
- else if (event === Consts.Event.ATTACHED_VIRTUAL_IO) {
229
- const firstPortName = this.getPortNameForPortId(message[7]);
230
- const secondPortName = this.getPortNameForPortId(message[8]);
231
- // @ts-ignore NK These should never be undefined
232
- const virtualPortName = firstPortName + secondPortName;
233
- const virtualPortId = message[3];
234
- this._portMap[virtualPortName] = virtualPortId;
235
- this._virtualPorts.push(virtualPortId);
236
- const device = this._createDevice(deviceType, virtualPortId);
237
- this._attachDevice(device);
238
- }
239
- }
240
- async _sendPortInformationRequest(port) {
241
- await this.send(Buffer.from([0x21, port, 0x01]), Consts.BLECharacteristic.LPF2_ALL);
242
- await this.send(Buffer.from([0x21, port, 0x02]), Consts.BLECharacteristic.LPF2_ALL); // Mode combinations
243
- }
244
- async _parsePortInformationResponse(message) {
245
- const port = message[3];
246
- if (message[4] === 2) {
247
- const modeCombinationMasks = [];
248
- for (let i = 5; i < message.length; i += 2) {
249
- modeCombinationMasks.push(message.readUInt16LE(i));
250
- }
251
- modeInfoDebug(`Port ${toHex(port)}, mode combinations [${modeCombinationMasks.map((c) => toBin(c, 0)).join(", ")}]`);
252
- return;
253
- }
254
- const count = message[6];
255
- const input = toBin(message.readUInt16LE(7), count);
256
- const output = toBin(message.readUInt16LE(9), count);
257
- modeInfoDebug(`Port ${toHex(port)}, total modes ${count}, input modes ${input}, output modes ${output}`);
258
- for (let i = 0; i < count; i++) {
259
- await this._sendModeInformationRequest(port, i, Consts.ModeInformationType.NAME);
260
- await this._sendModeInformationRequest(port, i, Consts.ModeInformationType.RAW);
261
- await this._sendModeInformationRequest(port, i, Consts.ModeInformationType.PCT);
262
- await this._sendModeInformationRequest(port, i, Consts.ModeInformationType.SI);
263
- await this._sendModeInformationRequest(port, i, Consts.ModeInformationType.SYMBOL);
264
- await this._sendModeInformationRequest(port, i, Consts.ModeInformationType.VALUE_FORMAT);
265
- }
266
- }
267
- _sendModeInformationRequest(port, mode, type) {
268
- return this.send(Buffer.from([0x22, port, mode, type]), Consts.BLECharacteristic.LPF2_ALL);
269
- }
270
- _parseModeInformationResponse(message) {
271
- const port = toHex(message[3]);
272
- const mode = message[4];
273
- const type = message[5];
274
- switch (type) {
275
- case Consts.ModeInformationType.NAME:
276
- modeInfoDebug(`Port ${port}, mode ${mode}, name ${message.slice(6, message.length).toString()}`);
277
- break;
278
- case Consts.ModeInformationType.RAW:
279
- modeInfoDebug(`Port ${port}, mode ${mode}, RAW min ${message.readFloatLE(6)}, max ${message.readFloatLE(10)}`);
280
- break;
281
- case Consts.ModeInformationType.PCT:
282
- modeInfoDebug(`Port ${port}, mode ${mode}, PCT min ${message.readFloatLE(6)}, max ${message.readFloatLE(10)}`);
283
- break;
284
- case Consts.ModeInformationType.SI:
285
- modeInfoDebug(`Port ${port}, mode ${mode}, SI min ${message.readFloatLE(6)}, max ${message.readFloatLE(10)}`);
286
- break;
287
- case Consts.ModeInformationType.SYMBOL:
288
- modeInfoDebug(`Port ${port}, mode ${mode}, SI symbol ${message.slice(6, message.length).toString()}`);
289
- break;
290
- case Consts.ModeInformationType.VALUE_FORMAT:
291
- const numValues = message[6];
292
- const dataType = ["8bit", "16bit", "32bit", "float"][message[7]];
293
- const totalFigures = message[8];
294
- const decimals = message[9];
295
- modeInfoDebug(`Port ${port}, mode ${mode}, Value ${numValues} x ${dataType}, Decimal format ${totalFigures}.${decimals}`);
296
- }
297
- }
298
- _parsePortAction(message) {
299
- for (let offset = 3; offset < message.length; offset += 2) {
300
- const device = this._getDeviceByPortId(message[offset]);
301
- if (device) {
302
- device.finish(message[offset + 1]);
303
- }
304
- }
305
- }
306
- _parseSensorMessage(message) {
307
- const portId = message[3];
308
- const device = this._getDeviceByPortId(portId);
309
- if (device) {
310
- device.receive(message);
311
- }
312
- }
313
- }
314
- //# sourceMappingURL=lpf2hub.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lpf2hub.js","sourceRoot":"","sources":["../../../src/hubs/lpf2hub.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { Peripheral } from "@stoprocent/noble";
2
- import { IBLEAbstraction } from "../interfaces";
3
- import { LPF2Hub } from "./lpf2hub";
4
- /**
5
- * Mario is emitted if the discovered device is a LEGO Super Mario brick.
6
- * @class Mario
7
- * @extends LPF2Hub
8
- * @extends BaseHub
9
- */
10
- export declare class Mario extends LPF2Hub {
11
- static IsMario(peripheral: Peripheral): boolean;
12
- constructor(device: IBLEAbstraction);
13
- connect(): Promise<void>;
14
- }
15
- export declare const PortMap: {
16
- [portName: string]: number;
17
- };
@@ -1,31 +0,0 @@
1
- import { LPF2Hub } from "./lpf2hub";
2
- import * as Consts from "../consts";
3
- import Debug from "debug";
4
- const debug = Debug("movehub");
5
- /**
6
- * Mario is emitted if the discovered device is a LEGO Super Mario brick.
7
- * @class Mario
8
- * @extends LPF2Hub
9
- * @extends BaseHub
10
- */
11
- export class Mario extends LPF2Hub {
12
- static IsMario(peripheral) {
13
- return (peripheral.advertisement &&
14
- peripheral.advertisement.serviceUuids &&
15
- peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 &&
16
- peripheral.advertisement.manufacturerData &&
17
- peripheral.advertisement.manufacturerData.length > 3 &&
18
- peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.MARIO_ID);
19
- }
20
- constructor(device) {
21
- super(device, PortMap, Consts.HubType.MARIO);
22
- debug("Discovered Mario");
23
- }
24
- async connect() {
25
- debug("Connecting to Mario");
26
- await super.connect();
27
- debug("Connect completed");
28
- }
29
- }
30
- export const PortMap = {};
31
- //# sourceMappingURL=mario.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mario.js","sourceRoot":"","sources":["../../../src/hubs/mario.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAG/B;;;;;GAKG;AACH,MAAM,OAAO,KAAM,SAAQ,OAAO;IAGvB,MAAM,CAAC,OAAO,CAAE,UAAsB;QACzC,OAAO,CACH,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,aAAa,CAAC,YAAY;YACrC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;YAChG,UAAU,CAAC,aAAa,CAAC,gBAAgB;YACzC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACpD,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CACvF,CAAC;IACN,CAAC;IAED,YAAa,MAAuB;QAChC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC9B,CAAC;IAGM,KAAK,CAAC,OAAO;QAChB,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;CAGJ;AAED,MAAM,CAAC,MAAM,OAAO,GAAiC,EACpD,CAAC"}
@@ -1,18 +0,0 @@
1
- import { Peripheral } from "@stoprocent/noble";
2
- import { IBLEAbstraction } from "../interfaces";
3
- import { LPF2Hub } from "./lpf2hub";
4
- /**
5
- * The MoveHub is emitted if the discovered device is a Move Hub.
6
- * @class MoveHub
7
- * @extends LPF2Hub
8
- * @extends BaseHub
9
- */
10
- export declare class MoveHub extends LPF2Hub {
11
- static IsMoveHub(peripheral: Peripheral): boolean;
12
- constructor(device: IBLEAbstraction);
13
- connect(): Promise<void>;
14
- protected _checkFirmware(version: string): void;
15
- }
16
- export declare const PortMap: {
17
- [portName: string]: number;
18
- };
@@ -1,46 +0,0 @@
1
- import { compareVersions } from "compare-versions";
2
- import { LPF2Hub } from "./lpf2hub";
3
- import * as Consts from "../consts";
4
- import Debug from "debug";
5
- const debug = Debug("movehub");
6
- /**
7
- * The MoveHub is emitted if the discovered device is a Move Hub.
8
- * @class MoveHub
9
- * @extends LPF2Hub
10
- * @extends BaseHub
11
- */
12
- export class MoveHub extends LPF2Hub {
13
- static IsMoveHub(peripheral) {
14
- return (peripheral.advertisement &&
15
- peripheral.advertisement.serviceUuids &&
16
- peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 &&
17
- peripheral.advertisement.manufacturerData &&
18
- peripheral.advertisement.manufacturerData.length > 3 &&
19
- peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.MOVE_HUB_ID);
20
- }
21
- constructor(device) {
22
- super(device, PortMap, Consts.HubType.MOVE_HUB);
23
- debug("Discovered Move Hub");
24
- }
25
- async connect() {
26
- debug("Connecting to Move Hub");
27
- await super.connect();
28
- debug("Connect completed");
29
- }
30
- _checkFirmware(version) {
31
- if (compareVersions("2.0.00.0017", version) === 1) {
32
- throw new Error(`Your Move Hub's (${this.name}) firmware is out of date and unsupported by this library. Please update it via the official Powered Up app.`);
33
- }
34
- }
35
- }
36
- export const PortMap = {
37
- "A": 0,
38
- "B": 1,
39
- "C": 2,
40
- "D": 3,
41
- "HUB_LED": 50,
42
- "TILT_SENSOR": 58,
43
- "CURRENT_SENSOR": 59,
44
- "VOLTAGE_SENSOR": 60
45
- };
46
- //# sourceMappingURL=movehub.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"movehub.js","sourceRoot":"","sources":["../../../src/hubs/movehub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAG/B;;;;;GAKG;AACH,MAAM,OAAO,OAAQ,SAAQ,OAAO;IAGzB,MAAM,CAAC,SAAS,CAAE,UAAsB;QAC3C,OAAO,CACH,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,aAAa,CAAC,YAAY;YACrC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;YAChG,UAAU,CAAC,aAAa,CAAC,gBAAgB;YACzC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACpD,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAC1F,CAAC;IACN,CAAC;IAED,YAAa,MAAuB;QAChC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACjC,CAAC;IAGM,KAAK,CAAC,OAAO;QAChB,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAChC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;IAGS,cAAc,CAAE,OAAe;QACrC,IAAI,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,8GAA8G,CAAC,CAAC;QACjK,CAAC;IACL,CAAC;CAGJ;AAED,MAAM,CAAC,MAAM,OAAO,GAAiC;IACjD,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;CACvB,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Peripheral } from "@stoprocent/noble";
2
- import { IBLEAbstraction } from "../interfaces";
3
- import { LPF2Hub } from "./lpf2hub";
4
- /**
5
- * The RemoteControl is emitted if the discovered device is a Remote Control.
6
- * @class RemoteControl
7
- * @extends LPF2Hub
8
- * @extends BaseHub
9
- */
10
- export declare class RemoteControl extends LPF2Hub {
11
- static IsRemoteControl(peripheral: Peripheral): boolean;
12
- constructor(device: IBLEAbstraction);
13
- connect(): Promise<void>;
14
- }
15
- export declare const PortMap: {
16
- [portName: string]: number;
17
- };
@@ -1,37 +0,0 @@
1
- import { LPF2Hub } from "./lpf2hub";
2
- import * as Consts from "../consts";
3
- import Debug from "debug";
4
- const debug = Debug("remotecontrol");
5
- /**
6
- * The RemoteControl is emitted if the discovered device is a Remote Control.
7
- * @class RemoteControl
8
- * @extends LPF2Hub
9
- * @extends BaseHub
10
- */
11
- export class RemoteControl extends LPF2Hub {
12
- static IsRemoteControl(peripheral) {
13
- return (peripheral.advertisement &&
14
- peripheral.advertisement.serviceUuids &&
15
- peripheral.advertisement.serviceUuids.indexOf(Consts.BLEService.LPF2_HUB.replace(/-/g, "")) >= 0 &&
16
- peripheral.advertisement.manufacturerData &&
17
- peripheral.advertisement.manufacturerData.length > 3 &&
18
- peripheral.advertisement.manufacturerData[3] === Consts.BLEManufacturerData.REMOTE_CONTROL_ID);
19
- }
20
- constructor(device) {
21
- super(device, PortMap, Consts.HubType.REMOTE_CONTROL);
22
- debug("Discovered Powered UP Remote");
23
- }
24
- async connect() {
25
- debug("Connecting to Powered UP Remote");
26
- await super.connect();
27
- debug("Connect completed");
28
- }
29
- }
30
- export const PortMap = {
31
- "LEFT": 0,
32
- "RIGHT": 1,
33
- "HUB_LED": 52,
34
- "VOLTAGE_SENSOR": 59,
35
- "REMOTE_CONTROL_RSSI": 60
36
- };
37
- //# sourceMappingURL=remotecontrol.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remotecontrol.js","sourceRoot":"","sources":["../../../src/hubs/remotecontrol.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;AAGrC;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO;IAG/B,MAAM,CAAC,eAAe,CAAE,UAAsB;QACjD,OAAO,CACH,UAAU,CAAC,aAAa;YACxB,UAAU,CAAC,aAAa,CAAC,YAAY;YACrC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;YAChG,UAAU,CAAC,aAAa,CAAC,gBAAgB;YACzC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACpD,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAChG,CAAC;IACN,CAAC;IAGD,YAAa,MAAuB;QAChC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACtD,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1C,CAAC;IAGM,KAAK,CAAC,OAAO;QAChB,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACzC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;CAGJ;AAED,MAAM,CAAC,MAAM,OAAO,GAAiC;IACjD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE,EAAE;IACpB,qBAAqB,EAAE,EAAE;CAC5B,CAAC"}