node-poweredup 10.0.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +0 -1
  2. package/dist/browser/poweredup.js +6193 -0
  3. package/dist/browser/poweredup.js.map +7 -0
  4. package/dist/consts.d.ts +40 -0
  5. package/dist/consts.d.ts.map +1 -1
  6. package/dist/consts.js +42 -0
  7. package/dist/consts.js.map +1 -1
  8. package/dist/devices/absolutemotor.d.ts +8 -6
  9. package/dist/devices/absolutemotor.d.ts.map +1 -1
  10. package/dist/devices/absolutemotor.js +24 -31
  11. package/dist/devices/absolutemotor.js.map +1 -1
  12. package/dist/devices/basicmotor.d.ts +11 -10
  13. package/dist/devices/basicmotor.d.ts.map +1 -1
  14. package/dist/devices/basicmotor.js +16 -22
  15. package/dist/devices/basicmotor.js.map +1 -1
  16. package/dist/devices/colordistancesensor.d.ts +13 -12
  17. package/dist/devices/colordistancesensor.d.ts.map +1 -1
  18. package/dist/devices/colordistancesensor.js +25 -31
  19. package/dist/devices/colordistancesensor.js.map +1 -1
  20. package/dist/devices/device.d.ts +15 -6
  21. package/dist/devices/device.d.ts.map +1 -1
  22. package/dist/devices/device.js +209 -21
  23. package/dist/devices/device.js.map +1 -1
  24. package/dist/devices/duplotrainbasespeaker.d.ts +4 -4
  25. package/dist/devices/duplotrainbasespeaker.d.ts.map +1 -1
  26. package/dist/devices/duplotrainbasespeaker.js +5 -8
  27. package/dist/devices/duplotrainbasespeaker.js.map +1 -1
  28. package/dist/devices/hubled.d.ts +5 -4
  29. package/dist/devices/hubled.d.ts.map +1 -1
  30. package/dist/devices/hubled.js +24 -24
  31. package/dist/devices/hubled.js.map +1 -1
  32. package/dist/devices/light.d.ts +7 -4
  33. package/dist/devices/light.d.ts.map +1 -1
  34. package/dist/devices/light.js +11 -17
  35. package/dist/devices/light.js.map +1 -1
  36. package/dist/devices/piezobuzzer.d.ts +3 -2
  37. package/dist/devices/piezobuzzer.d.ts.map +1 -1
  38. package/dist/devices/piezobuzzer.js +2 -2
  39. package/dist/devices/piezobuzzer.js.map +1 -1
  40. package/dist/devices/tachomotor.d.ts +14 -8
  41. package/dist/devices/tachomotor.d.ts.map +1 -1
  42. package/dist/devices/tachomotor.js +50 -56
  43. package/dist/devices/tachomotor.js.map +1 -1
  44. package/dist/devices/technic3x3colorlightmatrix.d.ts +3 -2
  45. package/dist/devices/technic3x3colorlightmatrix.d.ts.map +1 -1
  46. package/dist/devices/technic3x3colorlightmatrix.js +20 -23
  47. package/dist/devices/technic3x3colorlightmatrix.js.map +1 -1
  48. package/dist/devices/techniccolorsensor.d.ts +9 -4
  49. package/dist/devices/techniccolorsensor.d.ts.map +1 -1
  50. package/dist/devices/techniccolorsensor.js +99 -8
  51. package/dist/devices/techniccolorsensor.js.map +1 -1
  52. package/dist/devices/technicdistancesensor.d.ts +1 -1
  53. package/dist/devices/technicdistancesensor.js +1 -1
  54. package/dist/devices/technicmediumhubtiltsensor.d.ts +7 -6
  55. package/dist/devices/technicmediumhubtiltsensor.d.ts.map +1 -1
  56. package/dist/devices/technicmediumhubtiltsensor.js +9 -18
  57. package/dist/devices/technicmediumhubtiltsensor.js.map +1 -1
  58. package/dist/devices/tiltsensor.d.ts +4 -1
  59. package/dist/devices/tiltsensor.d.ts.map +1 -1
  60. package/dist/devices/tiltsensor.js +84 -3
  61. package/dist/devices/tiltsensor.js.map +1 -1
  62. package/dist/hubs/basehub.d.ts +1 -0
  63. package/dist/hubs/basehub.d.ts.map +1 -1
  64. package/dist/hubs/basehub.js +17 -0
  65. package/dist/hubs/basehub.js.map +1 -1
  66. package/dist/hubs/lpf2hub.d.ts +1 -0
  67. package/dist/hubs/lpf2hub.d.ts.map +1 -1
  68. package/dist/hubs/lpf2hub.js +11 -0
  69. package/dist/hubs/lpf2hub.js.map +1 -1
  70. package/dist/portoutputcommand.d.ts +13 -0
  71. package/dist/portoutputcommand.d.ts.map +1 -0
  72. package/dist/portoutputcommand.js +30 -0
  73. package/dist/portoutputcommand.js.map +1 -0
  74. package/dist/portoutputsleep.d.ts +6 -0
  75. package/dist/portoutputsleep.d.ts.map +1 -0
  76. package/dist/portoutputsleep.js +10 -0
  77. package/dist/portoutputsleep.js.map +1 -0
  78. package/dist/utils.d.ts +1 -3
  79. package/dist/utils.d.ts.map +1 -1
  80. package/dist/utils.js +13 -19
  81. package/dist/utils.js.map +1 -1
  82. package/package.json +1 -1
  83. package/src/consts.ts +44 -0
  84. package/src/devices/absolutemotor.ts +24 -31
  85. package/src/devices/basicmotor.ts +16 -22
  86. package/src/devices/colordistancesensor.ts +23 -29
  87. package/src/devices/device.ts +198 -20
  88. package/src/devices/duplotrainbasespeaker.ts +5 -8
  89. package/src/devices/hubled.ts +22 -22
  90. package/src/devices/light.ts +11 -18
  91. package/src/devices/piezobuzzer.ts +3 -3
  92. package/src/devices/tachomotor.ts +47 -53
  93. package/src/devices/technic3x3colorlightmatrix.ts +20 -23
  94. package/src/devices/techniccolorsensor.ts +102 -10
  95. package/src/devices/technicdistancesensor.ts +1 -1
  96. package/src/devices/technicmediumhubtiltsensor.ts +9 -18
  97. package/src/devices/tiltsensor.ts +85 -5
  98. package/src/hubs/basehub.ts +18 -0
  99. package/src/hubs/lpf2hub.ts +12 -5
  100. package/src/portoutputcommand.ts +37 -0
  101. package/src/portoutputsleep.ts +11 -0
  102. package/src/utils.ts +14 -19
  103. package/tsconfig.tsbuildinfo +1 -1
  104. package/webpack.config.cjs +35 -0
  105. package/dist/node/color.d.ts +0 -6
  106. package/dist/node/color.js +0 -15
  107. package/dist/node/color.js.map +0 -1
  108. package/dist/node/commands.d.ts +0 -299
  109. package/dist/node/commands.js +0 -672
  110. package/dist/node/commands.js.map +0 -1
  111. package/dist/node/connection.d.ts +0 -187
  112. package/dist/node/connection.js +0 -478
  113. package/dist/node/connection.js.map +0 -1
  114. package/dist/node/consts.d.ts +0 -644
  115. package/dist/node/consts.js +0 -675
  116. package/dist/node/consts.js.map +0 -1
  117. package/dist/node/devices/absolutemotor.d.ts +0 -43
  118. package/dist/node/devices/absolutemotor.js +0 -118
  119. package/dist/node/devices/absolutemotor.js.map +0 -1
  120. package/dist/node/devices/basicmotor.d.ts +0 -40
  121. package/dist/node/devices/basicmotor.js +0 -61
  122. package/dist/node/devices/basicmotor.js.map +0 -1
  123. package/dist/node/devices/colordistancesensor.d.ts +0 -79
  124. package/dist/node/devices/colordistancesensor.js +0 -284
  125. package/dist/node/devices/colordistancesensor.js.map +0 -1
  126. package/dist/node/devices/currentsensor.d.ts +0 -16
  127. package/dist/node/devices/currentsensor.js +0 -55
  128. package/dist/node/devices/currentsensor.js.map +0 -1
  129. package/dist/node/devices/device.d.ts +0 -71
  130. package/dist/node/devices/device.js +0 -162
  131. package/dist/node/devices/device.js.map +0 -1
  132. package/dist/node/devices/duplotrainbasecolorsensor.d.ts +0 -19
  133. package/dist/node/devices/duplotrainbasecolorsensor.js +0 -77
  134. package/dist/node/devices/duplotrainbasecolorsensor.js.map +0 -1
  135. package/dist/node/devices/duplotrainbasemotor.d.ts +0 -9
  136. package/dist/node/devices/duplotrainbasemotor.js +0 -12
  137. package/dist/node/devices/duplotrainbasemotor.js.map +0 -1
  138. package/dist/node/devices/duplotrainbasespeaker.d.ts +0 -28
  139. package/dist/node/devices/duplotrainbasespeaker.js +0 -40
  140. package/dist/node/devices/duplotrainbasespeaker.js.map +0 -1
  141. package/dist/node/devices/duplotrainbasespeedometer.d.ts +0 -16
  142. package/dist/node/devices/duplotrainbasespeedometer.js +0 -34
  143. package/dist/node/devices/duplotrainbasespeedometer.js.map +0 -1
  144. package/dist/node/devices/hubled.d.ts +0 -29
  145. package/dist/node/devices/hubled.js +0 -60
  146. package/dist/node/devices/hubled.js.map +0 -1
  147. package/dist/node/devices/index.d.ts +0 -14
  148. package/dist/node/devices/index.js +0 -154
  149. package/dist/node/devices/index.js.map +0 -1
  150. package/dist/node/devices/led.d.ts +0 -140
  151. package/dist/node/devices/led.js +0 -295
  152. package/dist/node/devices/led.js.map +0 -1
  153. package/dist/node/devices/light.d.ts +0 -25
  154. package/dist/node/devices/light.js +0 -46
  155. package/dist/node/devices/light.js.map +0 -1
  156. package/dist/node/devices/marioaccelerometer.d.ts +0 -17
  157. package/dist/node/devices/marioaccelerometer.js +0 -50
  158. package/dist/node/devices/marioaccelerometer.js.map +0 -1
  159. package/dist/node/devices/mariobarcodesensor.d.ts +0 -17
  160. package/dist/node/devices/mariobarcodesensor.js +0 -58
  161. package/dist/node/devices/mariobarcodesensor.js.map +0 -1
  162. package/dist/node/devices/mariopantssensor.d.ts +0 -16
  163. package/dist/node/devices/mariopantssensor.js +0 -34
  164. package/dist/node/devices/mariopantssensor.js.map +0 -1
  165. package/dist/node/devices/mediumlinearmotor.d.ts +0 -9
  166. package/dist/node/devices/mediumlinearmotor.js +0 -12
  167. package/dist/node/devices/mediumlinearmotor.js.map +0 -1
  168. package/dist/node/devices/motionsensor.d.ts +0 -16
  169. package/dist/node/devices/motionsensor.js +0 -38
  170. package/dist/node/devices/motionsensor.js.map +0 -1
  171. package/dist/node/devices/motor.d.ts +0 -182
  172. package/dist/node/devices/motor.js +0 -367
  173. package/dist/node/devices/motor.js.map +0 -1
  174. package/dist/node/devices/movehubmediumlinearmotor.d.ts +0 -9
  175. package/dist/node/devices/movehubmediumlinearmotor.js +0 -12
  176. package/dist/node/devices/movehubmediumlinearmotor.js.map +0 -1
  177. package/dist/node/devices/movehubtiltsensor.d.ts +0 -16
  178. package/dist/node/devices/movehubtiltsensor.js +0 -36
  179. package/dist/node/devices/movehubtiltsensor.js.map +0 -1
  180. package/dist/node/devices/piezobuzzer.d.ts +0 -17
  181. package/dist/node/devices/piezobuzzer.js +0 -28
  182. package/dist/node/devices/piezobuzzer.js.map +0 -1
  183. package/dist/node/devices/remotecontrolbutton.d.ts +0 -19
  184. package/dist/node/devices/remotecontrolbutton.js +0 -40
  185. package/dist/node/devices/remotecontrolbutton.js.map +0 -1
  186. package/dist/node/devices/sensor.d.ts +0 -305
  187. package/dist/node/devices/sensor.js +0 -662
  188. package/dist/node/devices/sensor.js.map +0 -1
  189. package/dist/node/devices/simplemediumlinearmotor.d.ts +0 -9
  190. package/dist/node/devices/simplemediumlinearmotor.js +0 -12
  191. package/dist/node/devices/simplemediumlinearmotor.js.map +0 -1
  192. package/dist/node/devices/tachomotor.d.ts +0 -70
  193. package/dist/node/devices/tachomotor.js +0 -167
  194. package/dist/node/devices/tachomotor.js.map +0 -1
  195. package/dist/node/devices/technic3x3colorlightmatrix.d.ts +0 -22
  196. package/dist/node/devices/technic3x3colorlightmatrix.js +0 -54
  197. package/dist/node/devices/technic3x3colorlightmatrix.js.map +0 -1
  198. package/dist/node/devices/techniccolorsensor.d.ts +0 -27
  199. package/dist/node/devices/techniccolorsensor.js +0 -72
  200. package/dist/node/devices/techniccolorsensor.js.map +0 -1
  201. package/dist/node/devices/technicdistancesensor.d.ts +0 -27
  202. package/dist/node/devices/technicdistancesensor.js +0 -58
  203. package/dist/node/devices/technicdistancesensor.js.map +0 -1
  204. package/dist/node/devices/technicforcesensor.d.ts +0 -18
  205. package/dist/node/devices/technicforcesensor.js +0 -58
  206. package/dist/node/devices/technicforcesensor.js.map +0 -1
  207. package/dist/node/devices/techniclargeangularmotor.d.ts +0 -12
  208. package/dist/node/devices/techniclargeangularmotor.js +0 -12
  209. package/dist/node/devices/techniclargeangularmotor.js.map +0 -1
  210. package/dist/node/devices/techniclargelinearmotor.d.ts +0 -9
  211. package/dist/node/devices/techniclargelinearmotor.js +0 -12
  212. package/dist/node/devices/techniclargelinearmotor.js.map +0 -1
  213. package/dist/node/devices/technicmediumangularmotor.d.ts +0 -12
  214. package/dist/node/devices/technicmediumangularmotor.js +0 -12
  215. package/dist/node/devices/technicmediumangularmotor.js.map +0 -1
  216. package/dist/node/devices/technicmediumhubaccelerometersensor.d.ts +0 -16
  217. package/dist/node/devices/technicmediumhubaccelerometersensor.js +0 -38
  218. package/dist/node/devices/technicmediumhubaccelerometersensor.js.map +0 -1
  219. package/dist/node/devices/technicmediumhubgyrosensor.d.ts +0 -16
  220. package/dist/node/devices/technicmediumhubgyrosensor.js +0 -38
  221. package/dist/node/devices/technicmediumhubgyrosensor.js.map +0 -1
  222. package/dist/node/devices/technicmediumhubtiltsensor.d.ts +0 -40
  223. package/dist/node/devices/technicmediumhubtiltsensor.js +0 -106
  224. package/dist/node/devices/technicmediumhubtiltsensor.js.map +0 -1
  225. package/dist/node/devices/technicsmallangularmotor.d.ts +0 -12
  226. package/dist/node/devices/technicsmallangularmotor.js +0 -12
  227. package/dist/node/devices/technicsmallangularmotor.js.map +0 -1
  228. package/dist/node/devices/technicxlargelinearmotor.d.ts +0 -9
  229. package/dist/node/devices/technicxlargelinearmotor.js +0 -12
  230. package/dist/node/devices/technicxlargelinearmotor.js.map +0 -1
  231. package/dist/node/devices/tiltsensor.d.ts +0 -16
  232. package/dist/node/devices/tiltsensor.js +0 -36
  233. package/dist/node/devices/tiltsensor.js.map +0 -1
  234. package/dist/node/devices/trainmotor.d.ts +0 -9
  235. package/dist/node/devices/trainmotor.js +0 -12
  236. package/dist/node/devices/trainmotor.js.map +0 -1
  237. package/dist/node/devices/voltagesensor.d.ts +0 -16
  238. package/dist/node/devices/voltagesensor.js +0 -59
  239. package/dist/node/devices/voltagesensor.js.map +0 -1
  240. package/dist/node/hub.d.ts +0 -291
  241. package/dist/node/hub.js +0 -778
  242. package/dist/node/hub.js.map +0 -1
  243. package/dist/node/hubs/basehub.d.ts +0 -162
  244. package/dist/node/hubs/basehub.js +0 -392
  245. package/dist/node/hubs/basehub.js.map +0 -1
  246. package/dist/node/hubs/duplotrainbase.d.ts +0 -17
  247. package/dist/node/hubs/duplotrainbase.js +0 -35
  248. package/dist/node/hubs/duplotrainbase.js.map +0 -1
  249. package/dist/node/hubs/hub.d.ts +0 -19
  250. package/dist/node/hubs/hub.js +0 -44
  251. package/dist/node/hubs/hub.js.map +0 -1
  252. package/dist/node/hubs/lpf2hub.d.ts +0 -48
  253. package/dist/node/hubs/lpf2hub.js +0 -314
  254. package/dist/node/hubs/lpf2hub.js.map +0 -1
  255. package/dist/node/hubs/mario.d.ts +0 -17
  256. package/dist/node/hubs/mario.js +0 -31
  257. package/dist/node/hubs/mario.js.map +0 -1
  258. package/dist/node/hubs/movehub.d.ts +0 -18
  259. package/dist/node/hubs/movehub.js +0 -46
  260. package/dist/node/hubs/movehub.js.map +0 -1
  261. package/dist/node/hubs/remotecontrol.d.ts +0 -17
  262. package/dist/node/hubs/remotecontrol.js +0 -37
  263. package/dist/node/hubs/remotecontrol.js.map +0 -1
  264. package/dist/node/hubs/technicmediumhub.d.ts +0 -17
  265. package/dist/node/hubs/technicmediumhub.js +0 -42
  266. package/dist/node/hubs/technicmediumhub.js.map +0 -1
  267. package/dist/node/hubs/technicsmallhub.d.ts +0 -18
  268. package/dist/node/hubs/technicsmallhub.js +0 -41
  269. package/dist/node/hubs/technicsmallhub.js.map +0 -1
  270. package/dist/node/hubs/wedo2smarthub.d.ts +0 -40
  271. package/dist/node/hubs/wedo2smarthub.js +0 -188
  272. package/dist/node/hubs/wedo2smarthub.js.map +0 -1
  273. package/dist/node/index-browser.d.ts +0 -1
  274. package/dist/node/index-browser.js +0 -96
  275. package/dist/node/index-browser.js.map +0 -1
  276. package/dist/node/index-node.d.ts +0 -49
  277. package/dist/node/index-node.js +0 -50
  278. package/dist/node/index-node.js.map +0 -1
  279. package/dist/node/index.d.ts +0 -31
  280. package/dist/node/index.js +0 -93
  281. package/dist/node/index.js.map +0 -1
  282. package/dist/node/index.mjs +0 -0
  283. package/dist/node/interfaces.d.ts +0 -23
  284. package/dist/node/interfaces.js +0 -2
  285. package/dist/node/interfaces.js.map +0 -1
  286. package/dist/node/nobleabstraction.d.ts +0 -26
  287. package/dist/node/nobleabstraction.js +0 -123
  288. package/dist/node/nobleabstraction.js.map +0 -1
  289. package/dist/node/poweredup-browser.d.ts +0 -50
  290. package/dist/node/poweredup-browser.js +0 -216
  291. package/dist/node/poweredup-browser.js.map +0 -1
  292. package/dist/node/poweredup-node.d.ts +0 -54
  293. package/dist/node/poweredup-node.js +0 -173
  294. package/dist/node/poweredup-node.js.map +0 -1
  295. package/dist/node/poweredup.d.ts +0 -83
  296. package/dist/node/poweredup.js +0 -542
  297. package/dist/node/poweredup.js.map +0 -1
  298. package/dist/node/protocol-wedo.d.ts +0 -158
  299. package/dist/node/protocol-wedo.js +0 -342
  300. package/dist/node/protocol-wedo.js.map +0 -1
  301. package/dist/node/protocol.d.ts +0 -340
  302. package/dist/node/protocol.js +0 -730
  303. package/dist/node/protocol.js.map +0 -1
  304. package/dist/node/types.d.ts +0 -408
  305. package/dist/node/types.js +0 -291
  306. package/dist/node/types.js.map +0 -1
  307. package/dist/node/utils.d.ts +0 -12
  308. package/dist/node/utils.js +0 -90
  309. package/dist/node/utils.js.map +0 -1
  310. package/dist/node/webbleabstraction.d.ts +0 -26
  311. package/dist/node/webbleabstraction.js +0 -104
  312. package/dist/node/webbleabstraction.js.map +0 -1
  313. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
