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,291 +0,0 @@
1
- /**
2
- * Hub - Main hub class for LEGO Powered UP hubs
3
- *
4
- * Follows the event-driven pattern from node-coral/node-wedo/node-controllab.
5
- * Hubs emit device attach/detach events when peripherals are connected/disconnected.
6
- */
7
- import { EventEmitter } from "events";
8
- import { HubType, DeviceType, Color, HubEventMap, HubProperties, BrakingStyle, DeviceInfo } from "./types";
9
- import { LWP3Connection, WeDo2Connection, BLEPeripheral } from "./connection";
10
- import { Device } from "./devices";
11
- /**
12
- * Base class for all LEGO Powered UP hubs
13
- */
14
- export declare abstract class BaseHub extends EventEmitter {
15
- protected _connection: LWP3Connection | WeDo2Connection;
16
- protected _peripheral: BLEPeripheral;
17
- protected _properties: HubProperties;
18
- protected _ports: Map<number, DeviceInfo>;
19
- protected _devices: Map<number, Device>;
20
- protected _isConnected: boolean;
21
- readonly hubType: HubType;
22
- constructor(peripheral: BLEPeripheral, hubType: HubType);
23
- /**
24
- * Connect to the hub
25
- */
26
- abstract connect(): Promise<void>;
27
- /**
28
- * Disconnect from the hub
29
- */
30
- abstract disconnect(): Promise<void>;
31
- /**
32
- * Shutdown the hub (power off)
33
- */
34
- abstract shutdown(): Promise<void>;
35
- /**
36
- * Get hub name
37
- */
38
- get name(): string;
39
- /**
40
- * Set hub name
41
- */
42
- abstract setName(name: string): Promise<void>;
43
- /**
44
- * Get firmware version
45
- */
46
- get firmwareVersion(): string;
47
- /**
48
- * Get hardware version
49
- */
50
- get hardwareVersion(): string;
51
- /**
52
- * Get battery level (0-100)
53
- */
54
- get batteryLevel(): number;
55
- /**
56
- * Get RSSI signal strength
57
- */
58
- get rssi(): number;
59
- /**
60
- * Check if hub is connected
61
- */
62
- get isConnected(): boolean;
63
- /**
64
- * Get attached ports
65
- */
66
- get ports(): Map<number, DeviceInfo>;
67
- /**
68
- * Get port info by port ID
69
- */
70
- getPort(portId: number): DeviceInfo | undefined;
71
- /**
72
- * Get ports by device type
73
- */
74
- getPortsByType(deviceType: DeviceType): DeviceInfo[];
75
- /**
76
- * Wait for a device of a specific type to be attached
77
- * @param deviceType The device type to wait for
78
- * @param timeout Timeout in milliseconds (default: 10000)
79
- * @returns Promise that resolves to the Device
80
- */
81
- waitForDeviceByType(deviceType: DeviceType, timeout?: number): Promise<Device>;
82
- /**
83
- * Wait for a device at a specific port
84
- * @param portName The port name (e.g., "A", "B", "LEFT", "RIGHT")
85
- * @param timeout Timeout in milliseconds (default: 10000)
86
- * @returns Promise that resolves to the Device
87
- */
88
- waitForDeviceAtPort(portName: string, timeout?: number): Promise<Device>;
89
- /**
90
- * Get existing device or create and register a new one
91
- */
92
- protected _getOrCreateDevice(portId: number, portInfo: DeviceInfo): Device;
93
- /**
94
- * Convert port name to port ID
95
- */
96
- protected _portNameToId(portName: string): number;
97
- /**
98
- * Sleep for a specified time
99
- * @param ms Time to sleep in milliseconds
100
- */
101
- sleep(ms: number): Promise<void>;
102
- on<K extends keyof HubEventMap>(event: K, listener: HubEventMap[K]): this;
103
- once<K extends keyof HubEventMap>(event: K, listener: HubEventMap[K]): this;
104
- emit<K extends keyof HubEventMap>(event: K, ...args: Parameters<HubEventMap[K]>): boolean;
105
- }
106
- /**
107
- * Hub class for LWP3-based hubs (Powered UP, Boost Move Hub, Technic, etc.)
108
- */
109
- export declare class LWP3Hub extends BaseHub {
110
- protected _connection: LWP3Connection;
111
- constructor(peripheral: BLEPeripheral, hubType: HubType);
112
- /**
113
- * Connect to the hub and initialize
114
- */
115
- connect(): Promise<void>;
116
- /**
117
- * Disconnect from the hub
118
- */
119
- disconnect(): Promise<void>;
120
- /**
121
- * Shutdown the hub (power off)
122
- */
123
- shutdown(): Promise<void>;
124
- /**
125
- * Set the hub name
126
- */
127
- setName(name: string): Promise<void>;
128
- /**
129
- * Set the hub LED color
130
- */
131
- setLEDColor(color: Color): Promise<void>;
132
- /**
133
- * Set the hub LED to RGB color
134
- */
135
- setLEDRGB(red: number, green: number, blue: number): Promise<void>;
136
- /**
137
- * Run a motor at a given power level (-100 to 100)
138
- */
139
- motorPower(portId: number, power: number): Promise<void>;
140
- /**
141
- * Run a motor at a given speed (-100 to 100) with power regulation
142
- */
143
- motorSpeed(portId: number, speed: number, maxPower?: number): Promise<void>;
144
- /**
145
- * Run a motor for a specified time
146
- */
147
- motorRunForTime(portId: number, time: number, speed: number, maxPower?: number, endState?: BrakingStyle): Promise<void>;
148
- /**
149
- * Run a motor for a specified number of degrees
150
- */
151
- motorRunForDegrees(portId: number, degrees: number, speed: number, maxPower?: number, endState?: BrakingStyle): Promise<void>;
152
- /**
153
- * Move motor to absolute position
154
- */
155
- motorGotoPosition(portId: number, position: number, speed: number, maxPower?: number, endState?: BrakingStyle): Promise<void>;
156
- /**
157
- * Stop a motor
158
- */
159
- motorStop(portId: number): Promise<void>;
160
- /**
161
- * Brake a motor
162
- */
163
- motorBrake(portId: number): Promise<void>;
164
- /**
165
- * Subscribe to sensor updates on a port
166
- */
167
- subscribe(portId: number, mode?: number, deltaInterval?: number): Promise<void>;
168
- /**
169
- * Unsubscribe from sensor updates on a port
170
- */
171
- unsubscribe(portId: number, mode?: number): Promise<void>;
172
- /**
173
- * Send raw command to the hub
174
- */
175
- sendRaw(data: Buffer): Promise<void>;
176
- private _requestHubProperties;
177
- private _enableButtonNotifications;
178
- private _handleMessage;
179
- private _handleHubProperty;
180
- private _handleAttachedIO;
181
- private _handlePortValue;
182
- private _handleCommandFeedback;
183
- private _handleAlert;
184
- private _handleError;
185
- private _handleDisconnect;
186
- private _findPortByDeviceType;
187
- private _parseVersion;
188
- }
189
- /**
190
- * Hub class for WeDo 2.0 Smart Hub
191
- */
192
- export declare class WeDo2Hub extends BaseHub {
193
- protected _connection: WeDo2Connection;
194
- constructor(peripheral: BLEPeripheral);
195
- /**
196
- * Connect to the hub and initialize
197
- */
198
- connect(): Promise<void>;
199
- /**
200
- * Disconnect from the hub
201
- */
202
- disconnect(): Promise<void>;
203
- /**
204
- * Shutdown the hub (WeDo 2.0 doesn't support remote shutdown)
205
- */
206
- shutdown(): Promise<void>;
207
- /**
208
- * Set the hub name
209
- */
210
- setName(name: string): Promise<void>;
211
- /**
212
- * Set the hub LED color
213
- */
214
- setLEDColor(color: Color): Promise<void>;
215
- /**
216
- * Set the hub LED to RGB color
217
- */
218
- setLEDRGB(red: number, green: number, blue: number): Promise<void>;
219
- /**
220
- * Run a motor at a given power level (-100 to 100)
221
- */
222
- motorPower(portId: number, power: number): Promise<void>;
223
- /**
224
- * Stop a motor
225
- */
226
- motorStop(portId: number): Promise<void>;
227
- /**
228
- * Play a tone
229
- */
230
- playTone(frequency: number, duration: number): Promise<void>;
231
- /**
232
- * Stop tone playback
233
- */
234
- stopTone(): Promise<void>;
235
- /**
236
- * Set sensor mode
237
- */
238
- setSensorMode(portId: number, mode: number): Promise<void>;
239
- /**
240
- * Send raw command
241
- */
242
- sendRaw(characteristicUUID: string, data: Buffer): Promise<void>;
243
- private _handleMessage;
244
- private _handlePortInfo;
245
- private _handleSensorValue;
246
- private _handleButton;
247
- private _handleBattery;
248
- private _handleDisconnect;
249
- }
250
- /**
251
- * Create a hub instance based on the hub type
252
- */
253
- export declare function createHub(peripheral: BLEPeripheral, hubType: HubType): BaseHub;
254
- /**
255
- * Move Hub (Boost) with built-in tilt sensor and motors
256
- */
257
- export declare class MoveHub extends LWP3Hub {
258
- constructor(peripheral: BLEPeripheral);
259
- get motorAPort(): number;
260
- get motorBPort(): number;
261
- get tiltSensorPort(): number;
262
- get colorSensorPort(): number;
263
- }
264
- /**
265
- * Technic Medium Hub with gyro and accelerometer
266
- */
267
- export declare class TechnicMediumHub extends LWP3Hub {
268
- constructor(peripheral: BLEPeripheral);
269
- get gyroPort(): number;
270
- get accelerometerPort(): number;
271
- get tiltSensorPort(): number;
272
- }
273
- /**
274
- * Remote Control
275
- */
276
- export declare class RemoteControl extends LWP3Hub {
277
- constructor(peripheral: BLEPeripheral);
278
- get leftButtonPort(): number;
279
- get rightButtonPort(): number;
280
- }
281
- /**
282
- * Duplo Train Base
283
- */
284
- export declare class DuploTrainBase extends LWP3Hub {
285
- constructor(peripheral: BLEPeripheral);
286
- get motorPort(): number;
287
- get colorSensorPort(): number;
288
- get speedometerPort(): number;
289
- get speakerPort(): number;
290
- playSound(sound: number): Promise<void>;
291
- }