@microbit/microbit-connection 0.9.0-apps.alpha.9 → 1.0.0-beta.1

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 (421) hide show
  1. package/README.md +106 -27
  2. package/build/cjs/async-util.d.ts +3 -1
  3. package/build/cjs/async-util.js +5 -1
  4. package/build/cjs/async-util.js.map +1 -1
  5. package/build/cjs/availability.js.map +1 -1
  6. package/build/cjs/bluetooth/ble-error.d.ts +10 -0
  7. package/build/cjs/bluetooth/ble-error.js +47 -0
  8. package/build/cjs/bluetooth/ble-error.js.map +1 -0
  9. package/build/cjs/bluetooth/connection.d.ts +378 -0
  10. package/build/cjs/bluetooth/connection.js +623 -0
  11. package/build/cjs/bluetooth/connection.js.map +1 -0
  12. package/build/cjs/bluetooth/device-bond-state.d.ts +14 -0
  13. package/build/cjs/bluetooth/device-bond-state.js +26 -0
  14. package/build/cjs/bluetooth/device-bond-state.js.map +1 -0
  15. package/build/cjs/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +36 -21
  16. package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +174 -147
  17. package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
  18. package/build/{esm → cjs/bluetooth}/flashing/flashing-full.d.ts +2 -2
  19. package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
  20. package/build/cjs/bluetooth/flashing/flashing-full.js.map +1 -0
  21. package/build/cjs/bluetooth/flashing/flashing-makecode.d.ts +10 -0
  22. package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.js +5 -2
  23. package/build/cjs/bluetooth/flashing/flashing-makecode.js.map +1 -0
  24. package/build/cjs/bluetooth/flashing/flashing-partial.d.ts +10 -0
  25. package/build/cjs/bluetooth/flashing/flashing-partial.js +145 -0
  26. package/build/cjs/bluetooth/flashing/flashing-partial.js.map +1 -0
  27. package/build/cjs/bluetooth/flashing/flashing-v1.js.map +1 -0
  28. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  29. package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.js +41 -15
  30. package/build/cjs/bluetooth/flashing/nordic-dfu.js.map +1 -0
  31. package/build/cjs/bluetooth/flashing/zip.js.map +1 -0
  32. package/build/cjs/bluetooth/index.d.ts +5 -0
  33. package/build/cjs/bluetooth/index.js +9 -0
  34. package/build/cjs/bluetooth/index.js.map +1 -0
  35. package/build/cjs/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +8 -0
  36. package/build/cjs/{bluetooth-profile.js → bluetooth/profile.js} +7 -1
  37. package/build/cjs/bluetooth/profile.js.map +1 -0
  38. package/build/cjs/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  39. package/build/cjs/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +17 -12
  40. package/build/cjs/bluetooth/services/accelerometer-service.js.map +1 -0
  41. package/build/{esm → cjs/bluetooth/services}/button-service.d.ts +2 -3
  42. package/build/cjs/{button-service.js → bluetooth/services/button-service.js} +24 -14
  43. package/build/cjs/bluetooth/services/button-service.js.map +1 -0
  44. package/build/{esm → cjs/bluetooth/services}/device-information-service.d.ts +1 -1
  45. package/build/cjs/bluetooth/services/device-information-service.js +29 -0
  46. package/build/cjs/bluetooth/services/device-information-service.js.map +1 -0
  47. package/build/cjs/{dfu-service.js → bluetooth/services/dfu-service.js} +2 -2
  48. package/build/cjs/bluetooth/services/dfu-service.js.map +1 -0
  49. package/build/cjs/bluetooth/services/event-service.d.ts +48 -0
  50. package/build/cjs/bluetooth/services/event-service.js +273 -0
  51. package/build/cjs/bluetooth/services/event-service.js.map +1 -0
  52. package/build/cjs/bluetooth/services/io-pin-service.d.ts +65 -0
  53. package/build/cjs/bluetooth/services/io-pin-service.js +173 -0
  54. package/build/cjs/bluetooth/services/io-pin-service.js.map +1 -0
  55. package/build/{esm → cjs/bluetooth/services}/led-service.d.ts +2 -3
  56. package/build/cjs/{led-service.js → bluetooth/services/led-service.js} +10 -7
  57. package/build/cjs/bluetooth/services/led-service.js.map +1 -0
  58. package/build/cjs/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  59. package/build/cjs/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +19 -14
  60. package/build/cjs/bluetooth/services/magnetometer-service.js.map +1 -0
  61. package/build/{esm → cjs/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  62. package/build/cjs/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +8 -8
  63. package/build/cjs/bluetooth/services/partial-flashing-service.js.map +1 -0
  64. package/build/cjs/bluetooth/services/temperature-service.d.ts +14 -0
  65. package/build/cjs/bluetooth/services/temperature-service.js +80 -0
  66. package/build/cjs/bluetooth/services/temperature-service.js.map +1 -0
  67. package/build/cjs/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  68. package/build/cjs/{uart-service.js → bluetooth/services/uart-service.js} +21 -9
  69. package/build/cjs/bluetooth/services/uart-service.js.map +1 -0
  70. package/build/cjs/board-id.d.ts +1 -1
  71. package/build/cjs/board-id.js.map +1 -1
  72. package/build/cjs/device.d.ts +191 -101
  73. package/build/cjs/device.js +47 -110
  74. package/build/cjs/device.js.map +1 -1
  75. package/build/cjs/events.d.ts +8 -108
  76. package/build/cjs/events.js +27 -88
  77. package/build/cjs/events.js.map +1 -1
  78. package/build/cjs/hex-util.d.ts +1 -0
  79. package/build/cjs/hex-util.js +15 -0
  80. package/build/cjs/hex-util.js.map +1 -0
  81. package/build/cjs/index.d.ts +8 -16
  82. package/build/cjs/index.js +9 -28
  83. package/build/cjs/index.js.map +1 -1
  84. package/build/cjs/logging.js.map +1 -1
  85. package/build/cjs/microbit-events.d.ts +67 -0
  86. package/build/cjs/microbit-events.js +55 -0
  87. package/build/cjs/microbit-events.js.map +1 -0
  88. package/build/cjs/radio-bridge/connection.d.ts +52 -0
  89. package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +84 -96
  90. package/build/cjs/radio-bridge/connection.js.map +1 -0
  91. package/build/cjs/radio-bridge/index.d.ts +4 -0
  92. package/build/cjs/radio-bridge/index.js +9 -0
  93. package/build/cjs/radio-bridge/index.js.map +1 -0
  94. package/build/cjs/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  95. package/build/cjs/radio-bridge/serial-protocol.js.map +1 -0
  96. package/build/cjs/service-events.d.ts +92 -15
  97. package/build/cjs/service-events.js +6 -36
  98. package/build/cjs/service-events.js.map +1 -1
  99. package/build/{esm/hex-flash-data-source.d.ts → cjs/universal-hex/flash-data-source.d.ts} +1 -1
  100. package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -3
  101. package/build/cjs/universal-hex/flash-data-source.js.map +1 -0
  102. package/build/cjs/universal-hex/index.d.ts +4 -0
  103. package/build/cjs/universal-hex/index.js +9 -0
  104. package/build/cjs/universal-hex/index.js.map +1 -0
  105. package/build/cjs/usb/arm-debug.d.ts +137 -0
  106. package/build/cjs/usb/arm-debug.js +414 -0
  107. package/build/cjs/usb/arm-debug.js.map +1 -0
  108. package/build/{esm → cjs/usb}/board-serial-info.d.ts +2 -1
  109. package/build/cjs/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  110. package/build/cjs/usb/board-serial-info.js.map +1 -0
  111. package/build/cjs/usb/cdc-saturation.d.ts +36 -0
  112. package/build/cjs/usb/cdc-saturation.js +151 -0
  113. package/build/cjs/usb/cdc-saturation.js.map +1 -0
  114. package/build/cjs/usb/cmsis-dap.d.ts +113 -0
  115. package/build/cjs/usb/cmsis-dap.js +349 -0
  116. package/build/cjs/usb/cmsis-dap.js.map +1 -0
  117. package/build/cjs/usb/connection.d.ts +96 -0
  118. package/build/cjs/{usb.js → usb/connection.js} +257 -173
  119. package/build/cjs/usb/connection.js.map +1 -0
  120. package/build/cjs/usb/cortex-m.d.ts +72 -0
  121. package/build/cjs/usb/cortex-m.js +165 -0
  122. package/build/cjs/usb/cortex-m.js.map +1 -0
  123. package/build/cjs/usb/daplink.d.ts +69 -0
  124. package/build/cjs/usb/daplink.js +238 -0
  125. package/build/cjs/usb/daplink.js.map +1 -0
  126. package/build/cjs/usb/device-wrapper.d.ts +34 -0
  127. package/build/cjs/usb/device-wrapper.js +102 -0
  128. package/build/cjs/usb/device-wrapper.js.map +1 -0
  129. package/build/cjs/usb/index.d.ts +5 -0
  130. package/build/cjs/usb/index.js +10 -0
  131. package/build/cjs/usb/index.js.map +1 -0
  132. package/build/{esm/usb-partial-flashing-utils.d.ts → cjs/usb/partial-flashing-utils.d.ts} +6 -9
  133. package/build/cjs/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +6 -49
  134. package/build/cjs/usb/partial-flashing-utils.js.map +1 -0
  135. package/build/{esm/usb-partial-flashing.d.ts → cjs/usb/partial-flashing.d.ts} +37 -11
  136. package/build/cjs/{usb-partial-flashing.js → usb/partial-flashing.js} +170 -134
  137. package/build/cjs/usb/partial-flashing.js.map +1 -0
  138. package/build/cjs/usb/promise-queue.js.map +1 -0
  139. package/build/cjs/usb/serial-events.d.ts +16 -0
  140. package/build/cjs/{led.js → usb/serial-events.js} +1 -1
  141. package/build/cjs/usb/serial-events.js.map +1 -0
  142. package/build/cjs/usb/transport.d.ts +42 -0
  143. package/build/cjs/usb/transport.js +155 -0
  144. package/build/cjs/usb/transport.js.map +1 -0
  145. package/build/esm/async-util.d.ts +3 -1
  146. package/build/esm/async-util.js +5 -1
  147. package/build/esm/async-util.js.map +1 -1
  148. package/build/esm/availability.js.map +1 -1
  149. package/build/esm/bluetooth/ble-error.d.ts +10 -0
  150. package/build/esm/bluetooth/ble-error.js +42 -0
  151. package/build/esm/bluetooth/ble-error.js.map +1 -0
  152. package/build/esm/bluetooth/connection.d.ts +378 -0
  153. package/build/esm/bluetooth/connection.js +593 -0
  154. package/build/esm/bluetooth/connection.js.map +1 -0
  155. package/build/esm/bluetooth/device-bond-state.d.ts +14 -0
  156. package/build/esm/bluetooth/device-bond-state.js +22 -0
  157. package/build/esm/bluetooth/device-bond-state.js.map +1 -0
  158. package/build/esm/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +36 -21
  159. package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +172 -146
  160. package/build/esm/bluetooth/device-wrapper.js.map +1 -0
  161. package/build/{cjs → esm/bluetooth}/flashing/flashing-full.d.ts +2 -2
  162. package/build/esm/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
  163. package/build/esm/bluetooth/flashing/flashing-full.js.map +1 -0
  164. package/build/esm/bluetooth/flashing/flashing-makecode.d.ts +10 -0
  165. package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.js +5 -2
  166. package/build/esm/bluetooth/flashing/flashing-makecode.js.map +1 -0
  167. package/build/esm/bluetooth/flashing/flashing-partial.d.ts +10 -0
  168. package/build/esm/bluetooth/flashing/flashing-partial.js +142 -0
  169. package/build/esm/bluetooth/flashing/flashing-partial.js.map +1 -0
  170. package/build/esm/bluetooth/flashing/flashing-v1.js.map +1 -0
  171. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
  172. package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.js +41 -15
  173. package/build/esm/bluetooth/flashing/nordic-dfu.js.map +1 -0
  174. package/build/esm/bluetooth/flashing/zip.js.map +1 -0
  175. package/build/esm/bluetooth/index.d.ts +5 -0
  176. package/build/esm/bluetooth/index.js +5 -0
  177. package/build/esm/bluetooth/index.js.map +1 -0
  178. package/build/esm/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +8 -0
  179. package/build/esm/{bluetooth-profile.js → bluetooth/profile.js} +7 -1
  180. package/build/{cjs/bluetooth-profile.js.map → esm/bluetooth/profile.js.map} +1 -1
  181. package/build/esm/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
  182. package/build/esm/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +11 -6
  183. package/build/esm/bluetooth/services/accelerometer-service.js.map +1 -0
  184. package/build/{cjs → esm/bluetooth/services}/button-service.d.ts +2 -3
  185. package/build/esm/{button-service.js → bluetooth/services/button-service.js} +20 -10
  186. package/build/esm/bluetooth/services/button-service.js.map +1 -0
  187. package/build/{cjs → esm/bluetooth/services}/device-information-service.d.ts +1 -1
  188. package/build/esm/bluetooth/services/device-information-service.js +25 -0
  189. package/build/esm/bluetooth/services/device-information-service.js.map +1 -0
  190. package/build/esm/{dfu-service.js → bluetooth/services/dfu-service.js} +1 -1
  191. package/build/esm/bluetooth/services/dfu-service.js.map +1 -0
  192. package/build/esm/bluetooth/services/event-service.d.ts +48 -0
  193. package/build/esm/bluetooth/services/event-service.js +269 -0
  194. package/build/esm/bluetooth/services/event-service.js.map +1 -0
  195. package/build/esm/bluetooth/services/io-pin-service.d.ts +65 -0
  196. package/build/esm/bluetooth/services/io-pin-service.js +169 -0
  197. package/build/esm/bluetooth/services/io-pin-service.js.map +1 -0
  198. package/build/{cjs → esm/bluetooth/services}/led-service.d.ts +2 -3
  199. package/build/esm/{led-service.js → bluetooth/services/led-service.js} +4 -1
  200. package/build/esm/bluetooth/services/led-service.js.map +1 -0
  201. package/build/esm/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
  202. package/build/esm/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +11 -6
  203. package/build/esm/bluetooth/services/magnetometer-service.js.map +1 -0
  204. package/build/{cjs → esm/bluetooth/services}/partial-flashing-service.d.ts +1 -1
  205. package/build/esm/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +4 -4
  206. package/build/esm/bluetooth/services/partial-flashing-service.js.map +1 -0
  207. package/build/esm/bluetooth/services/temperature-service.d.ts +14 -0
  208. package/build/esm/bluetooth/services/temperature-service.js +76 -0
  209. package/build/esm/bluetooth/services/temperature-service.js.map +1 -0
  210. package/build/esm/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
  211. package/build/esm/{uart-service.js → bluetooth/services/uart-service.js} +18 -6
  212. package/build/esm/bluetooth/services/uart-service.js.map +1 -0
  213. package/build/esm/board-id.d.ts +1 -1
  214. package/build/esm/board-id.js.map +1 -1
  215. package/build/esm/device.d.ts +191 -101
  216. package/build/esm/device.js +45 -104
  217. package/build/esm/device.js.map +1 -1
  218. package/build/esm/events.d.ts +8 -108
  219. package/build/esm/events.js +26 -86
  220. package/build/esm/events.js.map +1 -1
  221. package/build/esm/hex-util.d.ts +1 -0
  222. package/build/esm/hex-util.js +11 -0
  223. package/build/esm/hex-util.js.map +1 -0
  224. package/build/esm/index.d.ts +8 -16
  225. package/build/esm/index.js +7 -11
  226. package/build/esm/index.js.map +1 -1
  227. package/build/esm/logging.js.map +1 -1
  228. package/build/esm/microbit-events.d.ts +67 -0
  229. package/build/esm/microbit-events.js +52 -0
  230. package/build/esm/microbit-events.js.map +1 -0
  231. package/build/esm/radio-bridge/connection.d.ts +52 -0
  232. package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +84 -96
  233. package/build/esm/radio-bridge/connection.js.map +1 -0
  234. package/build/esm/radio-bridge/index.d.ts +4 -0
  235. package/build/esm/radio-bridge/index.js +5 -0
  236. package/build/esm/radio-bridge/index.js.map +1 -0
  237. package/build/esm/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
  238. package/build/esm/radio-bridge/serial-protocol.js.map +1 -0
  239. package/build/esm/service-events.d.ts +92 -15
  240. package/build/esm/service-events.js +5 -34
  241. package/build/esm/service-events.js.map +1 -1
  242. package/build/{cjs/hex-flash-data-source.d.ts → esm/universal-hex/flash-data-source.d.ts} +1 -1
  243. package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -3
  244. package/build/esm/universal-hex/flash-data-source.js.map +1 -0
  245. package/build/esm/universal-hex/index.d.ts +4 -0
  246. package/build/esm/universal-hex/index.js +5 -0
  247. package/build/esm/universal-hex/index.js.map +1 -0
  248. package/build/esm/usb/arm-debug.d.ts +137 -0
  249. package/build/esm/usb/arm-debug.js +409 -0
  250. package/build/esm/usb/arm-debug.js.map +1 -0
  251. package/build/{cjs → esm/usb}/board-serial-info.d.ts +2 -1
  252. package/build/esm/{board-serial-info.js → usb/board-serial-info.js} +10 -7
  253. package/build/esm/usb/board-serial-info.js.map +1 -0
  254. package/build/esm/usb/cdc-saturation.d.ts +36 -0
  255. package/build/esm/usb/cdc-saturation.js +148 -0
  256. package/build/esm/usb/cdc-saturation.js.map +1 -0
  257. package/build/esm/usb/cmsis-dap.d.ts +113 -0
  258. package/build/esm/usb/cmsis-dap.js +342 -0
  259. package/build/esm/usb/cmsis-dap.js.map +1 -0
  260. package/build/esm/usb/connection.d.ts +96 -0
  261. package/build/esm/{usb.js → usb/connection.js} +253 -168
  262. package/build/esm/usb/connection.js.map +1 -0
  263. package/build/esm/usb/cortex-m.d.ts +72 -0
  264. package/build/esm/usb/cortex-m.js +161 -0
  265. package/build/esm/usb/cortex-m.js.map +1 -0
  266. package/build/esm/usb/daplink.d.ts +69 -0
  267. package/build/esm/usb/daplink.js +231 -0
  268. package/build/esm/usb/daplink.js.map +1 -0
  269. package/build/esm/usb/device-wrapper.d.ts +34 -0
  270. package/build/esm/usb/device-wrapper.js +98 -0
  271. package/build/esm/usb/device-wrapper.js.map +1 -0
  272. package/build/esm/usb/index.d.ts +5 -0
  273. package/build/esm/usb/index.js +5 -0
  274. package/build/esm/usb/index.js.map +1 -0
  275. package/build/{cjs/usb-partial-flashing-utils.d.ts → esm/usb/partial-flashing-utils.d.ts} +6 -9
  276. package/build/esm/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +4 -44
  277. package/build/esm/usb/partial-flashing-utils.js.map +1 -0
  278. package/build/{cjs/usb-partial-flashing.d.ts → esm/usb/partial-flashing.d.ts} +37 -11
  279. package/build/esm/{usb-partial-flashing.js → usb/partial-flashing.js} +169 -110
  280. package/build/esm/usb/partial-flashing.js.map +1 -0
  281. package/build/esm/usb/promise-queue.js.map +1 -0
  282. package/build/esm/usb/serial-events.d.ts +16 -0
  283. package/build/esm/usb/serial-events.js +2 -0
  284. package/build/esm/usb/serial-events.js.map +1 -0
  285. package/build/esm/usb/transport.d.ts +42 -0
  286. package/build/esm/usb/transport.js +151 -0
  287. package/build/esm/usb/transport.js.map +1 -0
  288. package/package.json +61 -14
  289. package/build/cjs/accelerometer-service.js.map +0 -1
  290. package/build/cjs/accelerometer.d.ts +0 -9
  291. package/build/cjs/accelerometer.js +0 -16
  292. package/build/cjs/accelerometer.js.map +0 -1
  293. package/build/cjs/bluetooth-device-wrapper.js.map +0 -1
  294. package/build/cjs/bluetooth.d.ts +0 -112
  295. package/build/cjs/bluetooth.js +0 -457
  296. package/build/cjs/bluetooth.js.map +0 -1
  297. package/build/cjs/board-serial-info.js.map +0 -1
  298. package/build/cjs/button-service.js.map +0 -1
  299. package/build/cjs/buttons.d.ts +0 -10
  300. package/build/cjs/buttons.js +0 -22
  301. package/build/cjs/buttons.js.map +0 -1
  302. package/build/cjs/constants.d.ts +0 -48
  303. package/build/cjs/constants.js +0 -73
  304. package/build/cjs/constants.js.map +0 -1
  305. package/build/cjs/device-information-service.js +0 -34
  306. package/build/cjs/device-information-service.js.map +0 -1
  307. package/build/cjs/dfu-service.js.map +0 -1
  308. package/build/cjs/flashing/flashing-full.js.map +0 -1
  309. package/build/cjs/flashing/flashing-makecode.d.ts +0 -6
  310. package/build/cjs/flashing/flashing-makecode.js.map +0 -1
  311. package/build/cjs/flashing/flashing-partial.d.ts +0 -9
  312. package/build/cjs/flashing/flashing-partial.js +0 -98
  313. package/build/cjs/flashing/flashing-partial.js.map +0 -1
  314. package/build/cjs/flashing/flashing-v1.js.map +0 -1
  315. package/build/cjs/flashing/nordic-dfu.js.map +0 -1
  316. package/build/cjs/flashing/zip.js.map +0 -1
  317. package/build/cjs/hex-flash-data-source.js.map +0 -1
  318. package/build/cjs/led-service.js.map +0 -1
  319. package/build/cjs/led.d.ts +0 -6
  320. package/build/cjs/led.js.map +0 -1
  321. package/build/cjs/magnetometer-service.js.map +0 -1
  322. package/build/cjs/magnetometer.d.ts +0 -9
  323. package/build/cjs/magnetometer.js +0 -16
  324. package/build/cjs/magnetometer.js.map +0 -1
  325. package/build/cjs/partial-flashing-service.js.map +0 -1
  326. package/build/cjs/promise-queue.js.map +0 -1
  327. package/build/cjs/serial-events.d.ts +0 -20
  328. package/build/cjs/serial-events.js +0 -69
  329. package/build/cjs/serial-events.js.map +0 -1
  330. package/build/cjs/setupTests.d.ts +0 -6
  331. package/build/cjs/setupTests.js.map +0 -1
  332. package/build/cjs/uart-service.js.map +0 -1
  333. package/build/cjs/uart.d.ts +0 -4
  334. package/build/cjs/uart.js +0 -16
  335. package/build/cjs/uart.js.map +0 -1
  336. package/build/cjs/usb-device-wrapper.d.ts +0 -47
  337. package/build/cjs/usb-device-wrapper.js +0 -437
  338. package/build/cjs/usb-device-wrapper.js.map +0 -1
  339. package/build/cjs/usb-partial-flashing-utils.js.map +0 -1
  340. package/build/cjs/usb-partial-flashing.js.map +0 -1
  341. package/build/cjs/usb-radio-bridge.d.ts +0 -24
  342. package/build/cjs/usb-radio-bridge.js.map +0 -1
  343. package/build/cjs/usb-serial-protocol.js.map +0 -1
  344. package/build/cjs/usb.d.ts +0 -66
  345. package/build/cjs/usb.js.map +0 -1
  346. package/build/esm/accelerometer-service.js.map +0 -1
  347. package/build/esm/accelerometer.d.ts +0 -9
  348. package/build/esm/accelerometer.js +0 -12
  349. package/build/esm/accelerometer.js.map +0 -1
  350. package/build/esm/bluetooth-device-wrapper.js.map +0 -1
  351. package/build/esm/bluetooth-profile.js.map +0 -1
  352. package/build/esm/bluetooth.d.ts +0 -112
  353. package/build/esm/bluetooth.js +0 -427
  354. package/build/esm/bluetooth.js.map +0 -1
  355. package/build/esm/board-serial-info.js.map +0 -1
  356. package/build/esm/button-service.js.map +0 -1
  357. package/build/esm/buttons.d.ts +0 -10
  358. package/build/esm/buttons.js +0 -18
  359. package/build/esm/buttons.js.map +0 -1
  360. package/build/esm/constants.d.ts +0 -48
  361. package/build/esm/constants.js +0 -70
  362. package/build/esm/constants.js.map +0 -1
  363. package/build/esm/device-information-service.js +0 -30
  364. package/build/esm/device-information-service.js.map +0 -1
  365. package/build/esm/dfu-service.js.map +0 -1
  366. package/build/esm/flashing/flashing-full.js.map +0 -1
  367. package/build/esm/flashing/flashing-makecode.d.ts +0 -6
  368. package/build/esm/flashing/flashing-makecode.js.map +0 -1
  369. package/build/esm/flashing/flashing-partial.d.ts +0 -9
  370. package/build/esm/flashing/flashing-partial.js +0 -95
  371. package/build/esm/flashing/flashing-partial.js.map +0 -1
  372. package/build/esm/flashing/flashing-v1.js.map +0 -1
  373. package/build/esm/flashing/nordic-dfu.js.map +0 -1
  374. package/build/esm/flashing/zip.js.map +0 -1
  375. package/build/esm/hex-flash-data-source.js.map +0 -1
  376. package/build/esm/led-service.js.map +0 -1
  377. package/build/esm/led.d.ts +0 -6
  378. package/build/esm/led.js +0 -2
  379. package/build/esm/led.js.map +0 -1
  380. package/build/esm/magnetometer-service.js.map +0 -1
  381. package/build/esm/magnetometer.d.ts +0 -9
  382. package/build/esm/magnetometer.js +0 -12
  383. package/build/esm/magnetometer.js.map +0 -1
  384. package/build/esm/partial-flashing-service.js.map +0 -1
  385. package/build/esm/promise-queue.js.map +0 -1
  386. package/build/esm/serial-events.d.ts +0 -20
  387. package/build/esm/serial-events.js +0 -61
  388. package/build/esm/serial-events.js.map +0 -1
  389. package/build/esm/setupTests.d.ts +0 -6
  390. package/build/esm/setupTests.js.map +0 -1
  391. package/build/esm/uart-service.js.map +0 -1
  392. package/build/esm/uart.d.ts +0 -4
  393. package/build/esm/uart.js +0 -12
  394. package/build/esm/uart.js.map +0 -1
  395. package/build/esm/usb-device-wrapper.d.ts +0 -47
  396. package/build/esm/usb-device-wrapper.js +0 -410
  397. package/build/esm/usb-device-wrapper.js.map +0 -1
  398. package/build/esm/usb-partial-flashing-utils.js.map +0 -1
  399. package/build/esm/usb-partial-flashing.js.map +0 -1
  400. package/build/esm/usb-radio-bridge.d.ts +0 -24
  401. package/build/esm/usb-radio-bridge.js.map +0 -1
  402. package/build/esm/usb-serial-protocol.js.map +0 -1
  403. package/build/esm/usb.d.ts +0 -66
  404. package/build/esm/usb.js.map +0 -1
  405. package/typedoc.json +0 -14
  406. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  407. /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  408. /package/build/cjs/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  409. /package/build/cjs/{flashing → bluetooth/flashing}/zip.js +0 -0
  410. /package/build/cjs/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  411. /package/build/cjs/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  412. /package/build/cjs/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  413. /package/build/cjs/{promise-queue.js → usb/promise-queue.js} +0 -0
  414. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
  415. /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
  416. /package/build/esm/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
  417. /package/build/esm/{flashing → bluetooth/flashing}/zip.js +0 -0
  418. /package/build/esm/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
  419. /package/build/esm/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
  420. /package/build/esm/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
  421. /package/build/esm/{promise-queue.js → usb/promise-queue.js} +0 -0
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IoPinService = void 0;
4
+ const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
+ const profile_js_1 = require("../profile.js");
6
+ const ble_error_js_1 = require("../ble-error.js");
7
+ function pinsToBitmask(pins) {
8
+ let mask = 0;
9
+ for (const pin of pins) {
10
+ mask |= 1 << pin;
11
+ }
12
+ return mask;
13
+ }
14
+ function bitmaskToPins(mask) {
15
+ const pins = [];
16
+ for (let i = 0; i < 19; i++) {
17
+ if (mask & (1 << i)) {
18
+ pins.push(i);
19
+ }
20
+ }
21
+ return pins;
22
+ }
23
+ class IoPinService {
24
+ constructor(deviceId, dispatchTypedEvent) {
25
+ Object.defineProperty(this, "deviceId", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: deviceId
30
+ });
31
+ Object.defineProperty(this, "dispatchTypedEvent", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: dispatchTypedEvent
36
+ });
37
+ Object.defineProperty(this, "uuid", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: profile_js_1.profile.ioPin.id
42
+ });
43
+ }
44
+ getRelevantEvents() {
45
+ return ["pinchanged"];
46
+ }
47
+ /**
48
+ * Gets which pins are configured as analog.
49
+ * All other pins are digital (the default).
50
+ *
51
+ * @returns array of pin numbers (0-18) configured as analog.
52
+ */
53
+ async getAnalogPins() {
54
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinAdConfiguration.id);
55
+ return bitmaskToPins(dataView.getUint32(0, true));
56
+ }
57
+ /**
58
+ * Sets which pins are configured as analog.
59
+ * All other pins become digital (the default).
60
+ *
61
+ * @param pins array of pin numbers (0-18) to configure as analog.
62
+ */
63
+ async setAnalogPins(pins) {
64
+ const dataView = new DataView(new ArrayBuffer(4));
65
+ dataView.setUint32(0, pinsToBitmask(pins), true);
66
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinAdConfiguration.id, dataView);
67
+ }
68
+ /**
69
+ * Gets which pins are configured as inputs.
70
+ * Input pins are monitored by the service and their values reported
71
+ * via notifications and reads of the pin data characteristic.
72
+ * All other pins are outputs (the default).
73
+ *
74
+ * @returns array of pin numbers (0-18) configured as inputs.
75
+ */
76
+ async getInputPins() {
77
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinIoConfiguration.id);
78
+ return bitmaskToPins(dataView.getUint32(0, true));
79
+ }
80
+ /**
81
+ * Sets which pins are configured as inputs.
82
+ * Input pins are monitored by the service and their values reported
83
+ * via notifications and reads of the pin data characteristic.
84
+ * All other pins become outputs (the default).
85
+ *
86
+ * @param pins array of pin numbers (0-18) to configure as inputs.
87
+ */
88
+ async setInputPins(pins) {
89
+ const dataView = new DataView(new ArrayBuffer(4));
90
+ dataView.setUint32(0, pinsToBitmask(pins), true);
91
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinIoConfiguration.id, dataView);
92
+ }
93
+ /**
94
+ * Reads pin data for all active input pins.
95
+ * For digital pins, value is 0 or 1.
96
+ * For analog pins, value is 0-255 (10-bit analog value >> 2).
97
+ */
98
+ async readPins() {
99
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinData.id);
100
+ return this.dataViewToPinData(dataView);
101
+ }
102
+ /**
103
+ * Writes pin data for output pins.
104
+ * Only pins configured as outputs (not active inputs) will be affected.
105
+ * For digital pins, value is 0 or 1.
106
+ * For analog pins, value 0-255 is scaled to 0-1023 on the device.
107
+ */
108
+ async writePins(data) {
109
+ const dataView = new DataView(new ArrayBuffer(data.length * 2));
110
+ for (let i = 0; i < data.length; i++) {
111
+ dataView.setUint8(i * 2, data[i].pin);
112
+ dataView.setUint8(i * 2 + 1, data[i].value);
113
+ }
114
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinData.id, dataView);
115
+ }
116
+ /**
117
+ * Sets PWM output on a pin.
118
+ *
119
+ * @param pin Pin number (0-18).
120
+ * @param value Analog value (0-1024).
121
+ * @param period Period in microseconds.
122
+ */
123
+ async setPwm(pin, value, period) {
124
+ const dataView = new DataView(new ArrayBuffer(7));
125
+ dataView.setUint8(0, pin);
126
+ dataView.setUint16(1, value, true);
127
+ dataView.setUint32(3, period, true);
128
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pwmControl.id, dataView);
129
+ }
130
+ async startNotifications(type) {
131
+ if (type !== "pinchanged") {
132
+ return;
133
+ }
134
+ try {
135
+ await bluetooth_le_1.BleClient.startNotifications(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinData.id, (value) => {
136
+ const data = this.dataViewToPinData(value);
137
+ this.dispatchTypedEvent("pinchanged", { data });
138
+ });
139
+ }
140
+ catch (e) {
141
+ this.dispatchTypedEvent("backgrounderror", {
142
+ error: (0, ble_error_js_1.mapBleError)(e),
143
+ event: type,
144
+ });
145
+ }
146
+ }
147
+ async stopNotifications(type) {
148
+ if (type !== "pinchanged") {
149
+ return;
150
+ }
151
+ try {
152
+ await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.ioPin.id, profile_js_1.profile.ioPin.characteristics.pinData.id);
153
+ }
154
+ catch (e) {
155
+ this.dispatchTypedEvent("backgrounderror", {
156
+ error: (0, ble_error_js_1.mapBleError)(e),
157
+ event: type,
158
+ });
159
+ }
160
+ }
161
+ dataViewToPinData(dataView) {
162
+ const result = [];
163
+ for (let i = 0; i + 1 < dataView.byteLength; i += 2) {
164
+ result.push({
165
+ pin: dataView.getUint8(i),
166
+ value: dataView.getUint8(i + 1),
167
+ });
168
+ }
169
+ return result;
170
+ }
171
+ }
172
+ exports.IoPinService = IoPinService;
173
+ //# sourceMappingURL=io-pin-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io-pin-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/io-pin-service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { Service } from "./bluetooth-device-wrapper.js";
2
- import { LedMatrix } from "./led.js";
3
- import { TypedServiceEvent } from "./service-events.js";
1
+ import { Service } from "../device-wrapper.js";
2
+ import { LedMatrix, TypedServiceEvent } from "../../service-events.js";
4
3
  export declare class LedService implements Service {
5
4
  private deviceId;
6
5
  uuid: string;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LedService = void 0;
4
4
  const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
- const bluetooth_profile_js_1 = require("./bluetooth-profile.js");
5
+ const profile_js_1 = require("../profile.js");
6
6
  const createLedMatrix = () => {
7
7
  return [
8
8
  [false, false, false, false, false],
@@ -24,19 +24,22 @@ class LedService {
24
24
  enumerable: true,
25
25
  configurable: true,
26
26
  writable: true,
27
- value: bluetooth_profile_js_1.profile.led.id
27
+ value: profile_js_1.profile.led.id
28
28
  });
29
29
  }
30
30
  getRelevantEvents() {
31
31
  return [];
32
32
  }
33
33
  async getLedMatrix() {
34
- const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, bluetooth_profile_js_1.profile.led.id, bluetooth_profile_js_1.profile.led.characteristics.matrixState.id);
34
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.led.id, profile_js_1.profile.led.characteristics.matrixState.id);
35
35
  return this.dataViewToLedMatrix(dataView);
