node-poweredup 8.0.5 → 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 (763) hide show
  1. package/.drone.yml +2 -2
  2. package/.gitmodules +0 -3
  3. package/README.md +6 -11
  4. package/dist/color.d.ts +7 -0
  5. package/dist/color.d.ts.map +1 -0
  6. package/dist/color.js +15 -0
  7. package/dist/color.js.map +1 -0
  8. package/dist/consts.d.ts +645 -0
  9. package/dist/consts.d.ts.map +1 -0
  10. package/dist/consts.js +675 -0
  11. package/dist/consts.js.map +1 -0
  12. package/dist/devices/absolutemotor.d.ts +41 -0
  13. package/dist/devices/absolutemotor.d.ts.map +1 -0
  14. package/dist/devices/absolutemotor.js +115 -0
  15. package/dist/devices/absolutemotor.js.map +1 -0
  16. package/dist/devices/basicmotor.d.ts +37 -0
  17. package/dist/devices/basicmotor.d.ts.map +1 -0
  18. package/dist/devices/basicmotor.js +57 -0
  19. package/dist/devices/basicmotor.js.map +1 -0
  20. package/dist/devices/colordistancesensor.d.ts +74 -0
  21. package/dist/devices/colordistancesensor.d.ts.map +1 -0
  22. package/dist/devices/colordistancesensor.js +278 -0
  23. package/dist/devices/colordistancesensor.js.map +1 -0
  24. package/dist/devices/currentsensor.d.ts +17 -0
  25. package/dist/devices/currentsensor.d.ts.map +1 -0
  26. package/dist/devices/currentsensor.js +55 -0
  27. package/dist/devices/currentsensor.js.map +1 -0
  28. package/dist/devices/device.d.ts +72 -0
  29. package/dist/devices/device.d.ts.map +1 -0
  30. package/dist/devices/device.js +162 -0
  31. package/dist/devices/device.js.map +1 -0
  32. package/dist/devices/duplotrainbasecolorsensor.d.ts +20 -0
  33. package/dist/devices/duplotrainbasecolorsensor.d.ts.map +1 -0
  34. package/dist/devices/duplotrainbasecolorsensor.js +77 -0
  35. package/dist/devices/duplotrainbasecolorsensor.js.map +1 -0
  36. package/dist/devices/duplotrainbasemotor.d.ts +10 -0
  37. package/dist/devices/duplotrainbasemotor.d.ts.map +1 -0
  38. package/dist/devices/duplotrainbasemotor.js +12 -0
  39. package/dist/devices/duplotrainbasemotor.js.map +1 -0
  40. package/dist/devices/duplotrainbasespeaker.d.ts +27 -0
  41. package/dist/devices/duplotrainbasespeaker.d.ts.map +1 -0
  42. package/dist/devices/duplotrainbasespeaker.js +38 -0
  43. package/dist/devices/duplotrainbasespeaker.js.map +1 -0
  44. package/dist/devices/duplotrainbasespeedometer.d.ts +17 -0
  45. package/dist/devices/duplotrainbasespeedometer.d.ts.map +1 -0
  46. package/dist/devices/duplotrainbasespeedometer.js +34 -0
  47. package/dist/devices/duplotrainbasespeedometer.js.map +1 -0
  48. package/dist/devices/hubled.d.ts +28 -0
  49. package/dist/devices/hubled.d.ts.map +1 -0
  50. package/dist/devices/hubled.js +58 -0
  51. package/dist/devices/hubled.js.map +1 -0
  52. package/dist/devices/light.d.ts +24 -0
  53. package/dist/devices/light.d.ts.map +1 -0
  54. package/dist/devices/light.js +44 -0
  55. package/dist/devices/light.js.map +1 -0
  56. package/dist/devices/marioaccelerometer.d.ts +18 -0
  57. package/dist/devices/marioaccelerometer.d.ts.map +1 -0
  58. package/dist/devices/marioaccelerometer.js +50 -0
  59. package/dist/devices/marioaccelerometer.js.map +1 -0
  60. package/dist/devices/mariobarcodesensor.d.ts +18 -0
  61. package/dist/devices/mariobarcodesensor.d.ts.map +1 -0
  62. package/dist/devices/mariobarcodesensor.js +58 -0
  63. package/dist/devices/mariobarcodesensor.js.map +1 -0
  64. package/dist/devices/mariopantssensor.d.ts +17 -0
  65. package/dist/devices/mariopantssensor.d.ts.map +1 -0
  66. package/dist/devices/mariopantssensor.js +34 -0
  67. package/dist/devices/mariopantssensor.js.map +1 -0
  68. package/dist/devices/mediumlinearmotor.d.ts +10 -0
  69. package/dist/devices/mediumlinearmotor.d.ts.map +1 -0
  70. package/dist/devices/mediumlinearmotor.js +12 -0
  71. package/dist/devices/mediumlinearmotor.js.map +1 -0
  72. package/dist/devices/motionsensor.d.ts +17 -0
  73. package/dist/devices/motionsensor.d.ts.map +1 -0
  74. package/dist/devices/motionsensor.js +38 -0
  75. package/dist/devices/motionsensor.js.map +1 -0
  76. package/dist/devices/movehubmediumlinearmotor.d.ts +10 -0
  77. package/dist/devices/movehubmediumlinearmotor.d.ts.map +1 -0
  78. package/dist/devices/movehubmediumlinearmotor.js +12 -0
  79. package/dist/devices/movehubmediumlinearmotor.js.map +1 -0
  80. package/dist/devices/movehubtiltsensor.d.ts +17 -0
  81. package/dist/devices/movehubtiltsensor.d.ts.map +1 -0
  82. package/dist/devices/movehubtiltsensor.js +36 -0
  83. package/dist/devices/movehubtiltsensor.js.map +1 -0
  84. package/dist/devices/piezobuzzer.d.ts +17 -0
  85. package/dist/devices/piezobuzzer.d.ts.map +1 -0
  86. package/dist/devices/piezobuzzer.js +27 -0
  87. package/dist/devices/piezobuzzer.js.map +1 -0
  88. package/dist/devices/remotecontrolbutton.d.ts +20 -0
  89. package/dist/devices/remotecontrolbutton.d.ts.map +1 -0
  90. package/dist/devices/remotecontrolbutton.js +40 -0
  91. package/dist/devices/remotecontrolbutton.js.map +1 -0
  92. package/dist/devices/simplemediumlinearmotor.d.ts +10 -0
  93. package/dist/devices/simplemediumlinearmotor.d.ts.map +1 -0
  94. package/dist/devices/simplemediumlinearmotor.js +12 -0
  95. package/dist/devices/simplemediumlinearmotor.js.map +1 -0
  96. package/dist/devices/tachomotor.d.ts +65 -0
  97. package/dist/devices/tachomotor.d.ts.map +1 -0
  98. package/dist/devices/tachomotor.js +161 -0
  99. package/dist/devices/tachomotor.js.map +1 -0
  100. package/dist/devices/technic3x3colorlightmatrix.d.ts +22 -0
  101. package/dist/devices/technic3x3colorlightmatrix.d.ts.map +1 -0
  102. package/dist/devices/technic3x3colorlightmatrix.js +53 -0
  103. package/dist/devices/technic3x3colorlightmatrix.js.map +1 -0
  104. package/dist/devices/techniccolorsensor.d.ts +27 -0
  105. package/dist/devices/techniccolorsensor.d.ts.map +1 -0
  106. package/dist/devices/techniccolorsensor.js +71 -0
  107. package/dist/devices/techniccolorsensor.js.map +1 -0
  108. package/dist/devices/technicdistancesensor.d.ts +27 -0
  109. package/dist/devices/technicdistancesensor.d.ts.map +1 -0
  110. package/dist/devices/technicdistancesensor.js +57 -0
  111. package/dist/devices/technicdistancesensor.js.map +1 -0
  112. package/dist/devices/technicforcesensor.d.ts +19 -0
  113. package/dist/devices/technicforcesensor.d.ts.map +1 -0
  114. package/dist/devices/technicforcesensor.js +58 -0
  115. package/dist/devices/technicforcesensor.js.map +1 -0
  116. package/dist/devices/techniclargeangularmotor.d.ts +13 -0
  117. package/dist/devices/techniclargeangularmotor.d.ts.map +1 -0
  118. package/dist/devices/techniclargeangularmotor.js +12 -0
  119. package/dist/devices/techniclargeangularmotor.js.map +1 -0
  120. package/dist/devices/techniclargelinearmotor.d.ts +10 -0
  121. package/dist/devices/techniclargelinearmotor.d.ts.map +1 -0
  122. package/dist/devices/techniclargelinearmotor.js +12 -0
  123. package/dist/devices/techniclargelinearmotor.js.map +1 -0
  124. package/dist/devices/technicmediumangularmotor.d.ts +13 -0
  125. package/dist/devices/technicmediumangularmotor.d.ts.map +1 -0
  126. package/dist/devices/technicmediumangularmotor.js +12 -0
  127. package/dist/devices/technicmediumangularmotor.js.map +1 -0
  128. package/dist/devices/technicmediumhubaccelerometersensor.d.ts +17 -0
  129. package/dist/devices/technicmediumhubaccelerometersensor.d.ts.map +1 -0
  130. package/dist/devices/technicmediumhubaccelerometersensor.js +38 -0
  131. package/dist/devices/technicmediumhubaccelerometersensor.js.map +1 -0
  132. package/dist/devices/technicmediumhubgyrosensor.d.ts +17 -0
  133. package/dist/devices/technicmediumhubgyrosensor.d.ts.map +1 -0
  134. package/dist/devices/technicmediumhubgyrosensor.js +38 -0
  135. package/dist/devices/technicmediumhubgyrosensor.js.map +1 -0
  136. package/dist/devices/technicmediumhubtiltsensor.d.ts +38 -0
  137. package/dist/devices/technicmediumhubtiltsensor.d.ts.map +1 -0
  138. package/dist/devices/technicmediumhubtiltsensor.js +103 -0
  139. package/dist/devices/technicmediumhubtiltsensor.js.map +1 -0
  140. package/dist/devices/technicsmallangularmotor.d.ts +13 -0
  141. package/dist/devices/technicsmallangularmotor.d.ts.map +1 -0
  142. package/dist/devices/technicsmallangularmotor.js +12 -0
  143. package/dist/devices/technicsmallangularmotor.js.map +1 -0
  144. package/dist/devices/technicxlargelinearmotor.d.ts +10 -0
  145. package/dist/devices/technicxlargelinearmotor.d.ts.map +1 -0
  146. package/dist/devices/technicxlargelinearmotor.js +12 -0
  147. package/dist/devices/technicxlargelinearmotor.js.map +1 -0
  148. package/dist/devices/tiltsensor.d.ts +17 -0
  149. package/dist/devices/tiltsensor.d.ts.map +1 -0
  150. package/dist/devices/tiltsensor.js +36 -0
  151. package/dist/devices/tiltsensor.js.map +1 -0
  152. package/dist/devices/trainmotor.d.ts +10 -0
  153. package/dist/devices/trainmotor.d.ts.map +1 -0
  154. package/dist/devices/trainmotor.js +12 -0
  155. package/dist/devices/trainmotor.js.map +1 -0
  156. package/dist/devices/voltagesensor.d.ts +17 -0
  157. package/dist/devices/voltagesensor.d.ts.map +1 -0
  158. package/dist/devices/voltagesensor.js +59 -0
  159. package/dist/devices/voltagesensor.js.map +1 -0
  160. package/dist/hubs/basehub.d.ts +154 -0
  161. package/dist/hubs/basehub.d.ts.map +1 -0
  162. package/dist/hubs/basehub.js +383 -0
  163. package/dist/hubs/basehub.js.map +1 -0
  164. package/dist/hubs/duplotrainbase.d.ts +18 -0
  165. package/dist/hubs/duplotrainbase.d.ts.map +1 -0
  166. package/dist/hubs/duplotrainbase.js +35 -0
  167. package/dist/hubs/duplotrainbase.js.map +1 -0
  168. package/dist/hubs/hub.d.ts +20 -0
  169. package/dist/hubs/hub.d.ts.map +1 -0
  170. package/dist/hubs/hub.js +44 -0
  171. package/dist/hubs/hub.js.map +1 -0
  172. package/dist/hubs/lpf2hub.d.ts +46 -0
  173. package/dist/hubs/lpf2hub.d.ts.map +1 -0
  174. package/dist/hubs/lpf2hub.js +311 -0
  175. package/dist/hubs/lpf2hub.js.map +1 -0
  176. package/dist/hubs/mario.d.ts +18 -0
  177. package/dist/hubs/mario.d.ts.map +1 -0
  178. package/dist/hubs/mario.js +31 -0
  179. package/dist/hubs/mario.js.map +1 -0
  180. package/dist/hubs/movehub.d.ts +19 -0
  181. package/dist/hubs/movehub.d.ts.map +1 -0
  182. package/dist/hubs/movehub.js +46 -0
  183. package/dist/hubs/movehub.js.map +1 -0
  184. package/dist/hubs/remotecontrol.d.ts +18 -0
  185. package/dist/hubs/remotecontrol.d.ts.map +1 -0
  186. package/dist/hubs/remotecontrol.js +37 -0
  187. package/dist/hubs/remotecontrol.js.map +1 -0
  188. package/dist/hubs/technicmediumhub.d.ts +18 -0
  189. package/dist/hubs/technicmediumhub.d.ts.map +1 -0
  190. package/dist/hubs/technicmediumhub.js +42 -0
  191. package/dist/hubs/technicmediumhub.js.map +1 -0
  192. package/dist/hubs/technicsmallhub.d.ts +19 -0
  193. package/dist/hubs/technicsmallhub.d.ts.map +1 -0
  194. package/dist/hubs/technicsmallhub.js +41 -0
  195. package/dist/hubs/technicsmallhub.js.map +1 -0
  196. package/dist/hubs/wedo2smarthub.d.ts +39 -0
  197. package/dist/hubs/wedo2smarthub.d.ts.map +1 -0
  198. package/dist/hubs/wedo2smarthub.js +186 -0
  199. package/dist/hubs/wedo2smarthub.js.map +1 -0
  200. package/dist/index-browser.d.ts +2 -0
  201. package/dist/index-browser.d.ts.map +1 -0
  202. package/dist/index-browser.js +96 -0
  203. package/dist/index-browser.js.map +1 -0
  204. package/dist/index-node.d.ts +50 -0
  205. package/dist/index-node.d.ts.map +1 -0
  206. package/dist/index-node.js +50 -0
  207. package/dist/index-node.js.map +1 -0
  208. package/dist/interfaces.d.ts +24 -0
  209. package/dist/interfaces.d.ts.map +1 -0
  210. package/dist/interfaces.js +2 -0
  211. package/dist/interfaces.js.map +1 -0
  212. package/dist/nobleabstraction.d.ts +27 -0
  213. package/dist/nobleabstraction.d.ts.map +1 -0
  214. package/dist/nobleabstraction.js +121 -0
  215. package/dist/nobleabstraction.js.map +1 -0
  216. package/dist/node/color.js +2 -25
  217. package/dist/node/color.js.map +1 -1
  218. package/dist/node/commands.d.ts +299 -0
  219. package/dist/node/commands.js +672 -0
  220. package/dist/node/commands.js.map +1 -0
  221. package/dist/node/connection.d.ts +187 -0
  222. package/dist/node/connection.js +478 -0
  223. package/dist/node/connection.js.map +1 -0
  224. package/dist/node/consts.d.ts +21 -21
  225. package/dist/node/consts.js +57 -60
  226. package/dist/node/consts.js.map +1 -1
  227. package/dist/node/devices/absolutemotor.d.ts +0 -1
  228. package/dist/node/devices/absolutemotor.js +14 -37
  229. package/dist/node/devices/absolutemotor.js.map +1 -1
  230. package/dist/node/devices/basicmotor.d.ts +3 -3
  231. package/dist/node/devices/basicmotor.js +6 -29
  232. package/dist/node/devices/basicmotor.js.map +1 -1
  233. package/dist/node/devices/colordistancesensor.d.ts +4 -5
  234. package/dist/node/devices/colordistancesensor.js +11 -34
  235. package/dist/node/devices/colordistancesensor.js.map +1 -1
  236. package/dist/node/devices/currentsensor.d.ts +0 -1
  237. package/dist/node/devices/currentsensor.js +7 -30
  238. package/dist/node/devices/currentsensor.js.map +1 -1
  239. package/dist/node/devices/device.d.ts +5 -6
  240. package/dist/node/devices/device.js +3 -26
  241. package/dist/node/devices/device.js.map +1 -1
  242. package/dist/node/devices/duplotrainbasecolorsensor.d.ts +0 -1
  243. package/dist/node/devices/duplotrainbasecolorsensor.js +9 -32
  244. package/dist/node/devices/duplotrainbasecolorsensor.js.map +1 -1
  245. package/dist/node/devices/duplotrainbasemotor.js +3 -26
  246. package/dist/node/devices/duplotrainbasemotor.js.map +1 -1
  247. package/dist/node/devices/duplotrainbasespeaker.js +5 -28
  248. package/dist/node/devices/duplotrainbasespeaker.js.map +1 -1
  249. package/dist/node/devices/duplotrainbasespeedometer.d.ts +0 -1
  250. package/dist/node/devices/duplotrainbasespeedometer.js +7 -30
  251. package/dist/node/devices/duplotrainbasespeedometer.js.map +1 -1
  252. package/dist/node/devices/hubled.js +5 -28
  253. package/dist/node/devices/hubled.js.map +1 -1
  254. package/dist/node/devices/index.d.ts +14 -0
  255. package/dist/node/devices/index.js +154 -0
  256. package/dist/node/devices/index.js.map +1 -0
  257. package/dist/node/devices/led.d.ts +140 -0
  258. package/dist/node/devices/led.js +295 -0
  259. package/dist/node/devices/led.js.map +1 -0
  260. package/dist/node/devices/light.js +5 -28
  261. package/dist/node/devices/light.js.map +1 -1
  262. package/dist/node/devices/marioaccelerometer.d.ts +0 -1
  263. package/dist/node/devices/marioaccelerometer.js +7 -30
  264. package/dist/node/devices/marioaccelerometer.js.map +1 -1
  265. package/dist/node/devices/mariobarcodesensor.d.ts +0 -1
  266. package/dist/node/devices/mariobarcodesensor.js +7 -30
  267. package/dist/node/devices/mariobarcodesensor.js.map +1 -1
  268. package/dist/node/devices/mariopantssensor.d.ts +0 -1
  269. package/dist/node/devices/mariopantssensor.js +7 -30
  270. package/dist/node/devices/mariopantssensor.js.map +1 -1
  271. package/dist/node/devices/mediumlinearmotor.js +3 -26
  272. package/dist/node/devices/mediumlinearmotor.js.map +1 -1
  273. package/dist/node/devices/motionsensor.d.ts +0 -1
  274. package/dist/node/devices/motionsensor.js +7 -30
  275. package/dist/node/devices/motionsensor.js.map +1 -1
  276. package/dist/node/devices/motor.d.ts +182 -0
  277. package/dist/node/devices/motor.js +367 -0
  278. package/dist/node/devices/motor.js.map +1 -0
  279. package/dist/node/devices/movehubmediumlinearmotor.js +3 -26
  280. package/dist/node/devices/movehubmediumlinearmotor.js.map +1 -1
  281. package/dist/node/devices/movehubtiltsensor.d.ts +0 -1
  282. package/dist/node/devices/movehubtiltsensor.js +7 -30
  283. package/dist/node/devices/movehubtiltsensor.js.map +1 -1
  284. package/dist/node/devices/piezobuzzer.js +3 -26
  285. package/dist/node/devices/piezobuzzer.js.map +1 -1
  286. package/dist/node/devices/remotecontrolbutton.d.ts +0 -1
  287. package/dist/node/devices/remotecontrolbutton.js +9 -32
  288. package/dist/node/devices/remotecontrolbutton.js.map +1 -1
  289. package/dist/node/devices/sensor.d.ts +305 -0
  290. package/dist/node/devices/sensor.js +662 -0
  291. package/dist/node/devices/sensor.js.map +1 -0
  292. package/dist/node/devices/simplemediumlinearmotor.js +3 -26
  293. package/dist/node/devices/simplemediumlinearmotor.js.map +1 -1
  294. package/dist/node/devices/tachomotor.d.ts +0 -1
  295. package/dist/node/devices/tachomotor.js +14 -37
  296. package/dist/node/devices/tachomotor.js.map +1 -1
  297. package/dist/node/devices/technic3x3colorlightmatrix.js +7 -30
  298. package/dist/node/devices/technic3x3colorlightmatrix.js.map +1 -1
  299. package/dist/node/devices/techniccolorsensor.d.ts +0 -1
  300. package/dist/node/devices/techniccolorsensor.js +9 -32
  301. package/dist/node/devices/techniccolorsensor.js.map +1 -1
  302. package/dist/node/devices/technicdistancesensor.d.ts +0 -1
  303. package/dist/node/devices/technicdistancesensor.js +7 -30
  304. package/dist/node/devices/technicdistancesensor.js.map +1 -1
  305. package/dist/node/devices/technicforcesensor.d.ts +0 -1
  306. package/dist/node/devices/technicforcesensor.js +7 -30
  307. package/dist/node/devices/technicforcesensor.js.map +1 -1
  308. package/dist/node/devices/techniclargeangularmotor.js +3 -26
  309. package/dist/node/devices/techniclargeangularmotor.js.map +1 -1
  310. package/dist/node/devices/techniclargelinearmotor.js +3 -26
  311. package/dist/node/devices/techniclargelinearmotor.js.map +1 -1
  312. package/dist/node/devices/technicmediumangularmotor.js +3 -26
  313. package/dist/node/devices/technicmediumangularmotor.js.map +1 -1
  314. package/dist/node/devices/technicmediumhubaccelerometersensor.d.ts +0 -1
  315. package/dist/node/devices/technicmediumhubaccelerometersensor.js +7 -30
  316. package/dist/node/devices/technicmediumhubaccelerometersensor.js.map +1 -1
  317. package/dist/node/devices/technicmediumhubgyrosensor.d.ts +0 -1
  318. package/dist/node/devices/technicmediumhubgyrosensor.js +7 -30
  319. package/dist/node/devices/technicmediumhubgyrosensor.js.map +1 -1
  320. package/dist/node/devices/technicmediumhubtiltsensor.d.ts +0 -1
  321. package/dist/node/devices/technicmediumhubtiltsensor.js +8 -31
  322. package/dist/node/devices/technicmediumhubtiltsensor.js.map +1 -1
  323. package/dist/node/devices/technicsmallangularmotor.js +3 -26
  324. package/dist/node/devices/technicsmallangularmotor.js.map +1 -1
  325. package/dist/node/devices/technicxlargelinearmotor.js +3 -26
  326. package/dist/node/devices/technicxlargelinearmotor.js.map +1 -1
  327. package/dist/node/devices/tiltsensor.d.ts +0 -1
  328. package/dist/node/devices/tiltsensor.js +7 -30
  329. package/dist/node/devices/tiltsensor.js.map +1 -1
  330. package/dist/node/devices/trainmotor.js +3 -26
  331. package/dist/node/devices/trainmotor.js.map +1 -1
  332. package/dist/node/devices/voltagesensor.d.ts +0 -1
  333. package/dist/node/devices/voltagesensor.js +7 -30
  334. package/dist/node/devices/voltagesensor.js.map +1 -1
  335. package/dist/node/hub.d.ts +291 -0
  336. package/dist/node/hub.js +778 -0
  337. package/dist/node/hub.js.map +1 -0
  338. package/dist/node/hubs/basehub.d.ts +9 -10
  339. package/dist/node/hubs/basehub.js +74 -97
  340. package/dist/node/hubs/basehub.js.map +1 -1
  341. package/dist/node/hubs/duplotrainbase.d.ts +1 -1
  342. package/dist/node/hubs/duplotrainbase.js +6 -29
  343. package/dist/node/hubs/duplotrainbase.js.map +1 -1
  344. package/dist/node/hubs/hub.d.ts +1 -1
  345. package/dist/node/hubs/hub.js +12 -38
  346. package/dist/node/hubs/hub.js.map +1 -1
  347. package/dist/node/hubs/lpf2hub.d.ts +5 -6
  348. package/dist/node/hubs/lpf2hub.js +17 -40
  349. package/dist/node/hubs/lpf2hub.js.map +1 -1
  350. package/dist/node/hubs/mario.d.ts +1 -1
  351. package/dist/node/hubs/mario.js +6 -29
  352. package/dist/node/hubs/mario.js.map +1 -1
  353. package/dist/node/hubs/movehub.d.ts +1 -1
  354. package/dist/node/hubs/movehub.js +8 -34
  355. package/dist/node/hubs/movehub.js.map +1 -1
  356. package/dist/node/hubs/remotecontrol.d.ts +1 -1
  357. package/dist/node/hubs/remotecontrol.js +6 -29
  358. package/dist/node/hubs/remotecontrol.js.map +1 -1
  359. package/dist/node/hubs/technicmediumhub.d.ts +1 -1
  360. package/dist/node/hubs/technicmediumhub.js +6 -29
  361. package/dist/node/hubs/technicmediumhub.js.map +1 -1
  362. package/dist/node/hubs/technicsmallhub.d.ts +1 -1
  363. package/dist/node/hubs/technicsmallhub.js +10 -33
  364. package/dist/node/hubs/technicsmallhub.js.map +1 -1
  365. package/dist/node/hubs/wedo2smarthub.d.ts +3 -4
  366. package/dist/node/hubs/wedo2smarthub.js +15 -38
  367. package/dist/node/hubs/wedo2smarthub.js.map +1 -1
  368. package/dist/node/index-browser.js +91 -112
  369. package/dist/node/index-browser.js.map +1 -1
  370. package/dist/node/index-node.d.ts +1 -0
  371. package/dist/node/index-node.js +49 -115
  372. package/dist/node/index-node.js.map +1 -1
  373. package/dist/node/index.d.ts +31 -0
  374. package/dist/node/index.js +93 -0
  375. package/dist/node/index.js.map +1 -0
  376. package/dist/node/index.mjs +0 -0
  377. package/dist/node/interfaces.d.ts +1 -2
  378. package/dist/node/interfaces.js +1 -2
  379. package/dist/node/nobleabstraction.d.ts +0 -1
  380. package/dist/node/nobleabstraction.js +5 -7
  381. package/dist/node/nobleabstraction.js.map +1 -1
  382. package/dist/node/poweredup-browser.d.ts +0 -2
  383. package/dist/node/poweredup-browser.js +28 -47
  384. package/dist/node/poweredup-browser.js.map +1 -1
  385. package/dist/node/poweredup-node.d.ts +0 -2
  386. package/dist/node/poweredup-node.js +31 -54
  387. package/dist/node/poweredup-node.js.map +1 -1
  388. package/dist/node/poweredup.d.ts +83 -0
  389. package/dist/node/poweredup.js +542 -0
  390. package/dist/node/poweredup.js.map +1 -0
  391. package/dist/node/protocol-wedo.d.ts +158 -0
  392. package/dist/node/protocol-wedo.js +342 -0
  393. package/dist/node/protocol-wedo.js.map +1 -0
  394. package/dist/node/protocol.d.ts +340 -0
  395. package/dist/node/protocol.js +730 -0
  396. package/dist/node/protocol.js.map +1 -0
  397. package/dist/node/types.d.ts +408 -0
  398. package/dist/node/types.js +291 -0
  399. package/dist/node/types.js.map +1 -0
  400. package/dist/node/utils.d.ts +1 -1
  401. package/dist/node/utils.js +14 -26
  402. package/dist/node/utils.js.map +1 -1
  403. package/dist/node/webbleabstraction.d.ts +2 -3
  404. package/dist/node/webbleabstraction.js +4 -8
  405. package/dist/node/webbleabstraction.js.map +1 -1
  406. package/dist/poweredup-browser.d.ts +46 -0
  407. package/dist/poweredup-browser.d.ts.map +1 -0
  408. package/dist/poweredup-browser.js +210 -0
  409. package/dist/poweredup-browser.js.map +1 -0
  410. package/dist/poweredup-node.d.ts +49 -0
  411. package/dist/poweredup-node.d.ts.map +1 -0
  412. package/dist/poweredup-node.js +166 -0
  413. package/dist/poweredup-node.js.map +1 -0
  414. package/dist/tsconfig.tsbuildinfo +1 -0
  415. package/dist/utils.d.ts +13 -0
  416. package/dist/utils.d.ts.map +1 -0
  417. package/dist/utils.js +90 -0
  418. package/dist/utils.js.map +1 -0
  419. package/dist/webbleabstraction.d.ts +27 -0
  420. package/dist/webbleabstraction.d.ts.map +1 -0
  421. package/dist/webbleabstraction.js +104 -0
  422. package/dist/webbleabstraction.js.map +1 -0
  423. package/docs/.nojekyll +1 -0
  424. package/docs/assets/hierarchy.js +1 -0
  425. package/docs/assets/highlight.css +99 -0
  426. package/docs/assets/icons.js +18 -0
  427. package/docs/assets/icons.svg +1 -0
  428. package/docs/assets/main.js +60 -0
  429. package/docs/assets/navigation.js +1 -0
  430. package/docs/assets/search.js +1 -0
  431. package/docs/assets/style.css +1633 -0
  432. package/docs/classes/AbsoluteMotor.html +242 -0
  433. package/docs/classes/BaseHub.html +220 -0
  434. package/docs/classes/BasicMotor.html +201 -0
  435. package/docs/classes/Color.html +3 -0
  436. package/docs/classes/ColorDistanceSensor.html +214 -0
  437. package/docs/classes/CurrentSensor.html +185 -0
  438. package/docs/classes/Device.html +185 -0
  439. package/docs/classes/DuploTrainBase.html +233 -0
  440. package/docs/classes/DuploTrainBaseColorSensor.html +185 -0
  441. package/docs/classes/DuploTrainBaseMotor.html +201 -0
  442. package/docs/classes/DuploTrainBaseSpeaker.html +191 -0
  443. package/docs/classes/DuploTrainBaseSpeedometer.html +185 -0
  444. package/docs/classes/Hub.html +233 -0
  445. package/docs/classes/HubLED.html +191 -0
  446. package/docs/classes/Light.html +195 -0
  447. package/docs/classes/Mario.html +233 -0
  448. package/docs/classes/MediumLinearMotor.html +229 -0
  449. package/docs/classes/MotionSensor.html +185 -0
  450. package/docs/classes/MoveHub.html +233 -0
  451. package/docs/classes/MoveHubMediumLinearMotor.html +229 -0
  452. package/docs/classes/MoveHubTiltSensor.html +185 -0
  453. package/docs/classes/PiezoBuzzer.html +189 -0
  454. package/docs/classes/PoweredUP.html +180 -0
  455. package/docs/classes/RemoteControl.html +233 -0
  456. package/docs/classes/RemoteControlButton.html +185 -0
  457. package/docs/classes/SimpleMediumLinearMotor.html +201 -0
  458. package/docs/classes/TachoMotor.html +229 -0
  459. package/docs/classes/Technic3x3ColorLightMatrix.html +189 -0
  460. package/docs/classes/TechnicColorSensor.html +191 -0
  461. package/docs/classes/TechnicDistanceSensor.html +192 -0
  462. package/docs/classes/TechnicForceSensor.html +185 -0
  463. package/docs/classes/TechnicLargeAngularMotor.html +242 -0
  464. package/docs/classes/TechnicLargeLinearMotor.html +242 -0
  465. package/docs/classes/TechnicMediumAngularMotor.html +242 -0
  466. package/docs/classes/TechnicMediumHub.html +233 -0
  467. package/docs/classes/TechnicMediumHubAccelerometerSensor.html +185 -0
  468. package/docs/classes/TechnicMediumHubGyroSensor.html +185 -0
  469. package/docs/classes/TechnicMediumHubTiltSensor.html +197 -0
  470. package/docs/classes/TechnicSmallAngularMotor.html +242 -0
  471. package/docs/classes/TechnicXLargeLinearMotor.html +242 -0
  472. package/docs/classes/TiltSensor.html +185 -0
  473. package/docs/classes/TrainMotor.html +201 -0
  474. package/docs/classes/VoltageSensor.html +185 -0
  475. package/docs/classes/WeDo2SmartHub.html +229 -0
  476. package/docs/enums/ActionType.html +22 -0
  477. package/docs/enums/AlertOperation.html +10 -0
  478. package/docs/enums/AlertPayload.html +6 -0
  479. package/docs/enums/AlertType.html +10 -0
  480. package/docs/enums/BLECharacteristic.html +15 -0
  481. package/docs/enums/BLEManufacturerData.html +8 -0
  482. package/docs/enums/BLEService.html +7 -0
  483. package/docs/enums/BrakingStyle.html +7 -0
  484. package/docs/enums/ButtonState.html +11 -0
  485. package/docs/enums/Consts.Color.html +25 -0
  486. package/docs/enums/DeviceType.html +79 -0
  487. package/docs/enums/DuploTrainBaseSound.html +11 -0
  488. package/docs/enums/ErrorCode.html +18 -0
  489. package/docs/enums/Event.html +8 -0
  490. package/docs/enums/HWNetWorkCommandType.html +28 -0
  491. package/docs/enums/HWNetworkFamily.html +20 -0
  492. package/docs/enums/HWNetworkSubFamily.html +16 -0
  493. package/docs/enums/HubPropertyOperation.html +14 -0
  494. package/docs/enums/HubPropertyPayload.html +32 -0
  495. package/docs/enums/HubPropertyReference.html +32 -0
  496. package/docs/enums/HubType.html +19 -0
  497. package/docs/enums/IOTypeID.html +30 -0
  498. package/docs/enums/MarioColor.html +17 -0
  499. package/docs/enums/MarioPantsType.html +13 -0
  500. package/docs/enums/MessageType.html +48 -0
  501. package/docs/enums/ModeInformationType.html +22 -0
  502. package/docs/enums/PortInputFormatSetupSubCommand.html +14 -0
  503. package/docs/hierarchy.html +1 -0
  504. package/docs/index.html +18 -167
  505. package/docs/modules/Consts.html +1 -0
  506. package/docs/modules.html +1 -0
  507. package/docs/variables/ColorNames.html +1 -0
  508. package/docs/variables/DeviceTypeNames.html +1 -0
  509. package/docs/variables/HubTypeNames.html +1 -0
  510. package/docs/variables/isWebBluetooth.html +1 -0
  511. package/package.json +19 -25
  512. package/src/color.ts +1 -1
  513. package/src/consts.ts +16 -16
  514. package/src/devices/absolutemotor.ts +4 -7
  515. package/src/devices/basicmotor.ts +4 -8
  516. package/src/devices/colordistancesensor.ts +8 -14
  517. package/src/devices/currentsensor.ts +3 -3
  518. package/src/devices/device.ts +4 -4
  519. package/src/devices/duplotrainbasecolorsensor.ts +4 -4
  520. package/src/devices/duplotrainbasemotor.ts +3 -3
  521. package/src/devices/duplotrainbasespeaker.ts +3 -5
  522. package/src/devices/duplotrainbasespeedometer.ts +3 -3
  523. package/src/devices/hubled.ts +3 -5
  524. package/src/devices/light.ts +4 -6
  525. package/src/devices/marioaccelerometer.ts +3 -3
  526. package/src/devices/mariobarcodesensor.ts +3 -3
  527. package/src/devices/mariopantssensor.ts +3 -3
  528. package/src/devices/mediumlinearmotor.ts +3 -3
  529. package/src/devices/motionsensor.ts +3 -3
  530. package/src/devices/movehubmediumlinearmotor.ts +3 -3
  531. package/src/devices/movehubtiltsensor.ts +3 -3
  532. package/src/devices/piezobuzzer.ts +3 -4
  533. package/src/devices/remotecontrolbutton.ts +4 -4
  534. package/src/devices/simplemediumlinearmotor.ts +3 -3
  535. package/src/devices/tachomotor.ts +5 -11
  536. package/src/devices/technic3x3colorlightmatrix.ts +4 -5
  537. package/src/devices/techniccolorsensor.ts +4 -5
  538. package/src/devices/technicdistancesensor.ts +3 -4
  539. package/src/devices/technicforcesensor.ts +3 -3
  540. package/src/devices/techniclargeangularmotor.ts +3 -3
  541. package/src/devices/techniclargelinearmotor.ts +3 -3
  542. package/src/devices/technicmediumangularmotor.ts +3 -3
  543. package/src/devices/technicmediumhubaccelerometersensor.ts +3 -3
  544. package/src/devices/technicmediumhubgyrosensor.ts +3 -3
  545. package/src/devices/technicmediumhubtiltsensor.ts +7 -10
  546. package/src/devices/technicsmallangularmotor.ts +3 -3
  547. package/src/devices/technicxlargelinearmotor.ts +3 -3
  548. package/src/devices/tiltsensor.ts +3 -3
  549. package/src/devices/trainmotor.ts +3 -3
  550. package/src/devices/voltagesensor.ts +3 -3
  551. package/src/hubs/basehub.ts +42 -51
  552. package/src/hubs/duplotrainbase.ts +5 -5
  553. package/src/hubs/hub.ts +7 -7
  554. package/src/hubs/lpf2hub.ts +4 -7
  555. package/src/hubs/mario.ts +5 -5
  556. package/src/hubs/movehub.ts +7 -7
  557. package/src/hubs/remotecontrol.ts +5 -5
  558. package/src/hubs/technicmediumhub.ts +5 -5
  559. package/src/hubs/technicsmallhub.ts +5 -5
  560. package/src/hubs/wedo2smarthub.ts +7 -9
  561. package/src/index-browser.ts +46 -46
  562. package/src/index-node.ts +47 -46
  563. package/src/interfaces.ts +2 -2
  564. package/src/nobleabstraction.ts +10 -10
  565. package/src/poweredup-browser.ts +20 -21
  566. package/src/poweredup-node.ts +15 -22
  567. package/src/utils.ts +1 -1
  568. package/src/webbleabstraction.ts +5 -5
  569. package/tsconfig.tsbuildinfo +1 -0
  570. package/typedoc.json +14 -0
  571. package/.jsdoc.json +0 -41
  572. package/abandonware-noble.d.ts +0 -129
  573. package/dist/browser/poweredup.js +0 -3
  574. package/dist/browser/poweredup.js.LICENSE.txt +0 -8
  575. package/dist/browser/poweredup.js.map +0 -1
  576. package/docs/AbsoluteMotor.html +0 -2037
  577. package/docs/BaseHub.html +0 -1576
  578. package/docs/BasicMotor.html +0 -1561
  579. package/docs/ColorDistanceSensor.html +0 -3136
  580. package/docs/CurrentSensor.html +0 -1175
  581. package/docs/Device.html +0 -971
  582. package/docs/DuploTrainBase.html +0 -2313
  583. package/docs/DuploTrainBaseColorSensor.html +0 -1671
  584. package/docs/DuploTrainBaseMotor.html +0 -1597
  585. package/docs/DuploTrainBaseSpeaker.html +0 -1321
  586. package/docs/DuploTraniBaseSpeedometer.html +0 -1025
  587. package/docs/Hub.html +0 -7596
  588. package/docs/HubLED.html +0 -1379
  589. package/docs/LPF2Hub.html +0 -2271
  590. package/docs/Light.html +0 -1379
  591. package/docs/Mario.html +0 -2313
  592. package/docs/MarioAccelerometer.html +0 -1379
  593. package/docs/MarioBarcodeSensor.html +0 -1379
  594. package/docs/MarioPantsSensor.html +0 -1175
  595. package/docs/MediumLinearMotor.html +0 -1426
  596. package/docs/MotionSensor.html +0 -1175
  597. package/docs/MoveHub.html +0 -2313
  598. package/docs/MoveHubMediumLinearMotor.html +0 -1426
  599. package/docs/MoveHubTiltSensor.html +0 -1204
  600. package/docs/PiezoBuzzer.html +0 -1204
  601. package/docs/PoweredUP.html +0 -4322
  602. package/docs/RemoteControl.html +0 -2313
  603. package/docs/RemoteControlButton.html +0 -1175
  604. package/docs/SimpleMediumLinearMotor.html +0 -1025
  605. package/docs/TachoMotor.html +0 -2715
  606. package/docs/Technic3x3ColorLightMatrix.html +0 -1181
  607. package/docs/TechnicColorSensor.html +0 -1675
  608. package/docs/TechnicDistanceSensor.html +0 -1558
  609. package/docs/TechnicForceSensor.html +0 -1467
  610. package/docs/TechnicLargeAngularMotor.html +0 -2073
  611. package/docs/TechnicLargeLinearMotor.html +0 -2073
  612. package/docs/TechnicMediumAngularMotor.html +0 -2073
  613. package/docs/TechnicMediumHub.html +0 -2313
  614. package/docs/TechnicMediumHubAccelerometerSensor.html +0 -1233
  615. package/docs/TechnicMediumHubGyroSensor.html +0 -1233
  616. package/docs/TechnicMediumHubTiltSensor.html +0 -1821
  617. package/docs/TechnicSmallAngularMotor.html +0 -2073
  618. package/docs/TechnicXLargeLinearMotor.html +0 -2073
  619. package/docs/TiltSensor.html +0 -1204
  620. package/docs/TrainMotor.html +0 -1597
  621. package/docs/VoltageSensor.html +0 -1175
  622. package/docs/WeDo2SmartHub.html +0 -2099
  623. package/docs/consts.js.html +0 -791
  624. package/docs/devices_absolutemotor.js.html +0 -254
  625. package/docs/devices_basicmotor.js.html +0 -197
  626. package/docs/devices_colordistancesensor.js.html +0 -420
  627. package/docs/devices_currentsensor.js.html +0 -191
  628. package/docs/devices_device.js.html +0 -298
  629. package/docs/devices_duplotrainbasecolorsensor.js.html +0 -213
  630. package/docs/devices_duplotrainbasemotor.js.html +0 -148
  631. package/docs/devices_duplotrainbasespeaker.js.html +0 -176
  632. package/docs/devices_duplotrainbasespeedometer.js.html +0 -170
  633. package/docs/devices_hubled.js.html +0 -196
  634. package/docs/devices_light.js.html +0 -182
  635. package/docs/devices_marioaccelerometer.js.html +0 -186
  636. package/docs/devices_mariobarcodesensor.js.html +0 -194
  637. package/docs/devices_mariopantssensor.js.html +0 -170
  638. package/docs/devices_mediumlinearmotor.js.html +0 -148
  639. package/docs/devices_motionsensor.js.html +0 -174
  640. package/docs/devices_movehubmediumlinearmotor.js.html +0 -148
  641. package/docs/devices_movehubtiltsensor.js.html +0 -172
  642. package/docs/devices_piezobuzzer.js.html +0 -164
  643. package/docs/devices_remotecontrolbutton.js.html +0 -176
  644. package/docs/devices_simplemediumlinearmotor.js.html +0 -148
  645. package/docs/devices_tachomotor.js.html +0 -303
  646. package/docs/devices_technic3x3colorlightmatrix.js.html +0 -190
  647. package/docs/devices_techniccolorsensor.js.html +0 -208
  648. package/docs/devices_technicdistancesensor.js.html +0 -194
  649. package/docs/devices_technicforcesensor.js.html +0 -194
  650. package/docs/devices_techniclargeangularmotor.js.html +0 -148
  651. package/docs/devices_techniclargelinearmotor.js.html +0 -148
  652. package/docs/devices_technicmediumangularmotor.js.html +0 -148
  653. package/docs/devices_technicmediumhubaccelerometersensor.js.html +0 -174
  654. package/docs/devices_technicmediumhubgyrosensor.js.html +0 -174
  655. package/docs/devices_technicmediumhubtiltsensor.js.html +0 -242
  656. package/docs/devices_technicsmallangularmotor.js.html +0 -148
  657. package/docs/devices_technicxlargelinearmotor.js.html +0 -148
  658. package/docs/devices_tiltsensor.js.html +0 -172
  659. package/docs/devices_trainmotor.js.html +0 -148
  660. package/docs/devices_voltagesensor.js.html +0 -195
  661. package/docs/fonts/OpenSans-Bold-webfont.eot +0 -0
  662. package/docs/fonts/OpenSans-Bold-webfont.svg +0 -1830
  663. package/docs/fonts/OpenSans-Bold-webfont.woff +0 -0
  664. package/docs/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  665. package/docs/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  666. package/docs/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  667. package/docs/fonts/OpenSans-Italic-webfont.eot +0 -0
  668. package/docs/fonts/OpenSans-Italic-webfont.svg +0 -1830
  669. package/docs/fonts/OpenSans-Italic-webfont.woff +0 -0
  670. package/docs/fonts/OpenSans-Light-webfont.eot +0 -0
  671. package/docs/fonts/OpenSans-Light-webfont.svg +0 -1831
  672. package/docs/fonts/OpenSans-Light-webfont.woff +0 -0
  673. package/docs/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  674. package/docs/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  675. package/docs/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  676. package/docs/fonts/OpenSans-Regular-webfont.eot +0 -0
  677. package/docs/fonts/OpenSans-Regular-webfont.svg +0 -1831
  678. package/docs/fonts/OpenSans-Regular-webfont.woff +0 -0
  679. package/docs/fonts/OpenSans-Semibold-webfont.eot +0 -0
  680. package/docs/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  681. package/docs/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  682. package/docs/fonts/OpenSans-Semibold-webfont.woff +0 -0
  683. package/docs/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  684. package/docs/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  685. package/docs/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  686. package/docs/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  687. package/docs/global.html +0 -9829
  688. package/docs/hubs_basehub.js.html +0 -528
  689. package/docs/hubs_duplotrainbase.js.html +0 -171
  690. package/docs/hubs_hub.js.html +0 -183
  691. package/docs/hubs_lpf2hub.js.html +0 -450
  692. package/docs/hubs_mario.js.html +0 -167
  693. package/docs/hubs_movehub.js.html +0 -185
  694. package/docs/hubs_remotecontrol.js.html +0 -173
  695. package/docs/hubs_technicmediumhub.js.html +0 -178
  696. package/docs/hubs_technicsmallhub.js.html +0 -177
  697. package/docs/hubs_wedo2smarthub.js.html +0 -324
  698. package/docs/icons/home.svg +0 -4
  699. package/docs/icons/search.svg +0 -4
  700. package/docs/poweredup-browser.js.html +0 -348
  701. package/docs/poweredup-node.js.html +0 -309
  702. package/docs/scripts/linenumber.js +0 -23
  703. package/docs/scripts/pagelocation.js +0 -89
  704. package/docs/styles/collapse.css +0 -27
  705. package/docs/styles/jsdoc-default.css +0 -953
  706. package/docs/styles/prettify-jsdoc.css +0 -111
  707. package/docs/styles/prettify-tomorrow.css +0 -138
  708. package/jsdoc-template/braintree/CHANGELOG.md +0 -31
  709. package/jsdoc-template/braintree/LICENSE +0 -27
  710. package/jsdoc-template/braintree/README.md +0 -90
  711. package/jsdoc-template/braintree/package.json +0 -39
  712. package/jsdoc-template/braintree/publish.js +0 -675
  713. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.eot +0 -0
  714. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.svg +0 -1830
  715. package/jsdoc-template/braintree/static/fonts/OpenSans-Bold-webfont.woff +0 -0
  716. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  717. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  718. package/jsdoc-template/braintree/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  719. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.eot +0 -0
  720. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.svg +0 -1830
  721. package/jsdoc-template/braintree/static/fonts/OpenSans-Italic-webfont.woff +0 -0
  722. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.eot +0 -0
  723. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.svg +0 -1831
  724. package/jsdoc-template/braintree/static/fonts/OpenSans-Light-webfont.woff +0 -0
  725. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  726. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  727. package/jsdoc-template/braintree/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  728. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.eot +0 -0
  729. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.svg +0 -1831
  730. package/jsdoc-template/braintree/static/fonts/OpenSans-Regular-webfont.woff +0 -0
  731. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.eot +0 -0
  732. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.svg +0 -1830
  733. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  734. package/jsdoc-template/braintree/static/fonts/OpenSans-Semibold-webfont.woff +0 -0
  735. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  736. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.svg +0 -1830
  737. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  738. package/jsdoc-template/braintree/static/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  739. package/jsdoc-template/braintree/static/icons/home.svg +0 -4
  740. package/jsdoc-template/braintree/static/icons/search.svg +0 -4
  741. package/jsdoc-template/braintree/static/scripts/linenumber.js +0 -23
  742. package/jsdoc-template/braintree/static/scripts/pagelocation.js +0 -89
  743. package/jsdoc-template/braintree/static/styles/collapse.css +0 -27
  744. package/jsdoc-template/braintree/static/styles/jsdoc-default.css +0 -953
  745. package/jsdoc-template/braintree/static/styles/prettify-jsdoc.css +0 -111
  746. package/jsdoc-template/braintree/static/styles/prettify-tomorrow.css +0 -138
  747. package/jsdoc-template/braintree/tmpl/augments.tmpl +0 -10
  748. package/jsdoc-template/braintree/tmpl/container.tmpl +0 -213
  749. package/jsdoc-template/braintree/tmpl/details.tmpl +0 -223
  750. package/jsdoc-template/braintree/tmpl/example.tmpl +0 -2
  751. package/jsdoc-template/braintree/tmpl/examples.tmpl +0 -14
  752. package/jsdoc-template/braintree/tmpl/exceptions.tmpl +0 -28
  753. package/jsdoc-template/braintree/tmpl/layout.tmpl +0 -150
  754. package/jsdoc-template/braintree/tmpl/mainpage.tmpl +0 -9
  755. package/jsdoc-template/braintree/tmpl/members.tmpl +0 -38
  756. package/jsdoc-template/braintree/tmpl/method.tmpl +0 -128
  757. package/jsdoc-template/braintree/tmpl/params.tmpl +0 -125
  758. package/jsdoc-template/braintree/tmpl/properties.tmpl +0 -111
  759. package/jsdoc-template/braintree/tmpl/returns.tmpl +0 -17
  760. package/jsdoc-template/braintree/tmpl/source.tmpl +0 -9
  761. package/jsdoc-template/braintree/tmpl/tutorial.tmpl +0 -23
  762. package/jsdoc-template/braintree/tmpl/type.tmpl +0 -11
  763. package/noble-mac.d.ts +0 -3