@@ -1,187 +0,0 @@
1
- /**
2
- * PoweredUp Connection
3
- * BLE connection abstraction layer
4
- */
5
- import { EventEmitter } from "events";
6
- import * as Protocol from "./protocol";
7
- import { HubState, HubType } from "./types";
8
- /**
9
- * BLE peripheral abstraction (to be implemented by Noble/Web Bluetooth adapters)
10
- */
11
- export interface BLEPeripheral {
12
- id: string;
13
- uuid: string;
14
- name: string;
15
- rssi: number;
16
- manufacturerData?: Buffer;
17
- connect(): Promise<void>;
18
- disconnect(): Promise<void>;
19
- discoverServices(serviceUUIDs?: string[]): Promise<BLEService[]>;
20
- }
21
- /**
22
- * BLE service abstraction
23
- */
24
- export interface BLEService {
25
- uuid: string;
26
- discoverCharacteristics(characteristicUUIDs?: string[]): Promise<BLECharacteristic[]>;
27
- }
28
- /**
29
- * BLE characteristic abstraction
30
- */
31
- export interface BLECharacteristic {
32
- uuid: string;
33
- subscribe(callback: (data: Buffer) => void): Promise<void>;
34
- unsubscribe(): Promise<void>;
35
- write(data: Buffer, withoutResponse?: boolean): Promise<void>;
36
- read(): Promise<Buffer>;
37
- }
38
- /**
39
- * Connection event map
40
- */
41
- export interface ConnectionEventMap {
42
- message: (message: Protocol.DecodedMessage) => void;
43
- rawMessage: (data: Buffer) => void;
44
- disconnect: () => void;
45
- error: (error: Error) => void;
46
- }
47
- /**
48
- * Connection class for LWP3 (LEGO Wireless Protocol 3.0) hubs
49
- */
50
- export declare class LWP3Connection extends EventEmitter {
51
- private peripheral;
52
- private characteristic;
53
- private messageBuffer;
54
- private _state;
55
- constructor(peripheral: BLEPeripheral);
56
- private handleNotificationBound;
57
- /**
58
- * Current connection state
59
- */
60
- get state(): HubState;
61
- /**
62
- * Peripheral UUID
63
- */
64
- get uuid(): string;
65
- /**
66
- * Peripheral name
67
- */
68
- get name(): string;
69
- /**
70
- * Open connection to the hub
71
- */
72
- open(): Promise<void>;
73
- /**
74
- * Close connection
75
- */
76
- close(): Promise<void>;
77
- /**
78
- * Send a raw message to the hub
79
- */
80
- send(message: Buffer): Promise<void>;
81
- /**
82
- * Handle incoming BLE notification
83
- */
84
- private handleNotification;
85
- /**
86
- * Process accumulated message buffer
87
- */
88
- private processMessageBuffer;
89
- }
90
- import * as WeDo2Protocol from "./protocol-wedo";
91
- /**
92
- * WeDo 2.0 connection event map
93
- */
94
- export interface WeDo2ConnectionEventMap {
95
- port: (message: WeDo2Protocol.WeDo2PortMessage) => void;
96
- sensor: (message: WeDo2Protocol.WeDo2SensorMessage) => void;
97
- button: (message: WeDo2Protocol.WeDo2ButtonMessage) => void;
98
- battery: (message: WeDo2Protocol.WeDo2BatteryMessage) => void;
99
- alert: (message: WeDo2Protocol.WeDo2AlertMessage) => void;
100
- disconnect: () => void;
101
- error: (error: Error) => void;
102
- }
103
- /**
104
- * Connection class for WeDo 2.0 Smart Hub
105
- */
106
- export declare class WeDo2Connection extends EventEmitter {
107
- private peripheral;
108
- private characteristics;
109
- private _state;
110
- constructor(peripheral: BLEPeripheral);
111
- /**
112
- * Current connection state
113
- */
114
- get state(): HubState;
115
- /**
116
- * Peripheral UUID
117
- */
118
- get uuid(): string;
119
- /**
120
- * Peripheral name
121
- */
122
- get name(): string;
123
- /**
124
- * Open connection to the hub
125
- */
126
- open(): Promise<void>;
127
- /**
128
- * Subscribe to all relevant notifications
129
- */
130
- private subscribeToNotifications;
131
- /**
132
- * Close connection
133
- */
134
- close(): Promise<void>;
135
- /**
136
- * Send data to a characteristic
137
- */
138
- send(characteristicUUID: string, data: Buffer): Promise<void>;
139
- /**
140
- * Read from a characteristic
141
- */
142
- read(characteristicUUID: string): Promise<Buffer>;
143
- /**
144
- * Send motor command
145
- */
146
- sendMotorCommand(portId: number, power: number): Promise<void>;
147
- /**
148
- * Send LED color command
149
- */
150
- sendLEDColor(color: number): Promise<void>;
151
- /**
152
- * Send LED RGB command
153
- */
154
- sendLEDRGB(red: number, green: number, blue: number): Promise<void>;
155
- /**
156
- * Send sensor subscription
157
- */
158
- subscribe(portId: number, deviceType: number, mode: number): Promise<void>;
159
- /**
160
- * Send sensor unsubscription
161
- */
162
- unsubscribe(portId: number, deviceType: number, mode: number): Promise<void>;
163
- /**
164
- * Send disconnect command
165
- */
166
- sendDisconnect(): Promise<void>;
167
- /**
168
- * Get battery level
169
- */
170
- getBatteryLevel(): Promise<number>;
171
- /**
172
- * Get firmware version
173
- */
174
- getFirmwareVersion(): Promise<string>;
175
- }
176
- /**
177
- * Detect hub type from manufacturer data
178
- */
179
- export declare function detectHubType(manufacturerData?: Buffer): HubType;
180
- /**
181
- * Check if peripheral is a WeDo 2.0 Smart Hub
182
- */
183
- export declare function isWeDo2SmartHub(serviceUUIDs?: string[]): boolean;
184
- /**
185
- * Check if peripheral is an LWP3 hub
186
- */
187
- export declare function isLWP3Hub(serviceUUIDs?: string[]): boolean;
@@ -1,478 +0,0 @@
1
- "use strict";
2
- /**
3
- * PoweredUp Connection
4
- * BLE connection abstraction layer
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.WeDo2Connection = exports.LWP3Connection = void 0;
41
- exports.detectHubType = detectHubType;
42
- exports.isWeDo2SmartHub = isWeDo2SmartHub;
43
- exports.isLWP3Hub = isLWP3Hub;
44
- const events_1 = require("events");
45
- const Protocol = __importStar(require("./protocol"));
46
- const types_1 = require("./types");
47
- const Debug = require("debug");
48
- const debug = Debug("poweredup:connection");
49
- // ============================================================================
50
- // LWP3 Connection Class
51
- // ============================================================================
52
- /**
53
- * Connection class for LWP3 (LEGO Wireless Protocol 3.0) hubs
54
- */
55
- class LWP3Connection extends events_1.EventEmitter {
56
- constructor(peripheral) {
57
- super();
58
- this.characteristic = null;
59
- this.messageBuffer = Buffer.alloc(0);
60
- this._state = types_1.HubState.NOT_CONNECTED;
61
- this.peripheral = peripheral;
62
- this.handleNotificationBound = this.handleNotification.bind(this);
63
- }
64
- /**
65
- * Current connection state
66
- */
67
- get state() {
68
- return this._state;
69
- }
70
- /**
71
- * Peripheral UUID
72
- */
73
- get uuid() {
74
- return this.peripheral.uuid;
75
- }
76
- /**
77
- * Peripheral name
78
- */
79
- get name() {
80
- return this.peripheral.name;
81
- }
82
- /**
83
- * Open connection to the hub
84
- */
85
- async open() {
86
- if (this._state !== types_1.HubState.NOT_CONNECTED) {
87
- throw new Error("Connection already open or opening");
88
- }
89
- this._state = types_1.HubState.CONNECTING;
90
- debug("Connecting to hub:", this.peripheral.name);
91
- try {
92
- await this.peripheral.connect();
93
- // Discover LWP3 service
94
- const services = await this.peripheral.discoverServices([Protocol.BLE_SERVICE_UUID]);
95
- if (services.length === 0) {
96
- throw new Error("LWP3 service not found");
97
- }
98
- // Discover characteristic
99
- const characteristics = await services[0].discoverCharacteristics([Protocol.BLE_CHARACTERISTIC_UUID]);
100
- if (characteristics.length === 0) {
101
- throw new Error("LWP3 characteristic not found");
102
- }
103
- this.characteristic = characteristics[0];
104
- // Subscribe to notifications
105
- await this.characteristic.subscribe(this.handleNotificationBound);
106
- this._state = types_1.HubState.CONNECTED;
107
- debug("Connected to hub:", this.peripheral.name);
108
- }
109
- catch (error) {
110
- this._state = types_1.HubState.NOT_CONNECTED;
111
- throw error;
112
- }
113
- }
114
- /**
115
- * Close connection
116
- */
117
- async close() {
118
- if (this._state === types_1.HubState.NOT_CONNECTED) {
119
- return;
120
- }
121
- this._state = types_1.HubState.DISCONNECTING;
122
- debug("Disconnecting from hub:", this.peripheral.name);
123
- try {
124
- if (this.characteristic) {
125
- await this.characteristic.unsubscribe();
126
- }
127
- await this.peripheral.disconnect();
128
- }
129
- finally {
130
- this._state = types_1.HubState.NOT_CONNECTED;
131
- this.messageBuffer = Buffer.alloc(0);
132
- this.emit("disconnect");
133
- debug("Disconnected from hub:", this.peripheral.name);
134
- }
135
- }
136
- /**
137
- * Send a raw message to the hub
138
- */
139
- async send(message) {
140
- if (this._state !== types_1.HubState.CONNECTED || !this.characteristic) {
141
- throw new Error("Not connected");
142
- }
143
- debug("Sending message:", message.toString("hex"));
144
- await this.characteristic.write(message, true);
145
- }
146
- /**
147
- * Handle incoming BLE notification
148
- */
149
- handleNotification(data) {
150
- debug("Received raw data:", data.toString("hex"));
151
- this.emit("rawMessage", data);
152
- // Accumulate data in buffer
153
- this.messageBuffer = Buffer.concat([this.messageBuffer, data]);
154
- // Process complete messages
155
- this.processMessageBuffer();
156
- }
157
- /**
158
- * Process accumulated message buffer
159
- */
160
- processMessageBuffer() {
161
- while (this.messageBuffer.length > 0) {
162
- const { length, headerSize } = Protocol.decodeMessageLength(this.messageBuffer);
163
- if (length === 0 || this.messageBuffer.length < length) {
164
- // Not enough data yet
165
- break;
166
- }
167
- // Extract complete message
168
- const messageData = this.messageBuffer.subarray(0, length);
169
- this.messageBuffer = this.messageBuffer.subarray(length);
170
- debug("Processing message:", messageData.toString("hex"));
171
- // Decode and emit
172
- const decoded = Protocol.decodeMessage(messageData);
173
- if (decoded) {
174
- this.emit("message", decoded);
175
- }
176
- }
177
- }
178
- }
179
- exports.LWP3Connection = LWP3Connection;
180
- // ============================================================================
181
- // WeDo 2.0 Connection Class
182
- // ============================================================================
183
- const WeDo2Protocol = __importStar(require("./protocol-wedo"));
184
- /**
185
- * Connection class for WeDo 2.0 Smart Hub
186
- */
187
- class WeDo2Connection extends events_1.EventEmitter {
188
- constructor(peripheral) {
189
- super();
190
- this.characteristics = new Map();
191
- this._state = types_1.HubState.NOT_CONNECTED;
192
- this.peripheral = peripheral;
193
- }
194
- /**
195
- * Current connection state
196
- */
197
- get state() {
198
- return this._state;
199
- }
200
- /**
201
- * Peripheral UUID
202
- */
203
- get uuid() {
204
- return this.peripheral.uuid;
205
- }
206
- /**
207
- * Peripheral name
208
- */
209
- get name() {
210
- return this.peripheral.name;
211
- }
212
- /**
213
- * Open connection to the hub
214
- */
215
- async open() {
216
- if (this._state !== types_1.HubState.NOT_CONNECTED) {
217
- throw new Error("Connection already open or opening");
218
- }
219
- this._state = types_1.HubState.CONNECTING;
220
- debug("Connecting to WeDo 2.0 hub:", this.peripheral.name);
221
- try {
222
- await this.peripheral.connect();
223
- // Discover all WeDo 2.0 services
224
- const serviceUUIDs = [
225
- WeDo2Protocol.WEDO2_SERVICE_UUID,
226
- WeDo2Protocol.WEDO2_SERVICE_UUID_2,
227
- WeDo2Protocol.WEDO2_BATTERY_SERVICE_UUID,
228
- WeDo2Protocol.WEDO2_DEVICE_INFO_SERVICE_UUID,
229
- ];
230
- const services = await this.peripheral.discoverServices(serviceUUIDs);
231
- // Discover and store characteristics
232
- for (const service of services) {
233
- const chars = await service.discoverCharacteristics();
234
- for (const char of chars) {
235
- this.characteristics.set(char.uuid.toLowerCase(), char);
236
- }
237
- }
238
- // Subscribe to notifications
239
- await this.subscribeToNotifications();
240
- this._state = types_1.HubState.CONNECTED;
241
- debug("Connected to WeDo 2.0 hub:", this.peripheral.name);
242
- }
243
- catch (error) {
244
- this._state = types_1.HubState.NOT_CONNECTED;
245
- throw error;
246
- }
247
- }
248
- /**
249
- * Subscribe to all relevant notifications
250
- */
251
- async subscribeToNotifications() {
252
- // Port type changes
253
- const portTypeChar = this.characteristics.get(WeDo2Protocol.WEDO2_CHARACTERISTICS.PORT_TYPE.toLowerCase());
254
- debug("PORT_TYPE char lookup:", WeDo2Protocol.WEDO2_CHARACTERISTICS.PORT_TYPE.toLowerCase(), "found:", !!portTypeChar);
255
- if (portTypeChar) {
256
- await portTypeChar.subscribe((data) => {
257
- debug("PORT_TYPE notification:", data.toString("hex"));
258
- const message = WeDo2Protocol.decodeWeDo2PortMessage(data);
259
- debug("Decoded port message:", message);
260
- if (message) {
261
- this.emit("port", message);
262
- }
263
- });
264
- }
265
- // Sensor values
266
- const sensorChar = this.characteristics.get(WeDo2Protocol.WEDO2_CHARACTERISTICS.SENSOR_VALUE.toLowerCase());
267
- if (sensorChar) {
268
- await sensorChar.subscribe((data) => {
269
- const message = WeDo2Protocol.decodeWeDo2SensorMessage(data);
270
- if (message) {
271
- this.emit("sensor", message);
272
- }
273
- });
274
- }
275
- // Button
276
- const buttonChar = this.characteristics.get(WeDo2Protocol.WEDO2_CHARACTERISTICS.BUTTON.toLowerCase());
277
- if (buttonChar) {
278
- await buttonChar.subscribe((data) => {
279
- const message = WeDo2Protocol.decodeWeDo2ButtonMessage(data);
280
- if (message) {
281
- this.emit("button", message);
282
- }
283
- });
284
- }
285
- // Battery
286
- const batteryChar = this.characteristics.get(WeDo2Protocol.WEDO2_CHARACTERISTICS.BATTERY.toLowerCase());
287
- if (batteryChar) {
288
- await batteryChar.subscribe((data) => {
289
- const message = WeDo2Protocol.decodeWeDo2BatteryMessage(data);
290
- if (message) {
291
- this.emit("battery", message);
292
- }
293
- });
294
- }
295
- // Alerts
296
- const lowVoltageChar = this.characteristics.get(WeDo2Protocol.WEDO2_CHARACTERISTICS.LOW_VOLTAGE_ALERT.toLowerCase());
297
- if (lowVoltageChar) {
298
- await lowVoltageChar.subscribe(() => {
299
- this.emit("alert", { kind: "alert", alertType: "lowVoltage" });
300
- });
301
- }
302
- const highCurrentChar = this.characteristics.get(WeDo2Protocol.WEDO2_CHARACTERISTICS.HIGH_CURRENT_ALERT.toLowerCase());
303
- if (highCurrentChar) {
304
- await highCurrentChar.subscribe(() => {
305
- this.emit("alert", { kind: "alert", alertType: "highCurrent" });
306
- });
307
- }
308
- }
309
- /**
310
- * Close connection
311
- */
312
- async close() {
313
- if (this._state === types_1.HubState.NOT_CONNECTED) {
314
- return;
315
- }
316
- this._state = types_1.HubState.DISCONNECTING;
317
- debug("Disconnecting from WeDo 2.0 hub:", this.peripheral.name);
318
- try {
319
- // Unsubscribe from all characteristics
320
- for (const char of this.characteristics.values()) {
321
- try {
322
- await char.unsubscribe();
323
- }
324
- catch (_a) {
325
- // Ignore unsubscribe errors
326
- }
327
- }
328
- await this.peripheral.disconnect();
329
- }
330
- finally {
331
- this._state = types_1.HubState.NOT_CONNECTED;
332
- this.characteristics.clear();
333
- this.emit("disconnect");
334
- debug("Disconnected from WeDo 2.0 hub:", this.peripheral.name);
335
- }
336
- }
337
- /**
338
- * Send data to a characteristic
339
- */
340
- async send(characteristicUUID, data) {
341
- if (this._state !== types_1.HubState.CONNECTED) {
342
- throw new Error("Not connected");
343
- }
344
- const char = this.characteristics.get(characteristicUUID.toLowerCase());
345
- if (!char) {
346
- throw new Error(`Characteristic ${characteristicUUID} not found`);
347
- }
348
- debug("Sending to", characteristicUUID, ":", data.toString("hex"));
349
- await char.write(data, true);
350
- }
351
- /**
352
- * Read from a characteristic
353
- */
354
- async read(characteristicUUID) {
355
- if (this._state !== types_1.HubState.CONNECTED) {
356
- throw new Error("Not connected");
357
- }
358
- const char = this.characteristics.get(characteristicUUID.toLowerCase());
359
- if (!char) {
360
- throw new Error(`Characteristic ${characteristicUUID} not found`);
361
- }
362
- return char.read();
363
- }
364
- /**
365
- * Send motor command
366
- */
367
- async sendMotorCommand(portId, power) {
368
- const data = WeDo2Protocol.createWeDo2MotorPower(portId, power);
369
- await this.send(WeDo2Protocol.WEDO2_CHARACTERISTICS.MOTOR_VALUE_WRITE, data);
370
- }
371
- /**
372
- * Send LED color command
373
- */
374
- async sendLEDColor(color) {
375
- const data = WeDo2Protocol.createWeDo2LEDColor(6, color);
376
- await this.send(WeDo2Protocol.WEDO2_CHARACTERISTICS.MOTOR_VALUE_WRITE, data);
377
- }
378
- /**
379
- * Send LED RGB command
380
- */
381
- async sendLEDRGB(red, green, blue) {
382
- const data = WeDo2Protocol.createWeDo2LEDRGB(6, red, green, blue);
383
- await this.send(WeDo2Protocol.WEDO2_CHARACTERISTICS.MOTOR_VALUE_WRITE, data);
384
- }
385
- /**
386
- * Send sensor subscription
387
- */
388
- async subscribe(portId, deviceType, mode) {
389
- const data = WeDo2Protocol.createWeDo2Subscribe(portId, deviceType, mode, true);
390
- await this.send(WeDo2Protocol.WEDO2_CHARACTERISTICS.PORT_TYPE_WRITE, data);
391
- }
392
- /**
393
- * Send sensor unsubscription
394
- */
395
- async unsubscribe(portId, deviceType, mode) {
396
- const data = WeDo2Protocol.createWeDo2Subscribe(portId, deviceType, mode, false);
397
- await this.send(WeDo2Protocol.WEDO2_CHARACTERISTICS.PORT_TYPE_WRITE, data);
398
- }
399
- /**
400
- * Send disconnect command
401
- */
402
- async sendDisconnect() {
403
- const data = WeDo2Protocol.createWeDo2Disconnect();
404
- await this.send(WeDo2Protocol.WEDO2_CHARACTERISTICS.DISCONNECT, data);
405
- }
406
- /**
407
- * Get battery level
408
- */
409
- async getBatteryLevel() {
410
- const data = await this.read(WeDo2Protocol.WEDO2_CHARACTERISTICS.BATTERY);
411
- return data[0];
412
- }
413
- /**
414
- * Get firmware version
415
- */
416
- async getFirmwareVersion() {
417
- const data = await this.read(WeDo2Protocol.WEDO2_CHARACTERISTICS.FIRMWARE_REVISION);
418
- return data.toString("ascii");
419
- }
420
- }
421
- exports.WeDo2Connection = WeDo2Connection;
422
- // ============================================================================
423
- // Hub Type Detection
424
- // ============================================================================
425
- /**
426
- * Detect hub type from manufacturer data
427
- */
428
- function detectHubType(manufacturerData) {
429
- if (!manufacturerData || manufacturerData.length < 4) {
430
- return types_1.HubType.UNKNOWN;
431
- }
432
- // Check manufacturer ID (LEGO = 0x0397)
433
- const manufacturerId = manufacturerData.readUInt16LE(0);
434
- if (manufacturerId !== 0x0397) {
435
- return types_1.HubType.UNKNOWN;
436
- }
437
- // Hub type is in byte 3
438
- const hubId = manufacturerData[3];
439
- switch (hubId) {
440
- case 32: // 0x20
441
- return types_1.HubType.DUPLO_TRAIN_BASE;
442
- case 64: // 0x40
443
- return types_1.HubType.MOVE_HUB;
444
- case 65: // 0x41
445
- return types_1.HubType.HUB;
446
- case 66: // 0x42
447
- return types_1.HubType.REMOTE_CONTROL;
448
- case 67: // 0x43
449
- return types_1.HubType.MARIO;
450
- case 128: // 0x80
451
- return types_1.HubType.TECHNIC_MEDIUM_HUB;
452
- case 131: // 0x83
453
- return types_1.HubType.TECHNIC_SMALL_HUB;
454
- default:
455
- return types_1.HubType.UNKNOWN;
456
- }
457
- }
458
- /**
459
- * Check if peripheral is a WeDo 2.0 Smart Hub
460
- */
461
- function isWeDo2SmartHub(serviceUUIDs) {
462
- if (!serviceUUIDs) {
463
- return false;
464
- }
465
- const wedo2ServiceUUID = WeDo2Protocol.WEDO2_SERVICE_UUID.replace(/-/g, "").toLowerCase();
466
- return serviceUUIDs.some((uuid) => uuid.toLowerCase() === wedo2ServiceUUID || uuid.toLowerCase() === WeDo2Protocol.WEDO2_SERVICE_UUID.toLowerCase());
467
- }
468
- /**
469
- * Check if peripheral is an LWP3 hub
470
- */
471
- function isLWP3Hub(serviceUUIDs) {
472
- if (!serviceUUIDs) {
473
- return false;
474
- }
475
- const lwp3ServiceUUID = Protocol.BLE_SERVICE_UUID.replace(/-/g, "").toLowerCase();
476
- return serviceUUIDs.some((uuid) => uuid.toLowerCase() === lwp3ServiceUUID || uuid.toLowerCase() === Protocol.BLE_SERVICE_UUID.toLowerCase());
477
- }
478
- //# sourceMappingURL=connection.js.map