36
36
  }
37
37
  async setLedMatrix(value) {
38
+ if (value.length !== 5 || value.some((row) => row.length !== 5)) {
39
+ throw new Error("LED matrix must be 5x5");
40
+ }
38
41
  const dataView = this.ledMatrixToDataView(value);
39
- await bluetooth_le_1.BleClient.write(this.deviceId, bluetooth_profile_js_1.profile.led.id, bluetooth_profile_js_1.profile.led.characteristics.matrixState.id, dataView);
42
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.led.id, profile_js_1.profile.led.characteristics.matrixState.id, dataView);
40
43
  }
41
44
  dataViewToLedMatrix(dataView) {
42
45
  if (dataView.byteLength !== 5) {
@@ -71,15 +74,15 @@ class LedService {
71
74
  if (bytes.length > 20) {
72
75
  throw new Error("Text must be <= 20 bytes when encoded as UTF-8");
73
76
  }
74
- await bluetooth_le_1.BleClient.write(this.deviceId, bluetooth_profile_js_1.profile.led.id, bluetooth_profile_js_1.profile.led.characteristics.text.id, new DataView(bytes.buffer));
77
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.led.id, profile_js_1.profile.led.characteristics.text.id, new DataView(bytes.buffer));
75
78
  }
76
79
  async setScrollingDelay(value) {
77
80
  const dataView = new DataView(new ArrayBuffer(2));
78
81
  dataView.setUint16(0, value, true);
79
- await bluetooth_le_1.BleClient.write(this.deviceId, bluetooth_profile_js_1.profile.led.id, bluetooth_profile_js_1.profile.led.characteristics.scrollingDelay.id, dataView);
82
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.led.id, profile_js_1.profile.led.characteristics.scrollingDelay.id, dataView);
80
83
  }