@@ -0,0 +1,730 @@
1
+ "use strict";
2
+ /**
3
+ * PoweredUp Protocol
4
+ * LEGO Wireless Protocol 3.0 (LWP3) message encoding/decoding
5
+ * https://lego.github.io/lego-ble-wireless-protocol-docs/
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ErrorCode = exports.ModeInformationType = exports.PortInformationType = exports.MotorSubCommand = exports.AlertOperation = exports.HubAction = exports.HubPropertyOperation = exports.HubProperty = exports.MessageType = exports.BLE_BOOTLOADER_CHARACTERISTIC_UUID = exports.BLE_BOOTLOADER_SERVICE_UUID = exports.BLE_CHARACTERISTIC_UUID = exports.BLE_SERVICE_UUID = void 0;
9
+ exports.decodeMessageLength = decodeMessageLength;
10
+ exports.encodeMessageLength = encodeMessageLength;
11
+ exports.decodeVersion = decodeVersion;
12
+ exports.decodeMACAddress = decodeMACAddress;
13
+ exports.decodeMessage = decodeMessage;
14
+ exports.encodeMessage = encodeMessage;
15
+ exports.createHubPropertyRequest = createHubPropertyRequest;
16
+ exports.createHubPropertySet = createHubPropertySet;
17
+ exports.createHubAction = createHubAction;
18
+ exports.createAlertSubscription = createAlertSubscription;
19
+ exports.createPortInformationRequest = createPortInformationRequest;
20
+ exports.createPortModeInformationRequest = createPortModeInformationRequest;
21
+ exports.createPortInputFormatSetup = createPortInputFormatSetup;
22
+ exports.createVirtualPortSetup = createVirtualPortSetup;
23
+ exports.createStartPower = createStartPower;
24
+ exports.createStartPowerDual = createStartPowerDual;
25
+ exports.createStartSpeed = createStartSpeed;
26
+ exports.createStartSpeedDual = createStartSpeedDual;
27
+ exports.createStartSpeedForTime = createStartSpeedForTime;
28
+ exports.createStartSpeedForDegrees = createStartSpeedForDegrees;
29
+ exports.createGotoAbsolutePosition = createGotoAbsolutePosition;
30
+ exports.createPresetEncoder = createPresetEncoder;
31
+ exports.createSetAccTime = createSetAccTime;
32
+ exports.createSetDecTime = createSetDecTime;
33
+ exports.createSetLEDColor = createSetLEDColor;
34
+ exports.createSetLEDRGB = createSetLEDRGB;
35
+ exports.parseMotorFeedback = parseMotorFeedback;
36
+ exports.parseHubPropertyValue = parseHubPropertyValue;
37
+ const types_1 = require("./types");
38
+ // ============================================================================
39
+ // BLE Service and Characteristic UUIDs
40
+ // ============================================================================
41
+ exports.BLE_SERVICE_UUID = "00001623-1212-efde-1623-785feabcd123";
42
+ exports.BLE_CHARACTERISTIC_UUID = "00001624-1212-efde-1623-785feabcd123";
43
+ exports.BLE_BOOTLOADER_SERVICE_UUID = "00001625-1212-efde-1623-785feabcd123";
44
+ exports.BLE_BOOTLOADER_CHARACTERISTIC_UUID = "00001626-1212-efde-1623-785feabcd123";
45
+ // ============================================================================
46
+ // Message Types
47
+ // https://lego.github.io/lego-ble-wireless-protocol-docs/index.html#message-types
48
+ // ============================================================================
49
+ var MessageType;
50
+ (function (MessageType) {
51
+ MessageType[MessageType["HUB_PROPERTIES"] = 1] = "HUB_PROPERTIES";
52
+ MessageType[MessageType["HUB_ACTIONS"] = 2] = "HUB_ACTIONS";
53
+ MessageType[MessageType["HUB_ALERTS"] = 3] = "HUB_ALERTS";
54
+ MessageType[MessageType["HUB_ATTACHED_IO"] = 4] = "HUB_ATTACHED_IO";
55
+ MessageType[MessageType["GENERIC_ERROR_MESSAGES"] = 5] = "GENERIC_ERROR_MESSAGES";
56
+ MessageType[MessageType["HW_NETWORK_COMMANDS"] = 8] = "HW_NETWORK_COMMANDS";
57
+ MessageType[MessageType["FW_UPDATE_GO_INTO_BOOT_MODE"] = 16] = "FW_UPDATE_GO_INTO_BOOT_MODE";
58
+ MessageType[MessageType["FW_UPDATE_LOCK_MEMORY"] = 17] = "FW_UPDATE_LOCK_MEMORY";
59
+ MessageType[MessageType["FW_UPDATE_LOCK_STATUS_REQUEST"] = 18] = "FW_UPDATE_LOCK_STATUS_REQUEST";
60
+ MessageType[MessageType["FW_LOCK_STATUS"] = 19] = "FW_LOCK_STATUS";
61
+ MessageType[MessageType["PORT_INFORMATION_REQUEST"] = 33] = "PORT_INFORMATION_REQUEST";
62
+ MessageType[MessageType["PORT_MODE_INFORMATION_REQUEST"] = 34] = "PORT_MODE_INFORMATION_REQUEST";
63
+ MessageType[MessageType["PORT_INPUT_FORMAT_SETUP_SINGLE"] = 65] = "PORT_INPUT_FORMAT_SETUP_SINGLE";
64
+ MessageType[MessageType["PORT_INPUT_FORMAT_SETUP_COMBINEDMODE"] = 66] = "PORT_INPUT_FORMAT_SETUP_COMBINEDMODE";
65
+ MessageType[MessageType["PORT_INFORMATION"] = 67] = "PORT_INFORMATION";
66
+ MessageType[MessageType["PORT_MODE_INFORMATION"] = 68] = "PORT_MODE_INFORMATION";
67
+ MessageType[MessageType["PORT_VALUE_SINGLE"] = 69] = "PORT_VALUE_SINGLE";
68
+ MessageType[MessageType["PORT_VALUE_COMBINEDMODE"] = 70] = "PORT_VALUE_COMBINEDMODE";
69
+ MessageType[MessageType["PORT_INPUT_FORMAT_SINGLE"] = 71] = "PORT_INPUT_FORMAT_SINGLE";
70
+ MessageType[MessageType["PORT_INPUT_FORMAT_COMBINEDMODE"] = 72] = "PORT_INPUT_FORMAT_COMBINEDMODE";
71
+ MessageType[MessageType["VIRTUAL_PORT_SETUP"] = 97] = "VIRTUAL_PORT_SETUP";
72
+ MessageType[MessageType["PORT_OUTPUT_COMMAND"] = 129] = "PORT_OUTPUT_COMMAND";
73
+ MessageType[MessageType["PORT_OUTPUT_COMMAND_FEEDBACK"] = 130] = "PORT_OUTPUT_COMMAND_FEEDBACK";
74
+ })(MessageType || (exports.MessageType = MessageType = {}));
75
+ // ============================================================================
76
+ // Hub Property References
77
+ // ============================================================================
78
+ var HubProperty;
79
+ (function (HubProperty) {
80
+ HubProperty[HubProperty["ADVERTISING_NAME"] = 1] = "ADVERTISING_NAME";
81
+ HubProperty[HubProperty["BUTTON"] = 2] = "BUTTON";
82
+ HubProperty[HubProperty["FW_VERSION"] = 3] = "FW_VERSION";
83
+ HubProperty[HubProperty["HW_VERSION"] = 4] = "HW_VERSION";
84
+ HubProperty[HubProperty["RSSI"] = 5] = "RSSI";
85
+ HubProperty[HubProperty["BATTERY_VOLTAGE"] = 6] = "BATTERY_VOLTAGE";
86
+ HubProperty[HubProperty["BATTERY_TYPE"] = 7] = "BATTERY_TYPE";
87
+ HubProperty[HubProperty["MANUFACTURER_NAME"] = 8] = "MANUFACTURER_NAME";
88
+ HubProperty[HubProperty["RADIO_FIRMWARE_VERSION"] = 9] = "RADIO_FIRMWARE_VERSION";
89
+ HubProperty[HubProperty["LWP_PROTOCOL_VERSION"] = 10] = "LWP_PROTOCOL_VERSION";
90
+ HubProperty[HubProperty["SYSTEM_TYPE_ID"] = 11] = "SYSTEM_TYPE_ID";
91
+ HubProperty[HubProperty["HW_NETWORK_ID"] = 12] = "HW_NETWORK_ID";
92
+ HubProperty[HubProperty["PRIMARY_MAC_ADDRESS"] = 13] = "PRIMARY_MAC_ADDRESS";
93
+ HubProperty[HubProperty["SECONDARY_MAC_ADDRESS"] = 14] = "SECONDARY_MAC_ADDRESS";
94
+ HubProperty[HubProperty["HW_NETWORK_FAMILY"] = 15] = "HW_NETWORK_FAMILY";
95
+ })(HubProperty || (exports.HubProperty = HubProperty = {}));
96
+ var HubPropertyOperation;
97
+ (function (HubPropertyOperation) {
98
+ HubPropertyOperation[HubPropertyOperation["SET"] = 1] = "SET";
99
+ HubPropertyOperation[HubPropertyOperation["ENABLE_UPDATES"] = 2] = "ENABLE_UPDATES";
100
+ HubPropertyOperation[HubPropertyOperation["DISABLE_UPDATES"] = 3] = "DISABLE_UPDATES";
101
+ HubPropertyOperation[HubPropertyOperation["RESET"] = 4] = "RESET";
102
+ HubPropertyOperation[HubPropertyOperation["REQUEST_UPDATE"] = 5] = "REQUEST_UPDATE";
103
+ HubPropertyOperation[HubPropertyOperation["UPDATE"] = 6] = "UPDATE";
104
+ })(HubPropertyOperation || (exports.HubPropertyOperation = HubPropertyOperation = {}));
105
+ // ============================================================================
106
+ // Hub Actions
107
+ // ============================================================================
108
+ var HubAction;
109
+ (function (HubAction) {
110
+ HubAction[HubAction["SWITCH_OFF_HUB"] = 1] = "SWITCH_OFF_HUB";
111
+ HubAction[HubAction["DISCONNECT"] = 2] = "DISCONNECT";
112
+ HubAction[HubAction["VCC_PORT_CONTROL_ON"] = 3] = "VCC_PORT_CONTROL_ON";
113
+ HubAction[HubAction["VCC_PORT_CONTROL_OFF"] = 4] = "VCC_PORT_CONTROL_OFF";
114
+ HubAction[HubAction["ACTIVATE_BUSY_INDICATION"] = 5] = "ACTIVATE_BUSY_INDICATION";
115
+ HubAction[HubAction["RESET_BUSY_INDICATION"] = 6] = "RESET_BUSY_INDICATION";
116
+ HubAction[HubAction["SHUTDOWN"] = 47] = "SHUTDOWN";
117
+ HubAction[HubAction["HUB_WILL_SWITCH_OFF"] = 48] = "HUB_WILL_SWITCH_OFF";
118
+ HubAction[HubAction["HUB_WILL_DISCONNECT"] = 49] = "HUB_WILL_DISCONNECT";
119
+ HubAction[HubAction["HUB_WILL_GO_INTO_BOOT_MODE"] = 50] = "HUB_WILL_GO_INTO_BOOT_MODE";
120
+ })(HubAction || (exports.HubAction = HubAction = {}));
121
+ // ============================================================================
122
+ // Alert Operations
123
+ // ============================================================================
124
+ var AlertOperation;
125
+ (function (AlertOperation) {
126
+ AlertOperation[AlertOperation["ENABLE_UPDATE"] = 1] = "ENABLE_UPDATE";
127
+ AlertOperation[AlertOperation["DISABLE_UPDATE"] = 2] = "DISABLE_UPDATE";
128
+ AlertOperation[AlertOperation["REQUEST_UPDATE"] = 3] = "REQUEST_UPDATE";
129
+ AlertOperation[AlertOperation["UPDATE"] = 4] = "UPDATE";
130
+ })(AlertOperation || (exports.AlertOperation = AlertOperation = {}));
131
+ // ============================================================================
132
+ // Port Output Sub-Commands
133
+ // ============================================================================
134
+ var MotorSubCommand;
135
+ (function (MotorSubCommand) {
136
+ MotorSubCommand[MotorSubCommand["START_POWER"] = 1] = "START_POWER";
137
+ MotorSubCommand[MotorSubCommand["START_POWER_DUAL"] = 2] = "START_POWER_DUAL";
138
+ MotorSubCommand[MotorSubCommand["SET_ACC_TIME"] = 5] = "SET_ACC_TIME";
139
+ MotorSubCommand[MotorSubCommand["SET_DEC_TIME"] = 6] = "SET_DEC_TIME";
140
+ MotorSubCommand[MotorSubCommand["START_SPEED"] = 7] = "START_SPEED";
141
+ MotorSubCommand[MotorSubCommand["START_SPEED_DUAL"] = 8] = "START_SPEED_DUAL";
142
+ MotorSubCommand[MotorSubCommand["START_SPEED_FOR_TIME"] = 9] = "START_SPEED_FOR_TIME";
143
+ MotorSubCommand[MotorSubCommand["START_SPEED_FOR_TIME_DUAL"] = 10] = "START_SPEED_FOR_TIME_DUAL";
144
+ MotorSubCommand[MotorSubCommand["START_SPEED_FOR_DEGREES"] = 11] = "START_SPEED_FOR_DEGREES";
145
+ MotorSubCommand[MotorSubCommand["START_SPEED_FOR_DEGREES_DUAL"] = 12] = "START_SPEED_FOR_DEGREES_DUAL";
146
+ MotorSubCommand[MotorSubCommand["GOTO_ABSOLUTE_POSITION"] = 13] = "GOTO_ABSOLUTE_POSITION";
147
+ MotorSubCommand[MotorSubCommand["GOTO_ABSOLUTE_POSITION_DUAL"] = 14] = "GOTO_ABSOLUTE_POSITION_DUAL";
148
+ MotorSubCommand[MotorSubCommand["PRESET_ENCODER"] = 19] = "PRESET_ENCODER";
149
+ MotorSubCommand[MotorSubCommand["PRESET_ENCODER_DUAL"] = 20] = "PRESET_ENCODER_DUAL";
150
+ MotorSubCommand[MotorSubCommand["WRITE_DIRECT"] = 80] = "WRITE_DIRECT";
151
+ MotorSubCommand[MotorSubCommand["WRITE_DIRECT_MODE_DATA"] = 81] = "WRITE_DIRECT_MODE_DATA";
152
+ })(MotorSubCommand || (exports.MotorSubCommand = MotorSubCommand = {}));
153
+ // ============================================================================
154
+ // Port Information Types
155
+ // ============================================================================
156
+ var PortInformationType;
157
+ (function (PortInformationType) {
158
+ PortInformationType[PortInformationType["PORT_VALUE"] = 0] = "PORT_VALUE";
159
+ PortInformationType[PortInformationType["MODE_INFO"] = 1] = "MODE_INFO";
160
+ PortInformationType[PortInformationType["POSSIBLE_MODE_COMBINATIONS"] = 2] = "POSSIBLE_MODE_COMBINATIONS";
161
+ })(PortInformationType || (exports.PortInformationType = PortInformationType = {}));
162
+ var ModeInformationType;
163
+ (function (ModeInformationType) {
164
+ ModeInformationType[ModeInformationType["NAME"] = 0] = "NAME";
165
+ ModeInformationType[ModeInformationType["RAW"] = 1] = "RAW";
166
+ ModeInformationType[ModeInformationType["PCT"] = 2] = "PCT";
167
+ ModeInformationType[ModeInformationType["SI"] = 3] = "SI";
168
+ ModeInformationType[ModeInformationType["SYMBOL"] = 4] = "SYMBOL";
169
+ ModeInformationType[ModeInformationType["MAPPING"] = 5] = "MAPPING";
170
+ ModeInformationType[ModeInformationType["MOTOR_BIAS"] = 7] = "MOTOR_BIAS";
171
+ ModeInformationType[ModeInformationType["CAPABILITY_BITS"] = 8] = "CAPABILITY_BITS";
172
+ ModeInformationType[ModeInformationType["VALUE_FORMAT"] = 128] = "VALUE_FORMAT";
173
+ })(ModeInformationType || (exports.ModeInformationType = ModeInformationType = {}));
174
+ // ============================================================================
175
+ // Error Codes
176
+ // ============================================================================
177
+ var ErrorCode;
178
+ (function (ErrorCode) {
179
+ ErrorCode[ErrorCode["ACK"] = 1] = "ACK";
180
+ ErrorCode[ErrorCode["MACK"] = 2] = "MACK";
181
+ ErrorCode[ErrorCode["BUFFER_OVERFLOW"] = 3] = "BUFFER_OVERFLOW";
182
+ ErrorCode[ErrorCode["TIMEOUT"] = 4] = "TIMEOUT";
183
+ ErrorCode[ErrorCode["COMMAND_NOT_RECOGNIZED"] = 5] = "COMMAND_NOT_RECOGNIZED";
184
+ ErrorCode[ErrorCode["INVALID_USE"] = 6] = "INVALID_USE";
185
+ ErrorCode[ErrorCode["OVERCURRENT"] = 7] = "OVERCURRENT";
186
+ ErrorCode[ErrorCode["INTERNAL_ERROR"] = 8] = "INTERNAL_ERROR";
187
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
188
+ // ============================================================================
189
+ // Message Decoding
190
+ // ============================================================================
191
+ /**
192
+ * Decode the message length from raw bytes
193
+ * Messages longer than 127 bytes use two-byte length encoding
194
+ */
195
+ function decodeMessageLength(data) {
196
+ if (data.length === 0) {
197
+ return { length: 0, headerSize: 0 };
198
+ }
199
+ const firstByte = data[0];
200
+ if ((firstByte & 0x80) === 0) {
201
+ // Single byte length
202
+ return { length: firstByte, headerSize: 1 };
203
+ }
204
+ else {
205
+ // Two byte length
206
+ if (data.length < 2) {
207
+ return { length: 0, headerSize: 0 };
208
+ }
209
+ const length = (firstByte & 0x7f) | (data[1] << 7);
210
+ return { length, headerSize: 2 };
211
+ }
212
+ }
213
+ /**
214
+ * Encode message length as header bytes
215
+ */
216
+ function encodeMessageLength(length) {
217
+ if (length < 128) {
218
+ return Buffer.from([length]);
219
+ }
220
+ else {
221
+ return Buffer.from([(length & 0x7f) | 0x80, (length >> 7) & 0xff]);
222
+ }
223
+ }
224
+ /**
225
+ * Decode a version number from 4 bytes (BCD encoded)
226
+ */
227
+ function decodeVersion(data, offset = 0) {
228
+ if (data.length < offset + 4) {
229
+ return "0.0.00.0000";
230
+ }
231
+ const byte3 = data[offset + 3];
232
+ const byte2 = data[offset + 2];
233
+ const byte1 = data[offset + 1];
234
+ const byte0 = data[offset];
235
+ const major = (byte3 >> 4) & 0x07;
236
+ const minor = byte3 & 0x0f;
237
+ const bugfix = ((byte2 >> 4) * 10) + (byte2 & 0x0f);
238
+ const build = ((byte1 >> 4) * 1000) + ((byte1 & 0x0f) * 100) + ((byte0 >> 4) * 10) + (byte0 & 0x0f);
239
+ return `${major}.${minor}.${bugfix.toString().padStart(2, "0")}.${build.toString().padStart(4, "0")}`;
240
+ }
241
+ /**
242
+ * Decode a MAC address from 6 bytes
243
+ */
244
+ function decodeMACAddress(data, offset = 0) {
245
+ if (data.length < offset + 6) {
246
+ return "00:00:00:00:00:00";
247
+ }
248
+ const bytes = [];
249
+ for (let i = 0; i < 6; i++) {
250
+ bytes.push(data[offset + i].toString(16).padStart(2, "0").toUpperCase());
251
+ }
252
+ return bytes.join(":");
253
+ }
254
+ /**
255
+ * Decode a complete LWP3 message
256
+ */
257
+ function decodeMessage(data) {
258
+ const { length, headerSize } = decodeMessageLength(data);
259
+ if (length === 0 || data.length < length) {
260
+ return null;
261
+ }
262
+ // Hub ID is at headerSize (always 0x00 for now), message type is at headerSize + 1
263
+ const messageType = data[headerSize + 1];
264
+ switch (messageType) {
265
+ case MessageType.HUB_PROPERTIES:
266
+ return decodeHubPropertyMessage(data, headerSize);
267
+ case MessageType.HUB_ACTIONS:
268
+ return decodeHubActionMessage(data, headerSize);
269
+ case MessageType.HUB_ALERTS:
270
+ return decodeHubAlertMessage(data, headerSize);
271
+ case MessageType.HUB_ATTACHED_IO:
272
+ return decodeAttachedIOMessage(data, headerSize);
273
+ case MessageType.GENERIC_ERROR_MESSAGES:
274
+ return decodeGenericErrorMessage(data, headerSize);
275
+ case MessageType.PORT_INFORMATION:
276
+ return decodePortInformationMessage(data, headerSize);
277
+ case MessageType.PORT_MODE_INFORMATION:
278
+ return decodePortModeInformationMessage(data, headerSize);
279
+ case MessageType.PORT_VALUE_SINGLE:
280
+ return decodePortValueSingleMessage(data, headerSize);
281
+ case MessageType.PORT_VALUE_COMBINEDMODE:
282
+ return decodePortValueCombinedMessage(data, headerSize);
283
+ case MessageType.PORT_INPUT_FORMAT_SINGLE:
284
+ return decodePortInputFormatSingleMessage(data, headerSize);
285
+ case MessageType.PORT_INPUT_FORMAT_COMBINEDMODE:
286
+ return decodePortInputFormatCombinedMessage(data, headerSize);
287
+ case MessageType.PORT_OUTPUT_COMMAND_FEEDBACK:
288
+ return decodePortOutputFeedbackMessage(data, headerSize);
289
+ default:
290
+ return null;
291
+ }
292
+ }
293
+ function decodeHubPropertyMessage(data, headerSize) {
294
+ return {
295
+ type: MessageType.HUB_PROPERTIES,
296
+ property: data[headerSize + 2],
297
+ operation: data[headerSize + 3],
298
+ payload: data.subarray(headerSize + 4),
299
+ };
300
+ }
301
+ function decodeHubActionMessage(data, headerSize) {
302
+ return {
303
+ type: MessageType.HUB_ACTIONS,
304
+ action: data[headerSize + 2],
305
+ };
306
+ }
307
+ function decodeHubAlertMessage(data, headerSize) {
308
+ return {
309
+ type: MessageType.HUB_ALERTS,
310
+ alertType: data[headerSize + 2],
311
+ operation: data[headerSize + 3],
312
+ payload: data.length > headerSize + 4 ? data[headerSize + 4] : 0,
313
+ };
314
+ }
315
+ function decodeAttachedIOMessage(data, headerSize) {
316
+ const portId = data[headerSize + 2];
317
+ const event = data[headerSize + 3];
318
+ const message = {
319
+ type: MessageType.HUB_ATTACHED_IO,
320
+ portId,
321
+ event,
322
+ deviceType: types_1.DeviceType.UNKNOWN,
323
+ };
324
+ if (event === types_1.PortEvent.ATTACHED) {
325
+ message.deviceType = data.readUInt16LE(headerSize + 4);
326
+ if (data.length >= headerSize + 12) {
327
+ message.hardwareRevision = decodeVersion(data, headerSize + 6);
328
+ message.softwareRevision = decodeVersion(data, headerSize + 10);
329
+ }
330
+ }
331
+ else if (event === types_1.PortEvent.ATTACHED_VIRTUAL) {
332
+ message.deviceType = data.readUInt16LE(headerSize + 4);
333
+ message.portIdA = data[headerSize + 6];
334
+ message.portIdB = data[headerSize + 7];
335
+ }
336
+ return message;
337
+ }
338
+ function decodeGenericErrorMessage(data, headerSize) {
339
+ return {
340
+ type: MessageType.GENERIC_ERROR_MESSAGES,
341
+ commandType: data[headerSize + 2],
342
+ errorCode: data[headerSize + 3],
343
+ };
344
+ }
345
+ function decodePortInformationMessage(data, headerSize) {
346
+ const portId = data[headerSize + 2];
347
+ const informationType = data[headerSize + 3];
348
+ const message = {
349
+ type: MessageType.PORT_INFORMATION,
350
+ portId,
351
+ informationType,
352
+ };
353
+ if (informationType === PortInformationType.MODE_INFO) {
354
+ message.capabilities = data[headerSize + 4];
355
+ message.modeCount = data[headerSize + 5];
356
+ message.inputModes = data.readUInt16LE(headerSize + 6);
357
+ message.outputModes = data.readUInt16LE(headerSize + 8);
358
+ }
359
+ else if (informationType === PortInformationType.POSSIBLE_MODE_COMBINATIONS) {
360
+ const combinations = [];
361
+ for (let i = headerSize + 4; i < data.length; i += 2) {
362
+ if (i + 1 < data.length) {
363
+ combinations.push(data.readUInt16LE(i));
364
+ }
365
+ }
366
+ message.modeCombinations = combinations;
367
+ }
368
+ return message;
369
+ }
370
+ function decodePortModeInformationMessage(data, headerSize) {
371
+ const portId = data[headerSize + 2];
372
+ const mode = data[headerSize + 3];
373
+ const informationType = data[headerSize + 4];
374
+ const message = {
375
+ type: MessageType.PORT_MODE_INFORMATION,
376
+ portId,
377
+ mode,
378
+ informationType,
379
+ };
380
+ const payload = data.subarray(headerSize + 5);
381
+ switch (informationType) {
382
+ case ModeInformationType.NAME:
383
+ message.name = payload.toString("ascii").replace(/\0+$/, "");
384
+ break;
385
+ case ModeInformationType.RAW:
386
+ message.rawRange = {
387
+ min: payload.readFloatLE(0),
388
+ max: payload.readFloatLE(4),
389
+ };
390
+ break;
391
+ case ModeInformationType.PCT:
392
+ message.pctRange = {
393
+ min: payload.readFloatLE(0),
394
+ max: payload.readFloatLE(4),
395
+ };
396
+ break;
397
+ case ModeInformationType.SI:
398
+ message.siRange = {
399
+ min: payload.readFloatLE(0),
400
+ max: payload.readFloatLE(4),
401
+ };
402
+ break;
403
+ case ModeInformationType.SYMBOL:
404
+ message.symbol = payload.toString("ascii").replace(/\0+$/, "");
405
+ break;
406
+ case ModeInformationType.MAPPING:
407
+ message.mapping = payload.readUInt16LE(0);
408
+ break;
409
+ case ModeInformationType.MOTOR_BIAS:
410
+ message.motorBias = payload[0];
411
+ break;
412
+ case ModeInformationType.CAPABILITY_BITS:
413
+ message.capabilityBits = payload.subarray(0, 6);
414
+ break;
415
+ case ModeInformationType.VALUE_FORMAT:
416
+ message.valueFormat = {
417
+ datasetCount: payload[0],
418
+ datasetType: payload[1],
419
+ figures: payload[2],
420
+ decimals: payload[3],
421
+ };
422
+ break;
423
+ }
424
+ return message;
425
+ }
426
+ function decodePortValueSingleMessage(data, headerSize) {
427
+ return {
428
+ type: MessageType.PORT_VALUE_SINGLE,
429
+ portId: data[headerSize + 2],
430
+ value: data.subarray(headerSize + 3),
431
+ };
432
+ }
433
+ function decodePortValueCombinedMessage(data, headerSize) {
434
+ return {
435
+ type: MessageType.PORT_VALUE_COMBINEDMODE,
436
+ portId: data[headerSize + 2],
437
+ modeDatasets: data.readUInt16LE(headerSize + 3),
438
+ values: data.subarray(headerSize + 5),
439
+ };
440
+ }
441
+ function decodePortInputFormatSingleMessage(data, headerSize) {
442
+ return {
443
+ type: MessageType.PORT_INPUT_FORMAT_SINGLE,
444
+ portId: data[headerSize + 2],
445
+ mode: data[headerSize + 3],
446
+ deltaInterval: data.readUInt32LE(headerSize + 4),
447
+ notificationEnabled: data[headerSize + 8] === 1,
448
+ };
449
+ }
450
+ function decodePortInputFormatCombinedMessage(data, headerSize) {
451
+ return {
452
+ type: MessageType.PORT_INPUT_FORMAT_COMBINEDMODE,
453
+ portId: data[headerSize + 2],
454
+ combinedControl: data[headerSize + 3],
455
+ modeDatasetPointer: data.readUInt16LE(headerSize + 4),
456
+ };
457
+ }
458
+ function decodePortOutputFeedbackMessage(data, headerSize) {
459
+ return {
460
+ type: MessageType.PORT_OUTPUT_COMMAND_FEEDBACK,
461
+ portId: data[headerSize + 2],
462
+ feedback: data[headerSize + 3],
463
+ };
464
+ }
465
+ // ============================================================================
466
+ // Message Encoding
467
+ // ============================================================================
468
+ /**
469
+ * Wrap payload with LWP3 message header
470
+ */
471
+ function encodeMessage(messageType, payload) {
472
+ const length = 3 + payload.length; // length byte(s) + hub ID (0x00) + message type + payload
473
+ const header = encodeMessageLength(length);
474
+ return Buffer.concat([
475
+ header,
476
+ Buffer.from([0x00, messageType]),
477
+ payload,
478
+ ]);
479
+ }
480
+ /**
481
+ * Create hub property request message
482
+ */
483
+ function createHubPropertyRequest(property, operation) {
484
+ return encodeMessage(MessageType.HUB_PROPERTIES, Buffer.from([property, operation]));
485
+ }
486
+ /**
487
+ * Create hub property set message (for writable properties)
488
+ */
489
+ function createHubPropertySet(property, value) {
490
+ return encodeMessage(MessageType.HUB_PROPERTIES, Buffer.concat([Buffer.from([property, HubPropertyOperation.SET]), value]));
491
+ }
492
+ /**
493
+ * Create hub action message
494
+ */
495
+ function createHubAction(action) {
496
+ return encodeMessage(MessageType.HUB_ACTIONS, Buffer.from([action]));
497
+ }
498
+ /**
499
+ * Create alert subscription message
500
+ */
501
+ function createAlertSubscription(alertType, enable) {
502
+ return encodeMessage(MessageType.HUB_ALERTS, Buffer.from([alertType, enable ? AlertOperation.ENABLE_UPDATE : AlertOperation.DISABLE_UPDATE]));
503
+ }
504
+ /**
505
+ * Create port information request message
506
+ */
507
+ function createPortInformationRequest(portId, informationType) {
508
+ return encodeMessage(MessageType.PORT_INFORMATION_REQUEST, Buffer.from([portId, informationType]));
509
+ }
510
+ /**
511
+ * Create port mode information request message
512
+ */
513
+ function createPortModeInformationRequest(portId, mode, infoType) {
514
+ return encodeMessage(MessageType.PORT_MODE_INFORMATION_REQUEST, Buffer.from([portId, mode, infoType]));
515
+ }
516
+ /**
517
+ * Create port input format setup (subscribe/unsubscribe to notifications)
518
+ */
519
+ function createPortInputFormatSetup(portId, mode, deltaInterval, notificationEnabled) {
520
+ const payload = Buffer.alloc(8);
521
+ payload[0] = portId;
522
+ payload[1] = mode;
523
+ payload.writeUInt32LE(deltaInterval, 2);
524
+ payload[6] = notificationEnabled ? 1 : 0;
525
+ return encodeMessage(MessageType.PORT_INPUT_FORMAT_SETUP_SINGLE, payload);
526
+ }
527
+ /**
528
+ * Create virtual port setup message (connect/disconnect)
529
+ */
530
+ function createVirtualPortSetup(connect, portIdA, portIdB, virtualPortId) {
531
+ if (connect && portIdB !== undefined) {
532
+ return encodeMessage(MessageType.VIRTUAL_PORT_SETUP, Buffer.from([0x01, portIdA, portIdB]));
533
+ }
534
+ else if (!connect && virtualPortId !== undefined) {
535
+ return encodeMessage(MessageType.VIRTUAL_PORT_SETUP, Buffer.from([0x00, virtualPortId]));
536
+ }
537
+ throw new Error("Invalid virtual port setup parameters");
538
+ }
539
+ // ============================================================================
540
+ // Port Output Commands
541
+ // ============================================================================
542
+ /**
543
+ * Create port output command wrapper
544
+ */
545
+ function createPortOutputCommand(portId, startupCompletion, subCommand, payload) {
546
+ return encodeMessage(MessageType.PORT_OUTPUT_COMMAND, Buffer.concat([Buffer.from([portId, startupCompletion, subCommand]), payload]));
547
+ }
548
+ /**
549
+ * Set motor power (unregulated)
550
+ */
551
+ function createStartPower(portId, power) {
552
+ // Clamp power to -100..100
553
+ power = Math.max(-100, Math.min(100, power));
554
+ const signedPower = power < 0 ? 256 + power : power;
555
+ return createPortOutputCommand(portId, 0x11, // Execute immediately, command feedback
556
+ MotorSubCommand.WRITE_DIRECT_MODE_DATA, Buffer.from([0x00, signedPower]) // Mode 0 = power
557
+ );
558
+ }
559
+ /**
560
+ * Set motor power for dual motors (virtual port)
561
+ */
562
+ function createStartPowerDual(portId, power1, power2) {
563
+ power1 = Math.max(-100, Math.min(100, power1));
564
+ power2 = Math.max(-100, Math.min(100, power2));
565
+ const signedPower1 = power1 < 0 ? 256 + power1 : power1;
566
+ const signedPower2 = power2 < 0 ? 256 + power2 : power2;
567
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.START_POWER_DUAL, Buffer.from([signedPower1, signedPower2]));
568
+ }
569
+ /**
570
+ * Set motor speed (regulated)
571
+ */
572
+ function createStartSpeed(portId, speed, maxPower = 100, useProfile = types_1.Profile.DO_NOT_USE) {
573
+ speed = Math.max(-100, Math.min(100, speed));
574
+ maxPower = Math.max(0, Math.min(100, maxPower));
575
+ const signedSpeed = speed < 0 ? 256 + speed : speed;
576
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.START_SPEED, Buffer.from([signedSpeed, maxPower, useProfile]));
577
+ }
578
+ /**
579
+ * Set motor speed for dual motors (virtual port)
580
+ */
581
+ function createStartSpeedDual(portId, speed1, speed2, maxPower = 100, useProfile = types_1.Profile.DO_NOT_USE) {
582
+ speed1 = Math.max(-100, Math.min(100, speed1));
583
+ speed2 = Math.max(-100, Math.min(100, speed2));
584
+ maxPower = Math.max(0, Math.min(100, maxPower));
585
+ const signedSpeed1 = speed1 < 0 ? 256 + speed1 : speed1;
586
+ const signedSpeed2 = speed2 < 0 ? 256 + speed2 : speed2;
587
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.START_SPEED_DUAL, Buffer.from([signedSpeed1, signedSpeed2, maxPower, useProfile]));
588
+ }
589
+ /**
590
+ * Run motor for a specified time
591
+ */
592
+ function createStartSpeedForTime(portId, time, speed, maxPower = 100, endState = types_1.BrakingStyle.BRAKE, useProfile = types_1.Profile.DO_NOT_USE) {
593
+ speed = Math.max(-100, Math.min(100, speed));
594
+ maxPower = Math.max(0, Math.min(100, maxPower));
595
+ const signedSpeed = speed < 0 ? 256 + speed : speed;
596
+ const payload = Buffer.alloc(6);
597
+ payload.writeUInt16LE(time, 0);
598
+ payload[2] = signedSpeed;
599
+ payload[3] = maxPower;
600
+ payload[4] = endState;
601
+ payload[5] = useProfile;
602
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.START_SPEED_FOR_TIME, payload);
603
+ }
604
+ /**
605
+ * Run motor for a specified number of degrees
606
+ */
607
+ function createStartSpeedForDegrees(portId, degrees, speed, maxPower = 100, endState = types_1.BrakingStyle.BRAKE, useProfile = types_1.Profile.DO_NOT_USE) {
608
+ speed = Math.max(-100, Math.min(100, speed));
609
+ maxPower = Math.max(0, Math.min(100, maxPower));
610
+ const signedSpeed = speed < 0 ? 256 + speed : speed;
611
+ const payload = Buffer.alloc(8);
612
+ payload.writeInt32LE(Math.abs(degrees), 0);
613
+ payload[4] = signedSpeed;
614
+ payload[5] = maxPower;
615
+ payload[6] = endState;
616
+ payload[7] = useProfile;
617
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.START_SPEED_FOR_DEGREES, payload);
618
+ }
619
+ /**
620
+ * Go to absolute position
621
+ */
622
+ function createGotoAbsolutePosition(portId, position, speed, maxPower = 100, endState = types_1.BrakingStyle.BRAKE, useProfile = types_1.Profile.DO_NOT_USE) {
623
+ speed = Math.max(0, Math.min(100, Math.abs(speed)));
624
+ maxPower = Math.max(0, Math.min(100, maxPower));
625
+ const payload = Buffer.alloc(8);
626
+ payload.writeInt32LE(position, 0);
627
+ payload[4] = speed;
628
+ payload[5] = maxPower;
629
+ payload[6] = endState;
630
+ payload[7] = useProfile;
631
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.GOTO_ABSOLUTE_POSITION, payload);
632
+ }
633
+ /**
634
+ * Preset (reset) encoder position
635
+ */
636
+ function createPresetEncoder(portId, position = 0) {
637
+ const payload = Buffer.alloc(4);
638
+ payload.writeInt32LE(position, 0);
639
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.WRITE_DIRECT_MODE_DATA, Buffer.concat([Buffer.from([0x02]), payload]) // Mode 2 = position preset
640
+ );
641
+ }
642
+ /**
643
+ * Set acceleration time
644
+ */
645
+ function createSetAccTime(portId, time, profileNumber = 0) {
646
+ const payload = Buffer.alloc(3);
647
+ payload.writeUInt16LE(time, 0);
648
+ payload[2] = profileNumber;
649
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.SET_ACC_TIME, payload);
650
+ }
651
+ /**
652
+ * Set deceleration time
653
+ */
654
+ function createSetDecTime(portId, time, profileNumber = 0) {
655
+ const payload = Buffer.alloc(3);
656
+ payload.writeUInt16LE(time, 0);
657
+ payload[2] = profileNumber;
658
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.SET_DEC_TIME, payload);
659
+ }
660
+ // ============================================================================
661
+ // LED Commands
662
+ // ============================================================================
663
+ /**
664
+ * Set LED color by color number
665
+ */
666
+ function createSetLEDColor(portId, color) {
667
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.WRITE_DIRECT_MODE_DATA, Buffer.from([0x00, color]) // Mode 0 = color number
668
+ );
669
+ }
670
+ /**
671
+ * Set LED color by RGB values
672
+ */
673
+ function createSetLEDRGB(portId, red, green, blue) {
674
+ red = Math.max(0, Math.min(255, red));
675
+ green = Math.max(0, Math.min(255, green));
676
+ blue = Math.max(0, Math.min(255, blue));
677
+ return createPortOutputCommand(portId, 0x11, MotorSubCommand.WRITE_DIRECT_MODE_DATA, Buffer.from([0x01, red, green, blue]) // Mode 1 = RGB
678
+ );
679
+ }
680
+ // ============================================================================
681
+ // Utility Functions
682
+ // ============================================================================
683
+ /**
684
+ * Parse motor feedback flags
685
+ */
686
+ function parseMotorFeedback(feedback) {
687
+ return {
688
+ portId: 0, // To be set by caller
689
+ busy: (feedback & 0x01) !== 0,
690
+ completed: (feedback & 0x02) !== 0,
691
+ discarded: (feedback & 0x04) !== 0,
692
+ };
693
+ }
694
+ /**
695
+ * Convert hub property payload to typed value
696
+ */
697
+ function parseHubPropertyValue(property, payload) {
698
+ switch (property) {
699
+ case HubProperty.ADVERTISING_NAME:
700
+ return payload.toString("ascii").replace(/\0+$/, "");
701
+ case HubProperty.BUTTON:
702
+ return payload[0] === 1 ? types_1.ButtonState.PRESSED : types_1.ButtonState.RELEASED;
703
+ case HubProperty.FW_VERSION:
704
+ case HubProperty.HW_VERSION:
705
+ return decodeVersion(payload);
706
+ case HubProperty.RSSI:
707
+ return payload.readInt8(0);
708
+ case HubProperty.BATTERY_VOLTAGE:
709
+ return payload[0];
710
+ case HubProperty.BATTERY_TYPE:
711
+ return payload[0];
712
+ case HubProperty.MANUFACTURER_NAME:
713
+ case HubProperty.RADIO_FIRMWARE_VERSION:
714
+ return payload.toString("ascii").replace(/\0+$/, "");
715
+ case HubProperty.LWP_PROTOCOL_VERSION:
716
+ return `${(payload[1] >> 4) & 0x0f}${payload[1] & 0x0f}.${(payload[0] >> 4) & 0x0f}${payload[0] & 0x0f}`;
717
+ case HubProperty.SYSTEM_TYPE_ID:
718
+ return payload[0];
719
+ case HubProperty.HW_NETWORK_ID:
720
+ return payload[0];
721
+ case HubProperty.PRIMARY_MAC_ADDRESS:
722
+ case HubProperty.SECONDARY_MAC_ADDRESS:
723
+ return decodeMACAddress(payload);
724
+ case HubProperty.HW_NETWORK_FAMILY:
725
+ return payload[0];
726
+ default:
727
+ return payload;
728
+ }
729
+ }
730
+ //# sourceMappingURL=protocol.js.map