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,158 +0,0 @@
1
- /**
2
- * PoweredUp Protocol - WeDo 2.0
3
- * WeDo 2.0 Smart Hub uses a different BLE protocol than LWP3
4
- */
5
- import { DeviceType, PortEvent, Color } from "./types";
6
- export declare const WEDO2_SERVICE_UUID = "00001523-1212-efde-1523-785feabcd123";
7
- export declare const WEDO2_SERVICE_UUID_2 = "00004f0e-1212-efde-1523-785feabcd123";
8
- export declare const WEDO2_BATTERY_SERVICE_UUID = "180f";
9
- export declare const WEDO2_DEVICE_INFO_SERVICE_UUID = "180a";
10
- export declare const WEDO2_CHARACTERISTICS: {
11
- NAME_ID: string;
12
- BUTTON: string;
13
- PORT_TYPE: string;
14
- LOW_VOLTAGE_ALERT: string;
15
- HIGH_CURRENT_ALERT: string;
16
- LOW_SIGNAL_ALERT: string;
17
- DISCONNECT: string;
18
- SENSOR_VALUE: string;
19
- VALUE_FORMAT: string;
20
- PORT_TYPE_WRITE: string;
21
- MOTOR_VALUE_WRITE: string;
22
- BATTERY: string;
23
- FIRMWARE_REVISION: string;
24
- };
25
- export declare enum WeDo2DeviceType {
26
- UNKNOWN = 0,
27
- SIMPLE_MEDIUM_LINEAR_MOTOR = 1,// WeDo2 motor
28
- VOLTAGE_SENSOR = 20,
29
- CURRENT_SENSOR = 21,
30
- PIEZO_BUZZER = 22,
31
- RGB_LIGHT = 23,
32
- TILT_SENSOR = 34,
33
- MOTION_SENSOR = 35,
34
- MEDIUM_LINEAR_MOTOR = 38
35
- }
36
- export declare const WEDO2_PORT_MAP: {
37
- [key: string]: number;
38
- };
39
- export interface WeDo2PortMessage {
40
- kind: "port";
41
- portId: number;
42
- event: PortEvent;
43
- deviceType: DeviceType;
44
- }
45
- export interface WeDo2SensorMessage {
46
- kind: "sensor";
47
- portId: number;
48
- values: number[];
49
- }
50
- export interface WeDo2ButtonMessage {
51
- kind: "button";
52
- pressed: boolean;
53
- }
54
- export interface WeDo2BatteryMessage {
55
- kind: "battery";
56
- level: number;
57
- }
58
- export interface WeDo2AlertMessage {
59
- kind: "alert";
60
- alertType: "lowVoltage" | "highCurrent" | "lowSignal";
61
- }
62
- export type WeDo2DecodedMessage = WeDo2PortMessage | WeDo2SensorMessage | WeDo2ButtonMessage | WeDo2BatteryMessage | WeDo2AlertMessage;
63
- /**
64
- * Decode WeDo 2.0 port attachment/detachment message
65
- */
66
- export declare function decodeWeDo2PortMessage(data: Buffer): WeDo2PortMessage | null;
67
- /**
68
- * Decode WeDo 2.0 sensor value message
69
- */
70
- export declare function decodeWeDo2SensorMessage(data: Buffer): WeDo2SensorMessage | null;
71
- /**
72
- * Decode WeDo 2.0 button message
73
- */
74
- export declare function decodeWeDo2ButtonMessage(data: Buffer): WeDo2ButtonMessage | null;
75
- /**
76
- * Decode WeDo 2.0 battery message
77
- */
78
- export declare function decodeWeDo2BatteryMessage(data: Buffer): WeDo2BatteryMessage | null;
79
- /**
80
- * Create WeDo 2.0 sensor subscription message
81
- */
82
- export declare function createWeDo2Subscribe(portId: number, deviceType: DeviceType, mode: number, enable: boolean): Buffer;
83
- /**
84
- * Create WeDo 2.0 motor power command
85
- */
86
- export declare function createWeDo2MotorPower(portId: number, power: number): Buffer;
87
- /**
88
- * Create WeDo 2.0 motor brake command
89
- */
90
- export declare function createWeDo2MotorBrake(portId: number): Buffer;
91
- /**
92
- * Create WeDo 2.0 motor float command
93
- */
94
- export declare function createWeDo2MotorFloat(portId: number): Buffer;
95
- /**
96
- * Create WeDo 2.0 LED color command (by color number)
97
- */
98
- export declare function createWeDo2LEDColor(portId: number, color: Color): Buffer;
99
- /**
100
- * Create WeDo 2.0 LED RGB command
101
- */
102
- export declare function createWeDo2LEDRGB(portId: number, red: number, green: number, blue: number): Buffer;
103
- /**
104
- * Create WeDo 2.0 piezo tone command
105
- */
106
- export declare function createWeDo2PiezoTone(portId: number, frequency: number, duration: number): Buffer;
107
- /**
108
- * Create WeDo 2.0 piezo stop command
109
- */
110
- export declare function createWeDo2PiezoStop(portId: number): Buffer;
111
- /**
112
- * Create WeDo 2.0 disconnect command
113
- */
114
- export declare function createWeDo2Disconnect(): Buffer;
115
- /**
116
- * Create WeDo 2.0 name set command
117
- */
118
- export declare function createWeDo2SetName(name: string): Buffer;
119
- /**
120
- * Parse WeDo 2.0 tilt sensor values
121
- */
122
- export declare function parseWeDo2TiltValue(data: Buffer): {
123
- x: number;
124
- y: number;
125
- };
126
- /**
127
- * Parse WeDo 2.0 motion sensor value
128
- */
129
- export declare function parseWeDo2MotionValue(data: Buffer): {
130
- distance: number;
131
- count?: number;
132
- };
133
- /**
134
- * Parse WeDo 2.0 voltage sensor value
135
- */
136
- export declare function parseWeDo2VoltageValue(data: Buffer): number;
137
- /**
138
- * Parse WeDo 2.0 current sensor value
139
- */
140
- export declare function parseWeDo2CurrentValue(data: Buffer): number;
141
- export declare enum WeDo2TiltMode {
142
- ANGLE = 0,// X and Y angle
143
- TILT = 1,// Tilt direction (0-3)
144
- CRASH = 2,// Crash detection
145
- UNKNOWN_3 = 3
146
- }
147
- export declare enum WeDo2MotionMode {
148
- DETECT = 0,// Object detection (distance)
149
- COUNT = 1,// Object count
150
- UNKNOWN_2 = 2
151
- }
152
- export declare enum WeDo2TiltDirection {
153
- NEUTRAL = 0,
154
- BACKWARD = 3,
155
- RIGHT = 5,
156
- LEFT = 7,
157
- FORWARD = 9
158
- }
@@ -1,342 +0,0 @@
1
- "use strict";
2
- /**
3
- * PoweredUp Protocol - WeDo 2.0
4
- * WeDo 2.0 Smart Hub uses a different BLE protocol than LWP3
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.WeDo2TiltDirection = exports.WeDo2MotionMode = exports.WeDo2TiltMode = exports.WEDO2_PORT_MAP = exports.WeDo2DeviceType = exports.WEDO2_CHARACTERISTICS = exports.WEDO2_DEVICE_INFO_SERVICE_UUID = exports.WEDO2_BATTERY_SERVICE_UUID = exports.WEDO2_SERVICE_UUID_2 = exports.WEDO2_SERVICE_UUID = void 0;
8
- exports.decodeWeDo2PortMessage = decodeWeDo2PortMessage;
9
- exports.decodeWeDo2SensorMessage = decodeWeDo2SensorMessage;
10
- exports.decodeWeDo2ButtonMessage = decodeWeDo2ButtonMessage;
11
- exports.decodeWeDo2BatteryMessage = decodeWeDo2BatteryMessage;
12
- exports.createWeDo2Subscribe = createWeDo2Subscribe;
13
- exports.createWeDo2MotorPower = createWeDo2MotorPower;
14
- exports.createWeDo2MotorBrake = createWeDo2MotorBrake;
15
- exports.createWeDo2MotorFloat = createWeDo2MotorFloat;
16
- exports.createWeDo2LEDColor = createWeDo2LEDColor;
17
- exports.createWeDo2LEDRGB = createWeDo2LEDRGB;
18
- exports.createWeDo2PiezoTone = createWeDo2PiezoTone;
19
- exports.createWeDo2PiezoStop = createWeDo2PiezoStop;
20
- exports.createWeDo2Disconnect = createWeDo2Disconnect;
21
- exports.createWeDo2SetName = createWeDo2SetName;
22
- exports.parseWeDo2TiltValue = parseWeDo2TiltValue;
23
- exports.parseWeDo2MotionValue = parseWeDo2MotionValue;
24
- exports.parseWeDo2VoltageValue = parseWeDo2VoltageValue;
25
- exports.parseWeDo2CurrentValue = parseWeDo2CurrentValue;
26
- const types_1 = require("./types");
27
- // ============================================================================
28
- // BLE Service and Characteristic UUIDs for WeDo 2.0
29
- // ============================================================================
30
- exports.WEDO2_SERVICE_UUID = "00001523-1212-efde-1523-785feabcd123";
31
- exports.WEDO2_SERVICE_UUID_2 = "00004f0e-1212-efde-1523-785feabcd123";
32
- exports.WEDO2_BATTERY_SERVICE_UUID = "180f";
33
- exports.WEDO2_DEVICE_INFO_SERVICE_UUID = "180a";
34
- // Characteristic UUIDs - normalized (no dashes, lowercase) to match noble's format
35
- exports.WEDO2_CHARACTERISTICS = {
36
- NAME_ID: "000015241212efde1523785feabcd123",
37
- BUTTON: "000015261212efde1523785feabcd123",
38
- PORT_TYPE: "000015271212efde1523785feabcd123",
39
- LOW_VOLTAGE_ALERT: "000015281212efde1523785feabcd123",
40
- HIGH_CURRENT_ALERT: "000015291212efde1523785feabcd123",
41
- LOW_SIGNAL_ALERT: "0000152a1212efde1523785feabcd123",
42
- DISCONNECT: "0000152b1212efde1523785feabcd123",
43
- SENSOR_VALUE: "000015601212efde1523785feabcd123",
44
- VALUE_FORMAT: "000015611212efde1523785feabcd123",
45
- PORT_TYPE_WRITE: "000015631212efde1523785feabcd123",
46
- MOTOR_VALUE_WRITE: "000015651212efde1523785feabcd123",
47
- BATTERY: "2a19",
48
- FIRMWARE_REVISION: "2a26",
49
- };
50
- // ============================================================================
51
- // WeDo 2.0 Device Types
52
- // These map directly to DeviceType values - WeDo2 uses the same type IDs
53
- // ============================================================================
54
- var WeDo2DeviceType;
55
- (function (WeDo2DeviceType) {
56
- WeDo2DeviceType[WeDo2DeviceType["UNKNOWN"] = 0] = "UNKNOWN";
57
- WeDo2DeviceType[WeDo2DeviceType["SIMPLE_MEDIUM_LINEAR_MOTOR"] = 1] = "SIMPLE_MEDIUM_LINEAR_MOTOR";
58
- WeDo2DeviceType[WeDo2DeviceType["VOLTAGE_SENSOR"] = 20] = "VOLTAGE_SENSOR";
59
- WeDo2DeviceType[WeDo2DeviceType["CURRENT_SENSOR"] = 21] = "CURRENT_SENSOR";
60
- WeDo2DeviceType[WeDo2DeviceType["PIEZO_BUZZER"] = 22] = "PIEZO_BUZZER";
61
- WeDo2DeviceType[WeDo2DeviceType["RGB_LIGHT"] = 23] = "RGB_LIGHT";
62
- WeDo2DeviceType[WeDo2DeviceType["TILT_SENSOR"] = 34] = "TILT_SENSOR";
63
- WeDo2DeviceType[WeDo2DeviceType["MOTION_SENSOR"] = 35] = "MOTION_SENSOR";
64
- WeDo2DeviceType[WeDo2DeviceType["MEDIUM_LINEAR_MOTOR"] = 38] = "MEDIUM_LINEAR_MOTOR";
65
- })(WeDo2DeviceType || (exports.WeDo2DeviceType = WeDo2DeviceType = {}));
66
- // ============================================================================
67
- // WeDo 2.0 Port Map
68
- // ============================================================================
69
- exports.WEDO2_PORT_MAP = {
70
- A: 1,
71
- B: 2,
72
- HUB_LED: 6,
73
- CURRENT: 3,
74
- VOLTAGE: 4,
75
- PIEZO: 5,
76
- };
77
- // ============================================================================
78
- // Message Decoding
79
- // ============================================================================
80
- /**
81
- * Decode WeDo 2.0 port attachment/detachment message
82
- */
83
- function decodeWeDo2PortMessage(data) {
84
- if (data.length < 2) {
85
- return null;
86
- }
87
- const portId = data[0];
88
- const event = data[1];
89
- let deviceType = types_1.DeviceType.UNKNOWN;
90
- if (event === 0x01 && data.length >= 4) {
91
- // Attached
92
- deviceType = mapWeDo2DeviceType(data[3]);
93
- }
94
- return {
95
- kind: "port",
96
- portId,
97
- event: event === 0x01 ? types_1.PortEvent.ATTACHED : types_1.PortEvent.DETACHED,
98
- deviceType,
99
- };
100
- }
101
- /**
102
- * Map WeDo 2.0 device types to standard device types
103
- * WeDo2 uses the same device type IDs as DeviceType enum
104
- */
105
- function mapWeDo2DeviceType(wedo2Type) {
106
- // WeDo2 device types map directly to DeviceType values
107
- switch (wedo2Type) {
108
- case WeDo2DeviceType.SIMPLE_MEDIUM_LINEAR_MOTOR:
109
- return types_1.DeviceType.SIMPLE_MEDIUM_LINEAR_MOTOR;
110
- case WeDo2DeviceType.MEDIUM_LINEAR_MOTOR:
111
- return types_1.DeviceType.MEDIUM_LINEAR_MOTOR;
112
- case WeDo2DeviceType.VOLTAGE_SENSOR:
113
- return types_1.DeviceType.VOLTAGE_SENSOR;
114
- case WeDo2DeviceType.CURRENT_SENSOR:
115
- return types_1.DeviceType.CURRENT_SENSOR;
116
- case WeDo2DeviceType.PIEZO_BUZZER:
117
- return types_1.DeviceType.PIEZO_BUZZER;
118
- case WeDo2DeviceType.RGB_LIGHT:
119
- return types_1.DeviceType.HUB_LED;
120
- case WeDo2DeviceType.TILT_SENSOR:
121
- return types_1.DeviceType.TILT_SENSOR;
122
- case WeDo2DeviceType.MOTION_SENSOR:
123
- return types_1.DeviceType.MOTION_SENSOR;
124
- default:
125
- console.log(`Unknown WeDo2 device type: ${wedo2Type} (0x${wedo2Type.toString(16)})`);
126
- return types_1.DeviceType.UNKNOWN;
127
- }
128
- }
129
- /**
130
- * Decode WeDo 2.0 sensor value message
131
- */
132
- function decodeWeDo2SensorMessage(data) {
133
- if (data.length < 2) {
134
- return null;
135
- }
136
- const portId = data[1];
137
- const values = [];
138
- // Parse remaining bytes as values (interpretation depends on device type)
139
- for (let i = 2; i < data.length; i++) {
140
- values.push(data[i]);
141
- }
142
- return {
143
- kind: "sensor",
144
- portId,
145
- values,
146
- };
147
- }
148
- /**
149
- * Decode WeDo 2.0 button message
150
- */
151
- function decodeWeDo2ButtonMessage(data) {
152
- if (data.length < 1) {
153
- return null;
154
- }
155
- return {
156
- kind: "button",
157
- pressed: data[0] === 1,
158
- };
159
- }
160
- /**
161
- * Decode WeDo 2.0 battery message
162
- */
163
- function decodeWeDo2BatteryMessage(data) {
164
- if (data.length < 1) {
165
- return null;
166
- }
167
- return {
168
- kind: "battery",
169
- level: data[0],
170
- };
171
- }
172
- // ============================================================================
173
- // Message Encoding
174
- // ============================================================================
175
- /**
176
- * Create WeDo 2.0 sensor subscription message
177
- */
178
- function createWeDo2Subscribe(portId, deviceType, mode, enable) {
179
- return Buffer.from([
180
- 0x01, // Command
181
- 0x02, // Notification
182
- portId,
183
- deviceType,
184
- mode,
185
- 0x01, // Delta interval (byte 0)
186
- 0x00, // Delta interval (byte 1)
187
- 0x00, // Delta interval (byte 2)
188
- 0x00, // Delta interval (byte 3)
189
- 0x00, // Unknown
190
- enable ? 0x01 : 0x00, // Enable/disable
191
- ]);
192
- }
193
- /**
194
- * Create WeDo 2.0 motor power command
195
- */
196
- function createWeDo2MotorPower(portId, power) {
197
- // Clamp power to -100..100
198
- power = Math.max(-100, Math.min(100, power));
199
- // Convert to unsigned byte representation for negative values
200
- const signedPower = power < 0 ? 256 + power : power;
201
- return Buffer.from([portId, 0x01, 0x02, signedPower]);
202
- }
203
- /**
204
- * Create WeDo 2.0 motor brake command
205
- */
206
- function createWeDo2MotorBrake(portId) {
207
- return Buffer.from([portId, 0x01, 0x00, 0x7f]); // 127 = brake
208
- }
209
- /**
210
- * Create WeDo 2.0 motor float command
211
- */
212
- function createWeDo2MotorFloat(portId) {
213
- return Buffer.from([portId, 0x01, 0x00, 0x00]); // 0 = float
214
- }
215
- /**
216
- * Create WeDo 2.0 LED color command (by color number)
217
- */
218
- function createWeDo2LEDColor(portId, color) {
219
- return Buffer.from([0x06, 0x04, 0x01, color]);
220
- }
221
- /**
222
- * Create WeDo 2.0 LED RGB command
223
- */
224
- function createWeDo2LEDRGB(portId, red, green, blue) {
225
- red = Math.max(0, Math.min(255, red));
226
- green = Math.max(0, Math.min(255, green));
227
- blue = Math.max(0, Math.min(255, blue));
228
- return Buffer.from([0x06, 0x04, 0x03, red, green, blue]);
229
- }
230
- /**
231
- * Create WeDo 2.0 piezo tone command
232
- */
233
- function createWeDo2PiezoTone(portId, frequency, duration) {
234
- const payload = Buffer.alloc(6);
235
- payload[0] = 0x05; // Piezo port
236
- payload[1] = 0x02; // Play tone
237
- payload.writeUInt16LE(frequency, 2);
238
- payload.writeUInt16LE(duration, 4);
239
- return payload;
240
- }
241
- /**
242
- * Create WeDo 2.0 piezo stop command
243
- */
244
- function createWeDo2PiezoStop(portId) {
245
- return Buffer.from([0x05, 0x01, 0x00]);
246
- }
247
- /**
248
- * Create WeDo 2.0 disconnect command
249
- */
250
- function createWeDo2Disconnect() {
251
- return Buffer.from([0x00]);
252
- }
253
- /**
254
- * Create WeDo 2.0 name set command
255
- */
256
- function createWeDo2SetName(name) {
257
- if (name.length > 14) {
258
- name = name.substring(0, 14);
259
- }
260
- return Buffer.from(name, "ascii");
261
- }
262
- // ============================================================================
263
- // Sensor Value Parsing
264
- // ============================================================================
265
- /**
266
- * Parse WeDo 2.0 tilt sensor values
267
- */
268
- function parseWeDo2TiltValue(data) {
269
- if (data.length < 2) {
270
- return { x: 0, y: 0 };
271
- }
272
- return {
273
- x: data.readInt8(0),
274
- y: data.readInt8(1),
275
- };
276
- }
277
- /**
278
- * Parse WeDo 2.0 motion sensor value
279
- */
280
- function parseWeDo2MotionValue(data) {
281
- if (data.length < 1) {
282
- return { distance: 0 };
283
- }
284
- const distance = data[0];
285
- const count = data.length >= 4 ? data.readUInt32LE(0) : undefined;
286
- return { distance, count };
287
- }
288
- /**
289
- * Parse WeDo 2.0 voltage sensor value
290
- */
291
- function parseWeDo2VoltageValue(data) {
292
- if (data.length < 2) {
293
- return 0;
294
- }
295
- // Raw value from sensor, needs to be converted to actual voltage
296
- const raw = data.readUInt16LE(0);
297
- // WeDo 2.0 voltage conversion factor (approximate)
298
- return (raw * 3.3) / 4095;
299
- }
300
- /**
301
- * Parse WeDo 2.0 current sensor value
302
- */
303
- function parseWeDo2CurrentValue(data) {
304
- if (data.length < 2) {
305
- return 0;
306
- }
307
- // Raw value from sensor, needs to be converted to actual current
308
- const raw = data.readUInt16LE(0);
309
- // WeDo 2.0 current conversion factor (approximate)
310
- return raw / 4095 * 2048; // mA
311
- }
312
- // ============================================================================
313
- // Tilt Sensor Modes
314
- // ============================================================================
315
- var WeDo2TiltMode;
316
- (function (WeDo2TiltMode) {
317
- WeDo2TiltMode[WeDo2TiltMode["ANGLE"] = 0] = "ANGLE";
318
- WeDo2TiltMode[WeDo2TiltMode["TILT"] = 1] = "TILT";
319
- WeDo2TiltMode[WeDo2TiltMode["CRASH"] = 2] = "CRASH";
320
- WeDo2TiltMode[WeDo2TiltMode["UNKNOWN_3"] = 3] = "UNKNOWN_3";
321
- })(WeDo2TiltMode || (exports.WeDo2TiltMode = WeDo2TiltMode = {}));
322
- // ============================================================================
323
- // Motion Sensor Modes
324
- // ============================================================================
325
- var WeDo2MotionMode;
326
- (function (WeDo2MotionMode) {
327
- WeDo2MotionMode[WeDo2MotionMode["DETECT"] = 0] = "DETECT";
328
- WeDo2MotionMode[WeDo2MotionMode["COUNT"] = 1] = "COUNT";
329
- WeDo2MotionMode[WeDo2MotionMode["UNKNOWN_2"] = 2] = "UNKNOWN_2";
330
- })(WeDo2MotionMode || (exports.WeDo2MotionMode = WeDo2MotionMode = {}));
331
- // ============================================================================
332
- // Tilt Direction Values
333
- // ============================================================================
334
- var WeDo2TiltDirection;
335
- (function (WeDo2TiltDirection) {
336
- WeDo2TiltDirection[WeDo2TiltDirection["NEUTRAL"] = 0] = "NEUTRAL";
337
- WeDo2TiltDirection[WeDo2TiltDirection["BACKWARD"] = 3] = "BACKWARD";
338
- WeDo2TiltDirection[WeDo2TiltDirection["RIGHT"] = 5] = "RIGHT";
339
- WeDo2TiltDirection[WeDo2TiltDirection["LEFT"] = 7] = "LEFT";
340
- WeDo2TiltDirection[WeDo2TiltDirection["FORWARD"] = 9] = "FORWARD";
341
- })(WeDo2TiltDirection || (exports.WeDo2TiltDirection = WeDo2TiltDirection = {}));
342
- //# sourceMappingURL=protocol-wedo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol-wedo.js","sourceRoot":"","sources":["../../src/protocol-wedo.ts"],"names":[],"mappings":"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"}