81
84
  async getScrollingDelay() {
82
- const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, bluetooth_profile_js_1.profile.led.id, bluetooth_profile_js_1.profile.led.characteristics.scrollingDelay.id);
85
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.led.id, profile_js_1.profile.led.characteristics.scrollingDelay.id);
83
86
  return dataView.getUint16(0, true);
84
87
  }
85
88
  async startNotifications(type) { }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"led-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/led-service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { Service } from "./bluetooth-device-wrapper.js";
2
- import { MagnetometerData } from "./magnetometer.js";
3
- import { TypedServiceEvent, TypedServiceEventDispatcher } from "./service-events.js";
1
+ import { Service } from "../device-wrapper.js";
2
+ import { MagnetometerData, TypedServiceEvent, TypedServiceEventDispatcher } from "../../service-events.js";
4
3
  export declare class MagnetometerService implements Service {
5
4
  private deviceId;
6
5
  private dispatchTypedEvent;
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MagnetometerService = void 0;
4
4
  const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
- const bluetooth_profile_js_1 = require("./bluetooth-profile.js");
6
- const magnetometer_js_1 = require("./magnetometer.js");
7
- const device_js_1 = require("./device.js");
5
+ const profile_js_1 = require("../profile.js");
6
+ const ble_error_js_1 = require("../ble-error.js");
8
7
  class MagnetometerService {
9
8
  constructor(deviceId, dispatchTypedEvent) {
10
9
  Object.defineProperty(this, "deviceId", {
@@ -23,7 +22,7 @@ class MagnetometerService {
23
22
  enumerable: true,
24
23
  configurable: true,
25
24
  writable: true,
26
- value: bluetooth_profile_js_1.profile.magnetometer.id
25
+ value: profile_js_1.profile.magnetometer.id
27
26
  });
28
27
  }
29
28
  getRelevantEvents() {
@@ -37,11 +36,11 @@ class MagnetometerService {
37
36
  };
38
37
  }
39
38
  async getData() {
40
- const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, bluetooth_profile_js_1.profile.magnetometer.id, bluetooth_profile_js_1.profile.magnetometer.characteristics.data.id);
39
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.magnetometer.id, profile_js_1.profile.magnetometer.characteristics.data.id);
41
40
  return this.dataViewToData(dataView);
42
41
  }
43
42
  async getPeriod() {
44
- const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, bluetooth_profile_js_1.profile.magnetometer.id, bluetooth_profile_js_1.profile.magnetometer.characteristics.period.id);
43
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.magnetometer.id, profile_js_1.profile.magnetometer.characteristics.period.id);
45
44
  return dataView.getUint16(0, true);
46
45
  }
47
46
  async setPeriod(value) {
@@ -55,37 +54,43 @@ class MagnetometerService {
55
54
  // https://lancaster-university.github.io/microbit-docs/ble/profile/#about-the-magnetometer-service
56
55
  const dataView = new DataView(new ArrayBuffer(2));
57
56
  dataView.setUint16(0, value, true);
58
- await bluetooth_le_1.BleClient.write(this.deviceId, bluetooth_profile_js_1.profile.magnetometer.id, bluetooth_profile_js_1.profile.magnetometer.characteristics.period.id, dataView);
57
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.magnetometer.id, profile_js_1.profile.magnetometer.characteristics.period.id, dataView);
59
58
  }
60
59
  async getBearing() {
61
- const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, bluetooth_profile_js_1.profile.magnetometer.id, bluetooth_profile_js_1.profile.magnetometer.characteristics.bearing.id);
60
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.magnetometer.id, profile_js_1.profile.magnetometer.characteristics.bearing.id);
62
61
  return dataView.getUint16(0, true);
63
62
  }
64
63
  async triggerCalibration() {
65
64
  const dataView = new DataView(new ArrayBuffer(1));
66
65
  dataView.setUint8(0, 1);
67
- await bluetooth_le_1.BleClient.write(this.deviceId, bluetooth_profile_js_1.profile.magnetometer.id, bluetooth_profile_js_1.profile.magnetometer.characteristics.calibration.id, dataView);
66
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.magnetometer.id, profile_js_1.profile.magnetometer.characteristics.calibration.id, dataView);
68
67
  }
69
68
  async startNotifications(type) {
70
69
  if (type === "magnetometerdatachanged") {
71
70
  try {
72
- await bluetooth_le_1.BleClient.startNotifications(this.deviceId, bluetooth_profile_js_1.profile.magnetometer.id, bluetooth_profile_js_1.profile.magnetometer.characteristics.data.id, (value) => {
71
+ await bluetooth_le_1.BleClient.startNotifications(this.deviceId, profile_js_1.profile.magnetometer.id, profile_js_1.profile.magnetometer.characteristics.data.id, (value) => {
73
72
  const data = this.dataViewToData(value);
74
- this.dispatchTypedEvent("magnetometerdatachanged", new magnetometer_js_1.MagnetometerDataEvent(data));
73
+ this.dispatchTypedEvent("magnetometerdatachanged", data);
75
74
  });
76
75
  }
77
76
  catch (e) {
78
- this.dispatchTypedEvent("backgrounderror", new device_js_1.BackgroundErrorEvent("Failed to start notifications", e));
77
+ this.dispatchTypedEvent("backgrounderror", {
78
+ error: (0, ble_error_js_1.mapBleError)(e),
79
+ event: type,
80
+ });
79
81
  }
80
82
  }
81
83
  }
82
84
  async stopNotifications(type) {
83
85
  if (type === "magnetometerdatachanged") {
84
86
  try {
85
- await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, bluetooth_profile_js_1.profile.magnetometer.id, bluetooth_profile_js_1.profile.magnetometer.characteristics.data.id);
87
+ await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.magnetometer.id, profile_js_1.profile.magnetometer.characteristics.data.id);
86
88
  }
87
89
  catch (e) {
88
- this.dispatchTypedEvent("backgrounderror", new device_js_1.BackgroundErrorEvent("Failed to stop notifications", e));
90
+ this.dispatchTypedEvent("backgrounderror", {
91
+ error: (0, ble_error_js_1.mapBleError)(e),
92
+ event: type,
93
+ });
89
94
  }
90
95
  }
91
96
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magnetometer-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/magnetometer-service.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { TimeoutOptions } from "@capacitor-community/bluetooth-le";
2
2
  import MemoryMap from "nrf-intel-hex";
3
- import { BluetoothDeviceWrapper } from "./bluetooth-device-wrapper.js";
3
+ import { BluetoothDeviceWrapper } from "../device-wrapper.js";
4
4
  export declare const enum MicroBitMode {
5
5
  Pairing = 0,
6
6
  Application = 1
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PartialFlashingService = exports.PacketState = exports.RegionId = exports.MicroBitMode = void 0;
4
4
  /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */
5
5
  const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
6
- const bluetooth_profile_js_1 = require("./bluetooth-profile.js");
6
+ const profile_js_1 = require("../profile.js");
7
7
  const MICROBIT_RESET_COMMAND = 0xff;
8
8
  const REGION_INFO_COMMAND = 0x0;
9
9
  const FLASH_COMMAND = 0x1;
@@ -37,35 +37,35 @@ class PartialFlashingService {
37
37
  });
38
38
  }
39
39
  async startNotifications(options) {
40
- await this.connection.startInternalNotifications(bluetooth_profile_js_1.profile.partialFlashing.id, bluetooth_profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, options);
40
+ await this.connection.startInternalNotifications(profile_js_1.profile.partialFlashing.id, profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, options);
41
41
  }
42
42
  async stopNotifications() {
43
- await this.connection.stopInternalNotifications(bluetooth_profile_js_1.profile.partialFlashing.id, bluetooth_profile_js_1.profile.partialFlashing.characteristics.partialFlash.id);
43
+ await this.connection.stopInternalNotifications(profile_js_1.profile.partialFlashing.id, profile_js_1.profile.partialFlashing.characteristics.partialFlash.id);
44
44
  }
45
45
  async resetToMode(mode) {
46
- await bluetooth_le_1.BleClient.writeWithoutResponse(this.connection.device.deviceId, bluetooth_profile_js_1.profile.partialFlashing.id, bluetooth_profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, (0, bluetooth_le_1.numbersToDataView)([MICROBIT_RESET_COMMAND, mode]));
46
+ await bluetooth_le_1.BleClient.writeWithoutResponse(this.connection.bleDevice.deviceId, profile_js_1.profile.partialFlashing.id, profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, (0, bluetooth_le_1.numbersToDataView)([MICROBIT_RESET_COMMAND, mode]));
47
47
  }
48
48
  async getRegionInfo(region) {
49
- return parseRegionResponse(await this.connection.writeForNotification(bluetooth_profile_js_1.profile.partialFlashing.id, bluetooth_profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, (0, bluetooth_le_1.numbersToDataView)([REGION_INFO_COMMAND, region]), REGION_INFO_COMMAND));
49
+ return parseRegionResponse(await this.connection.writeForNotification(profile_js_1.profile.partialFlashing.id, profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, (0, bluetooth_le_1.numbersToDataView)([REGION_INFO_COMMAND, region]), REGION_INFO_COMMAND));
50
50
  }
51
51
  /**
52
52
  * Writes a flash chunk.
53
53
  * Use writeFlashForNotification for every 4th chunk.
54
54
  */
55
55
  async writeFlash(source, batchAddress, dataOffset, packetNumber, packetInBatch) {
56
- return await bluetooth_le_1.BleClient.writeWithoutResponse(this.connection.device.deviceId, bluetooth_profile_js_1.profile.partialFlashing.id, bluetooth_profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, this.createWriteDataCommand(source, batchAddress, dataOffset, packetNumber, packetInBatch));
56
+ return await bluetooth_le_1.BleClient.writeWithoutResponse(this.connection.bleDevice.deviceId, profile_js_1.profile.partialFlashing.id, profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, this.createWriteDataCommand(source, batchAddress, dataOffset, packetNumber, packetInBatch));
57
57
  }
58
58
  /**
59
59
  * Write a chunk and wait for a success/retransmit response.
60
60
  * The micro:bit notifies on every 4th chunk.
61
61
  */
62
62
  async writeFlashForNotification(source, batchAddress, dataOffset, packetNumber, packetInBatch) {
63
- const result = await this.connection.writeForNotification(bluetooth_profile_js_1.profile.partialFlashing.id, bluetooth_profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, this.createWriteDataCommand(source, batchAddress, dataOffset, packetNumber, packetInBatch), FLASH_COMMAND, (notificationValue) => notificationValue[1] === PacketState.Success ||
63
+ const result = await this.connection.writeForNotification(profile_js_1.profile.partialFlashing.id, profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, this.createWriteDataCommand(source, batchAddress, dataOffset, packetNumber, packetInBatch), FLASH_COMMAND, (notificationValue) => notificationValue[1] === PacketState.Success ||
64
64
  notificationValue[1] === PacketState.Retransmit);
65
65
  return result[1];
66
66
  }
67
67
  async writeEndOfFlashPacket() {
68
- return await bluetooth_le_1.BleClient.writeWithoutResponse(this.connection.device.deviceId, bluetooth_profile_js_1.profile.partialFlashing.id, bluetooth_profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, (0, bluetooth_le_1.numbersToDataView)([0x02]));
68
+ return await bluetooth_le_1.BleClient.writeWithoutResponse(this.connection.bleDevice.deviceId, profile_js_1.profile.partialFlashing.id, profile_js_1.profile.partialFlashing.characteristics.partialFlash.id, (0, bluetooth_le_1.numbersToDataView)([0x02]));
69
69
  }
70
70
  createWriteDataCommand(source, batchAddress, dataOffset, packetNumber, packetInBatch) {
71
71
  const data = new DataView(new ArrayBuffer(20));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial-flashing-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/partial-flashing-service.ts"],"names":[],"mappings":";;;AAAA,iEAAiE;AACjE,oEAI2C;AAG3C,8CAAwC;AAExC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AACpC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,IAAkB,YAGjB;AAHD,WAAkB,YAAY;IAC5B,qDAAc,CAAA;IACd,6DAAkB,CAAA;AACpB,CAAC,EAHiB,YAAY,4BAAZ,YAAY,QAG7B;AAED,IAAkB,QAIjB;AAJD,WAAkB,QAAQ;IACxB,mDAAgB,CAAA;IAChB,qCAAS,CAAA;IACT,+CAAc,CAAA;AAChB,CAAC,EAJiB,QAAQ,wBAAR,QAAQ,QAIzB;AAQD,IAAkB,WAGjB;AAHD,WAAkB,WAAW;IAC3B,2DAAiB,CAAA;IACjB,qDAAc,CAAA;AAChB,CAAC,EAHiB,WAAW,2BAAX,WAAW,QAG5B;AAED;;;GAGG;AACH,MAAa,sBAAsB;IACjC,YAAoB,UAAkC;QAA1C;;;;mBAAQ,UAAU;WAAwB;IAAG,CAAC;IAE1D,KAAK,CAAC,kBAAkB,CAAC,OAAwB;QAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAC9C,oBAAO,CAAC,eAAe,CAAC,EAAE,EAC1B,oBAAO,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EACvD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAC7C,oBAAO,CAAC,eAAe,CAAC,EAAE,EAC1B,oBAAO,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAkB;QAClC,MAAM,wBAAS,CAAC,oBAAoB,CAClC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAClC,oBAAO,CAAC,eAAe,CAAC,EAAE,EAC1B,oBAAO,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EACvD,IAAA,gCAAiB,EAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC,CAClD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAgB;QAClC,OAAO,mBAAmB,CACxB,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACxC,oBAAO,CAAC,eAAe,CAAC,EAAE,EAC1B,oBAAO,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EACvD,IAAA,gCAAiB,EAAC,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,EAChD,mBAAmB,CACpB,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CACd,MAAiB,EACjB,YAAoB,EACpB,UAAkB,EAClB,YAAoB,EACpB,aAAqB;QAErB,OAAO,MAAM,wBAAS,CAAC,oBAAoB,CACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAClC,oBAAO,CAAC,eAAe,CAAC,EAAE,EAC1B,oBAAO,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EACvD,IAAI,CAAC,sBAAsB,CACzB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,CACd,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAC7B,MAAiB,EACjB,YAAoB,EACpB,UAAkB,EAClB,YAAoB,EACpB,aAAqB;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,CACvD,oBAAO,CAAC,eAAe,CAAC,EAAE,EAC1B,oBAAO,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EACvD,IAAI,CAAC,sBAAsB,CACzB,MAAM,EACN,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,aAAa,CACd,EACD,aAAa,EACb,CAAC,iBAA6B,EAAE,EAAE,CAChC,iBAAiB,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,OAAO;YAC5C,iBAAiB,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,UAAU,CAClD,CAAC;QACF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,MAAM,wBAAS,CAAC,oBAAoB,CACzC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAClC,oBAAO,CAAC,eAAe,CAAC,EAAE,EAC1B,oBAAO,CAAC,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,EACvD,IAAA,gCAAiB,EAAC,CAAC,IAAI,CAAC,CAAC,CAC1B,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAC5B,MAAiB,EACjB,YAAoB,EACpB,UAAkB,EAClB,YAAoB,EACpB,aAAqB;QAErB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEvB,6BAA6B;QAC7B,yCAAyC;QACzC,0CAA0C;QAC1C,6DAA6D;QAC7D,IAAI,WAAmB,CAAC;QACxB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,kDAAkD;YAClD,WAAW,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AArID,wDAqIC;AAED,MAAM,mBAAmB,GAAG,CAAC,KAAiB,EAAqB,EAAE;IACnE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,CACjB,CAAC;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAiB,EAAU,EAAE;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Service } from "../device-wrapper.js";
2
+ import { TypedServiceEvent, TypedServiceEventDispatcher } from "../../service-events.js";
3
+ export declare class TemperatureService implements Service {
4
+ private deviceId;
5
+ private dispatchTypedEvent;
6
+ uuid: string;
7
+ constructor(deviceId: string, dispatchTypedEvent: TypedServiceEventDispatcher);
8
+ getRelevantEvents(): TypedServiceEvent[];
9
+ getData(): Promise<number>;
10
+ getPeriod(): Promise<number>;
11
+ setPeriod(value: number): Promise<void>;
12
+ startNotifications(type: TypedServiceEvent): Promise<void>;
13
+ stopNotifications(type: TypedServiceEvent): Promise<void>;
14
+ }
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemperatureService = void 0;
4
+ const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
+ const profile_js_1 = require("../profile.js");
6
+ const ble_error_js_1 = require("../ble-error.js");
7
+ class TemperatureService {
8
+ constructor(deviceId, dispatchTypedEvent) {
9
+ Object.defineProperty(this, "deviceId", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: deviceId
14
+ });
15
+ Object.defineProperty(this, "dispatchTypedEvent", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: dispatchTypedEvent
20
+ });
21
+ Object.defineProperty(this, "uuid", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: profile_js_1.profile.temperature.id
26
+ });
27
+ }
28
+ getRelevantEvents() {
29
+ return ["temperaturechanged"];
30
+ }
31
+ async getData() {
32
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.temperature.id, profile_js_1.profile.temperature.characteristics.data.id);
33
+ return dataView.getInt8(0);
34
+ }
35
+ async getPeriod() {
36
+ const dataView = await bluetooth_le_1.BleClient.read(this.deviceId, profile_js_1.profile.temperature.id, profile_js_1.profile.temperature.characteristics.period.id);
37
+ return dataView.getUint16(0, true);
38
+ }
39
+ async setPeriod(value) {
40
+ if (value === 0) {
41
+ return;
42
+ }
43
+ const dataView = new DataView(new ArrayBuffer(2));
44
+ dataView.setUint16(0, value, true);
45
+ await bluetooth_le_1.BleClient.write(this.deviceId, profile_js_1.profile.temperature.id, profile_js_1.profile.temperature.characteristics.period.id, dataView);
46
+ }
47
+ async startNotifications(type) {
48
+ if (type !== "temperaturechanged") {
49
+ return;
50
+ }
51
+ try {
52
+ await bluetooth_le_1.BleClient.startNotifications(this.deviceId, profile_js_1.profile.temperature.id, profile_js_1.profile.temperature.characteristics.data.id, (value) => {
53
+ const celsius = value.getInt8(0);
54
+ this.dispatchTypedEvent("temperaturechanged", { celsius });
55
+ });
56
+ }
57
+ catch (e) {
58
+ this.dispatchTypedEvent("backgrounderror", {
59
+ error: (0, ble_error_js_1.mapBleError)(e),
60
+ event: type,
61
+ });
62
+ }
63
+ }
64
+ async stopNotifications(type) {
65
+ if (type !== "temperaturechanged") {
66
+ return;
67
+ }
68
+ try {
69
+ await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.temperature.id, profile_js_1.profile.temperature.characteristics.data.id);
70
+ }
71
+ catch (e) {
72
+ this.dispatchTypedEvent("backgrounderror", {
73
+ error: (0, ble_error_js_1.mapBleError)(e),
74
+ event: type,
75
+ });
76
+ }
77
+ }
78
+ }
79
+ exports.TemperatureService = TemperatureService;
80
+ //# sourceMappingURL=temperature-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temperature-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/temperature-service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Service } from "./bluetooth-device-wrapper.js";
2
- import { TypedServiceEvent, TypedServiceEventDispatcher } from "./service-events.js";
1
+ import { Service } from "../device-wrapper.js";
2
+ import { TypedServiceEvent, TypedServiceEventDispatcher } from "../../service-events.js";
3
3
  export declare class UARTService implements Service {
4
4
  private deviceId;
5
5
  private dispatchTypedEvent;
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UARTService = void 0;
4
4
  const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
5
- const bluetooth_profile_js_1 = require("./bluetooth-profile.js");
6
- const uart_js_1 = require("./uart.js");
7
- const device_js_1 = require("./device.js");
5
+ const profile_js_1 = require("../profile.js");
6
+ const ble_error_js_1 = require("../ble-error.js");
8
7
  class UARTService {
9
8
  constructor(deviceId, dispatchTypedEvent) {
10
9
  Object.defineProperty(this, "deviceId", {
@@ -23,7 +22,7 @@ class UARTService {
23
22
  enumerable: true,
24
23
  configurable: true,
25
24
  writable: true,
26
- value: bluetooth_profile_js_1.profile.uart.id
25
+ value: profile_js_1.profile.uart.id
27
26
  });
28
27
  }
29
28
  getRelevantEvents() {
@@ -32,23 +31,36 @@ class UARTService {
32
31
  async startNotifications(type) {
33
32
  if (type === "uartdata") {
34
33
  try {
35
- await bluetooth_le_1.BleClient.startNotifications(this.deviceId, bluetooth_profile_js_1.profile.uart.id, bluetooth_profile_js_1.profile.uart.characteristics.tx.id, (value) => {
36
- this.dispatchTypedEvent("uartdata", new uart_js_1.UARTDataEvent(new Uint8Array(value.buffer)));
34
+ await bluetooth_le_1.BleClient.startNotifications(this.deviceId, profile_js_1.profile.uart.id, profile_js_1.profile.uart.characteristics.tx.id, (value) => {
35
+ this.dispatchTypedEvent("uartdata", {
36
+ value: new Uint8Array(value.buffer),
37
+ });
37
38
  });
38
39
  }
39
40
  catch (e) {
40
- this.dispatchTypedEvent("backgrounderror", new device_js_1.BackgroundErrorEvent("Failed to start notifications", e));
41
+ this.dispatchTypedEvent("backgrounderror", {
42
+ error: (0, ble_error_js_1.mapBleError)(e),
43
+ event: type,
44
+ });
41
45
  }
42
46
  }
43
47
  }
44
48
  async stopNotifications(type) {
45
49
  if (type === "uartdata") {
46
- await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, bluetooth_profile_js_1.profile.uart.id, bluetooth_profile_js_1.profile.uart.characteristics.tx.id);
50
+ try {
51
+ await bluetooth_le_1.BleClient.stopNotifications(this.deviceId, profile_js_1.profile.uart.id, profile_js_1.profile.uart.characteristics.tx.id);
52
+ }
53
+ catch (e) {
54
+ this.dispatchTypedEvent("backgrounderror", {
55
+ error: (0, ble_error_js_1.mapBleError)(e),
56
+ event: type,
57
+ });
58
+ }
47
59
  }
48
60
  }
49
61
  async writeData(value) {
50
62
  const dataView = new DataView(value.buffer);
51
- await bluetooth_le_1.BleClient.writeWithoutResponse(this.deviceId, bluetooth_profile_js_1.profile.uart.id, bluetooth_profile_js_1.profile.uart.characteristics.rx.id, dataView);
63
+ await bluetooth_le_1.BleClient.writeWithoutResponse(this.deviceId, profile_js_1.profile.uart.id, profile_js_1.profile.uart.characteristics.rx.id, dataView);
52
64
  }
53
65
  }
54
66
  exports.UARTService = UARTService;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uart-service.js","sourceRoot":"","sources":["../../../../src/bluetooth/services/uart-service.ts"],"names":[],"mappings":";;;AAAA,oEAA8D;AAE9D,8CAAwC;AAKxC,kDAA8C;AAE9C,MAAa,WAAW;IAGtB,YACU,QAAgB,EAChB,kBAA+C;QADvD;;;;mBAAQ,QAAQ;WAAQ;QACxB;;;;mBAAQ,kBAAkB;WAA6B;QAJzD;;;;mBAAO,oBAAO,CAAC,IAAI,CAAC,EAAE;WAAC;IAKpB,CAAC;IAEJ,iBAAiB;QACf,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QAC9C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,wBAAS,CAAC,kBAAkB,CAChC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAClC,CAAC,KAAe,EAAE,EAAE;oBAClB,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE;wBAClC,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;qBACpC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;oBACrB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAuB;QAC7C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,wBAAS,CAAC,iBAAiB,CAC/B,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CACnC,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;oBACzC,KAAK,EAAE,IAAA,0BAAW,EAAC,CAAC,CAAC;oBACrB,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAiB;QAC/B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,wBAAS,CAAC,oBAAoB,CAClC,IAAI,CAAC,QAAQ,EACb,oBAAO,CAAC,IAAI,CAAC,EAAE,EACf,oBAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,EAClC,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AA5DD,kCA4DC"}
@@ -8,7 +8,7 @@ import { BoardVersion } from "./device.js";
8
8
  * Validates micro:bit board IDs.
9
9
  */
10
10
  export declare class BoardId {
11
- id: number;
11
+ readonly id: number;
12
12
  private static v1Normalized;
13
13
  private static v2Normalized;
14
14
  constructor(id: number);