@microbit/microbit-connection 0.9.0-apps.alpha.8 → 1.0.0-beta.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.
- package/README.md +106 -27
- package/build/cjs/async-util.d.ts +3 -1
- package/build/cjs/async-util.js +5 -1
- package/build/cjs/async-util.js.map +1 -1
- package/build/cjs/availability.js.map +1 -1
- package/build/cjs/bluetooth/ble-error.d.ts +10 -0
- package/build/cjs/bluetooth/ble-error.js +47 -0
- package/build/cjs/bluetooth/ble-error.js.map +1 -0
- package/build/cjs/bluetooth/connection.d.ts +378 -0
- package/build/cjs/bluetooth/connection.js +623 -0
- package/build/cjs/bluetooth/connection.js.map +1 -0
- package/build/cjs/bluetooth/device-bond-state.d.ts +14 -0
- package/build/cjs/bluetooth/device-bond-state.js +26 -0
- package/build/cjs/bluetooth/device-bond-state.js.map +1 -0
- package/build/cjs/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +35 -19
- package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +169 -122
- package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
- package/build/{esm → cjs/bluetooth}/flashing/flashing-full.d.ts +2 -2
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
- package/build/cjs/bluetooth/flashing/flashing-full.js.map +1 -0
- package/build/cjs/bluetooth/flashing/flashing-makecode.d.ts +10 -0
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.js +5 -2
- package/build/cjs/bluetooth/flashing/flashing-makecode.js.map +1 -0
- package/build/cjs/bluetooth/flashing/flashing-partial.d.ts +10 -0
- package/build/cjs/bluetooth/flashing/flashing-partial.js +145 -0
- package/build/cjs/bluetooth/flashing/flashing-partial.js.map +1 -0
- package/build/cjs/bluetooth/flashing/flashing-v1.js.map +1 -0
- package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
- package/build/cjs/{flashing → bluetooth/flashing}/nordic-dfu.js +40 -14
- package/build/cjs/bluetooth/flashing/nordic-dfu.js.map +1 -0
- package/build/cjs/bluetooth/flashing/zip.js.map +1 -0
- package/build/cjs/bluetooth/index.d.ts +5 -0
- package/build/cjs/bluetooth/index.js +9 -0
- package/build/cjs/bluetooth/index.js.map +1 -0
- package/build/cjs/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +8 -0
- package/build/cjs/{bluetooth-profile.js → bluetooth/profile.js} +7 -1
- package/build/cjs/bluetooth/profile.js.map +1 -0
- package/build/cjs/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
- package/build/cjs/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +17 -12
- package/build/cjs/bluetooth/services/accelerometer-service.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/button-service.d.ts +2 -3
- package/build/cjs/{button-service.js → bluetooth/services/button-service.js} +24 -14
- package/build/cjs/bluetooth/services/button-service.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/device-information-service.d.ts +1 -1
- package/build/cjs/bluetooth/services/device-information-service.js +29 -0
- package/build/cjs/bluetooth/services/device-information-service.js.map +1 -0
- package/build/cjs/{dfu-service.js → bluetooth/services/dfu-service.js} +2 -2
- package/build/cjs/bluetooth/services/dfu-service.js.map +1 -0
- package/build/cjs/bluetooth/services/event-service.d.ts +48 -0
- package/build/cjs/bluetooth/services/event-service.js +273 -0
- package/build/cjs/bluetooth/services/event-service.js.map +1 -0
- package/build/cjs/bluetooth/services/io-pin-service.d.ts +65 -0
- package/build/cjs/bluetooth/services/io-pin-service.js +173 -0
- package/build/cjs/bluetooth/services/io-pin-service.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/led-service.d.ts +2 -3
- package/build/cjs/{led-service.js → bluetooth/services/led-service.js} +10 -7
- package/build/cjs/bluetooth/services/led-service.js.map +1 -0
- package/build/cjs/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
- package/build/cjs/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +19 -14
- package/build/cjs/bluetooth/services/magnetometer-service.js.map +1 -0
- package/build/{esm → cjs/bluetooth/services}/partial-flashing-service.d.ts +1 -1
- package/build/cjs/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +8 -8
- package/build/cjs/bluetooth/services/partial-flashing-service.js.map +1 -0
- package/build/cjs/bluetooth/services/temperature-service.d.ts +14 -0
- package/build/cjs/bluetooth/services/temperature-service.js +80 -0
- package/build/cjs/bluetooth/services/temperature-service.js.map +1 -0
- package/build/cjs/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
- package/build/cjs/{uart-service.js → bluetooth/services/uart-service.js} +21 -9
- package/build/cjs/bluetooth/services/uart-service.js.map +1 -0
- package/build/cjs/board-id.d.ts +1 -1
- package/build/cjs/board-id.js.map +1 -1
- package/build/cjs/device.d.ts +191 -101
- package/build/cjs/device.js +47 -110
- package/build/cjs/device.js.map +1 -1
- package/build/cjs/events.d.ts +8 -108
- package/build/cjs/events.js +27 -88
- package/build/cjs/events.js.map +1 -1
- package/build/cjs/hex-util.d.ts +1 -0
- package/build/cjs/hex-util.js +15 -0
- package/build/cjs/hex-util.js.map +1 -0
- package/build/cjs/index.d.ts +8 -16
- package/build/cjs/index.js +9 -28
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/logging.js.map +1 -1
- package/build/cjs/microbit-events.d.ts +67 -0
- package/build/cjs/microbit-events.js +55 -0
- package/build/cjs/microbit-events.js.map +1 -0
- package/build/cjs/radio-bridge/connection.d.ts +52 -0
- package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +84 -96
- package/build/cjs/radio-bridge/connection.js.map +1 -0
- package/build/cjs/radio-bridge/index.d.ts +4 -0
- package/build/cjs/radio-bridge/index.js +9 -0
- package/build/cjs/radio-bridge/index.js.map +1 -0
- package/build/cjs/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
- package/build/cjs/radio-bridge/serial-protocol.js.map +1 -0
- package/build/cjs/service-events.d.ts +92 -15
- package/build/cjs/service-events.js +6 -36
- package/build/cjs/service-events.js.map +1 -1
- package/build/{esm/hex-flash-data-source.d.ts → cjs/universal-hex/flash-data-source.d.ts} +1 -1
- package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -3
- package/build/cjs/universal-hex/flash-data-source.js.map +1 -0
- package/build/cjs/universal-hex/index.d.ts +4 -0
- package/build/cjs/universal-hex/index.js +9 -0
- package/build/cjs/universal-hex/index.js.map +1 -0
- package/build/cjs/usb/arm-debug.d.ts +137 -0
- package/build/cjs/usb/arm-debug.js +414 -0
- package/build/cjs/usb/arm-debug.js.map +1 -0
- package/build/{esm → cjs/usb}/board-serial-info.d.ts +2 -1
- package/build/cjs/{board-serial-info.js → usb/board-serial-info.js} +10 -7
- package/build/cjs/usb/board-serial-info.js.map +1 -0
- package/build/cjs/usb/cdc-saturation.d.ts +36 -0
- package/build/cjs/usb/cdc-saturation.js +151 -0
- package/build/cjs/usb/cdc-saturation.js.map +1 -0
- package/build/cjs/usb/cmsis-dap.d.ts +113 -0
- package/build/cjs/usb/cmsis-dap.js +349 -0
- package/build/cjs/usb/cmsis-dap.js.map +1 -0
- package/build/cjs/usb/connection.d.ts +96 -0
- package/build/cjs/{usb.js → usb/connection.js} +257 -173
- package/build/cjs/usb/connection.js.map +1 -0
- package/build/cjs/usb/cortex-m.d.ts +72 -0
- package/build/cjs/usb/cortex-m.js +165 -0
- package/build/cjs/usb/cortex-m.js.map +1 -0
- package/build/cjs/usb/daplink.d.ts +69 -0
- package/build/cjs/usb/daplink.js +238 -0
- package/build/cjs/usb/daplink.js.map +1 -0
- package/build/cjs/usb/device-wrapper.d.ts +34 -0
- package/build/cjs/usb/device-wrapper.js +102 -0
- package/build/cjs/usb/device-wrapper.js.map +1 -0
- package/build/cjs/usb/index.d.ts +5 -0
- package/build/cjs/usb/index.js +10 -0
- package/build/cjs/usb/index.js.map +1 -0
- package/build/{esm/usb-partial-flashing-utils.d.ts → cjs/usb/partial-flashing-utils.d.ts} +6 -9
- package/build/cjs/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +6 -49
- package/build/cjs/usb/partial-flashing-utils.js.map +1 -0
- package/build/{esm/usb-partial-flashing.d.ts → cjs/usb/partial-flashing.d.ts} +37 -11
- package/build/cjs/{usb-partial-flashing.js → usb/partial-flashing.js} +170 -134
- package/build/cjs/usb/partial-flashing.js.map +1 -0
- package/build/cjs/usb/promise-queue.js.map +1 -0
- package/build/cjs/usb/serial-events.d.ts +16 -0
- package/build/cjs/{led.js → usb/serial-events.js} +1 -1
- package/build/cjs/usb/serial-events.js.map +1 -0
- package/build/cjs/usb/transport.d.ts +42 -0
- package/build/cjs/usb/transport.js +155 -0
- package/build/cjs/usb/transport.js.map +1 -0
- package/build/esm/async-util.d.ts +3 -1
- package/build/esm/async-util.js +5 -1
- package/build/esm/async-util.js.map +1 -1
- package/build/esm/availability.js.map +1 -1
- package/build/esm/bluetooth/ble-error.d.ts +10 -0
- package/build/esm/bluetooth/ble-error.js +42 -0
- package/build/esm/bluetooth/ble-error.js.map +1 -0
- package/build/esm/bluetooth/connection.d.ts +378 -0
- package/build/esm/bluetooth/connection.js +593 -0
- package/build/esm/bluetooth/connection.js.map +1 -0
- package/build/esm/bluetooth/device-bond-state.d.ts +14 -0
- package/build/esm/bluetooth/device-bond-state.js +22 -0
- package/build/esm/bluetooth/device-bond-state.js.map +1 -0
- package/build/esm/{bluetooth-device-wrapper.d.ts → bluetooth/device-wrapper.d.ts} +35 -19
- package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +167 -121
- package/build/esm/bluetooth/device-wrapper.js.map +1 -0
- package/build/{cjs → esm/bluetooth}/flashing/flashing-full.d.ts +2 -2
- package/build/esm/{flashing → bluetooth/flashing}/flashing-full.js +6 -5
- package/build/esm/bluetooth/flashing/flashing-full.js.map +1 -0
- package/build/esm/bluetooth/flashing/flashing-makecode.d.ts +10 -0
- package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.js +5 -2
- package/build/esm/bluetooth/flashing/flashing-makecode.js.map +1 -0
- package/build/esm/bluetooth/flashing/flashing-partial.d.ts +10 -0
- package/build/esm/bluetooth/flashing/flashing-partial.js +142 -0
- package/build/esm/bluetooth/flashing/flashing-partial.js.map +1 -0
- package/build/esm/bluetooth/flashing/flashing-v1.js.map +1 -0
- package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.d.ts +2 -2
- package/build/esm/{flashing → bluetooth/flashing}/nordic-dfu.js +40 -14
- package/build/esm/bluetooth/flashing/nordic-dfu.js.map +1 -0
- package/build/esm/bluetooth/flashing/zip.js.map +1 -0
- package/build/esm/bluetooth/index.d.ts +5 -0
- package/build/esm/bluetooth/index.js +5 -0
- package/build/esm/bluetooth/index.js.map +1 -0
- package/build/esm/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +8 -0
- package/build/esm/{bluetooth-profile.js → bluetooth/profile.js} +7 -1
- package/build/{cjs/bluetooth-profile.js.map → esm/bluetooth/profile.js.map} +1 -1
- package/build/esm/{accelerometer-service.d.ts → bluetooth/services/accelerometer-service.d.ts} +2 -3
- package/build/esm/{accelerometer-service.js → bluetooth/services/accelerometer-service.js} +11 -6
- package/build/esm/bluetooth/services/accelerometer-service.js.map +1 -0
- package/build/{cjs → esm/bluetooth/services}/button-service.d.ts +2 -3
- package/build/esm/{button-service.js → bluetooth/services/button-service.js} +20 -10
- package/build/esm/bluetooth/services/button-service.js.map +1 -0
- package/build/{cjs → esm/bluetooth/services}/device-information-service.d.ts +1 -1
- package/build/esm/bluetooth/services/device-information-service.js +25 -0
- package/build/esm/bluetooth/services/device-information-service.js.map +1 -0
- package/build/esm/{dfu-service.js → bluetooth/services/dfu-service.js} +1 -1
- package/build/esm/bluetooth/services/dfu-service.js.map +1 -0
- package/build/esm/bluetooth/services/event-service.d.ts +48 -0
- package/build/esm/bluetooth/services/event-service.js +269 -0
- package/build/esm/bluetooth/services/event-service.js.map +1 -0
- package/build/esm/bluetooth/services/io-pin-service.d.ts +65 -0
- package/build/esm/bluetooth/services/io-pin-service.js +169 -0
- package/build/esm/bluetooth/services/io-pin-service.js.map +1 -0
- package/build/{cjs → esm/bluetooth/services}/led-service.d.ts +2 -3
- package/build/esm/{led-service.js → bluetooth/services/led-service.js} +4 -1
- package/build/esm/bluetooth/services/led-service.js.map +1 -0
- package/build/esm/{magnetometer-service.d.ts → bluetooth/services/magnetometer-service.d.ts} +2 -3
- package/build/esm/{magnetometer-service.js → bluetooth/services/magnetometer-service.js} +11 -6
- package/build/esm/bluetooth/services/magnetometer-service.js.map +1 -0
- package/build/{cjs → esm/bluetooth/services}/partial-flashing-service.d.ts +1 -1
- package/build/esm/{partial-flashing-service.js → bluetooth/services/partial-flashing-service.js} +4 -4
- package/build/esm/bluetooth/services/partial-flashing-service.js.map +1 -0
- package/build/esm/bluetooth/services/temperature-service.d.ts +14 -0
- package/build/esm/bluetooth/services/temperature-service.js +76 -0
- package/build/esm/bluetooth/services/temperature-service.js.map +1 -0
- package/build/esm/{uart-service.d.ts → bluetooth/services/uart-service.d.ts} +2 -2
- package/build/esm/{uart-service.js → bluetooth/services/uart-service.js} +18 -6
- package/build/esm/bluetooth/services/uart-service.js.map +1 -0
- package/build/esm/board-id.d.ts +1 -1
- package/build/esm/board-id.js.map +1 -1
- package/build/esm/device.d.ts +191 -101
- package/build/esm/device.js +45 -104
- package/build/esm/device.js.map +1 -1
- package/build/esm/events.d.ts +8 -108
- package/build/esm/events.js +26 -86
- package/build/esm/events.js.map +1 -1
- package/build/esm/hex-util.d.ts +1 -0
- package/build/esm/hex-util.js +11 -0
- package/build/esm/hex-util.js.map +1 -0
- package/build/esm/index.d.ts +8 -16
- package/build/esm/index.js +7 -11
- package/build/esm/index.js.map +1 -1
- package/build/esm/logging.js.map +1 -1
- package/build/esm/microbit-events.d.ts +67 -0
- package/build/esm/microbit-events.js +52 -0
- package/build/esm/microbit-events.js.map +1 -0
- package/build/esm/radio-bridge/connection.d.ts +52 -0
- package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +84 -96
- package/build/esm/radio-bridge/connection.js.map +1 -0
- package/build/esm/radio-bridge/index.d.ts +4 -0
- package/build/esm/radio-bridge/index.js +5 -0
- package/build/esm/radio-bridge/index.js.map +1 -0
- package/build/esm/{usb-serial-protocol.js → radio-bridge/serial-protocol.js} +1 -1
- package/build/esm/radio-bridge/serial-protocol.js.map +1 -0
- package/build/esm/service-events.d.ts +92 -15
- package/build/esm/service-events.js +5 -34
- package/build/esm/service-events.js.map +1 -1
- package/build/{cjs/hex-flash-data-source.d.ts → esm/universal-hex/flash-data-source.d.ts} +1 -1
- package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -3
- package/build/esm/universal-hex/flash-data-source.js.map +1 -0
- package/build/esm/universal-hex/index.d.ts +4 -0
- package/build/esm/universal-hex/index.js +5 -0
- package/build/esm/universal-hex/index.js.map +1 -0
- package/build/esm/usb/arm-debug.d.ts +137 -0
- package/build/esm/usb/arm-debug.js +409 -0
- package/build/esm/usb/arm-debug.js.map +1 -0
- package/build/{cjs → esm/usb}/board-serial-info.d.ts +2 -1
- package/build/esm/{board-serial-info.js → usb/board-serial-info.js} +10 -7
- package/build/esm/usb/board-serial-info.js.map +1 -0
- package/build/esm/usb/cdc-saturation.d.ts +36 -0
- package/build/esm/usb/cdc-saturation.js +148 -0
- package/build/esm/usb/cdc-saturation.js.map +1 -0
- package/build/esm/usb/cmsis-dap.d.ts +113 -0
- package/build/esm/usb/cmsis-dap.js +342 -0
- package/build/esm/usb/cmsis-dap.js.map +1 -0
- package/build/esm/usb/connection.d.ts +96 -0
- package/build/esm/{usb.js → usb/connection.js} +253 -168
- package/build/esm/usb/connection.js.map +1 -0
- package/build/esm/usb/cortex-m.d.ts +72 -0
- package/build/esm/usb/cortex-m.js +161 -0
- package/build/esm/usb/cortex-m.js.map +1 -0
- package/build/esm/usb/daplink.d.ts +69 -0
- package/build/esm/usb/daplink.js +231 -0
- package/build/esm/usb/daplink.js.map +1 -0
- package/build/esm/usb/device-wrapper.d.ts +34 -0
- package/build/esm/usb/device-wrapper.js +98 -0
- package/build/esm/usb/device-wrapper.js.map +1 -0
- package/build/esm/usb/index.d.ts +5 -0
- package/build/esm/usb/index.js +5 -0
- package/build/esm/usb/index.js.map +1 -0
- package/build/{cjs/usb-partial-flashing-utils.d.ts → esm/usb/partial-flashing-utils.d.ts} +6 -9
- package/build/esm/{usb-partial-flashing-utils.js → usb/partial-flashing-utils.js} +4 -44
- package/build/esm/usb/partial-flashing-utils.js.map +1 -0
- package/build/{cjs/usb-partial-flashing.d.ts → esm/usb/partial-flashing.d.ts} +37 -11
- package/build/esm/{usb-partial-flashing.js → usb/partial-flashing.js} +169 -110
- package/build/esm/usb/partial-flashing.js.map +1 -0
- package/build/esm/usb/promise-queue.js.map +1 -0
- package/build/esm/usb/serial-events.d.ts +16 -0
- package/build/esm/usb/serial-events.js +2 -0
- package/build/esm/usb/serial-events.js.map +1 -0
- package/build/esm/usb/transport.d.ts +42 -0
- package/build/esm/usb/transport.js +151 -0
- package/build/esm/usb/transport.js.map +1 -0
- package/package.json +61 -14
- package/build/cjs/accelerometer-service.js.map +0 -1
- package/build/cjs/accelerometer.d.ts +0 -9
- package/build/cjs/accelerometer.js +0 -16
- package/build/cjs/accelerometer.js.map +0 -1
- package/build/cjs/bluetooth-device-wrapper.js.map +0 -1
- package/build/cjs/bluetooth.d.ts +0 -112
- package/build/cjs/bluetooth.js +0 -457
- package/build/cjs/bluetooth.js.map +0 -1
- package/build/cjs/board-serial-info.js.map +0 -1
- package/build/cjs/button-service.js.map +0 -1
- package/build/cjs/buttons.d.ts +0 -10
- package/build/cjs/buttons.js +0 -22
- package/build/cjs/buttons.js.map +0 -1
- package/build/cjs/constants.d.ts +0 -48
- package/build/cjs/constants.js +0 -73
- package/build/cjs/constants.js.map +0 -1
- package/build/cjs/device-information-service.js +0 -34
- package/build/cjs/device-information-service.js.map +0 -1
- package/build/cjs/dfu-service.js.map +0 -1
- package/build/cjs/flashing/flashing-full.js.map +0 -1
- package/build/cjs/flashing/flashing-makecode.d.ts +0 -6
- package/build/cjs/flashing/flashing-makecode.js.map +0 -1
- package/build/cjs/flashing/flashing-partial.d.ts +0 -9
- package/build/cjs/flashing/flashing-partial.js +0 -98
- package/build/cjs/flashing/flashing-partial.js.map +0 -1
- package/build/cjs/flashing/flashing-v1.js.map +0 -1
- package/build/cjs/flashing/nordic-dfu.js.map +0 -1
- package/build/cjs/flashing/zip.js.map +0 -1
- package/build/cjs/hex-flash-data-source.js.map +0 -1
- package/build/cjs/led-service.js.map +0 -1
- package/build/cjs/led.d.ts +0 -6
- package/build/cjs/led.js.map +0 -1
- package/build/cjs/magnetometer-service.js.map +0 -1
- package/build/cjs/magnetometer.d.ts +0 -9
- package/build/cjs/magnetometer.js +0 -16
- package/build/cjs/magnetometer.js.map +0 -1
- package/build/cjs/partial-flashing-service.js.map +0 -1
- package/build/cjs/promise-queue.js.map +0 -1
- package/build/cjs/serial-events.d.ts +0 -20
- package/build/cjs/serial-events.js +0 -69
- package/build/cjs/serial-events.js.map +0 -1
- package/build/cjs/setupTests.d.ts +0 -6
- package/build/cjs/setupTests.js.map +0 -1
- package/build/cjs/uart-service.js.map +0 -1
- package/build/cjs/uart.d.ts +0 -4
- package/build/cjs/uart.js +0 -16
- package/build/cjs/uart.js.map +0 -1
- package/build/cjs/usb-device-wrapper.d.ts +0 -47
- package/build/cjs/usb-device-wrapper.js +0 -437
- package/build/cjs/usb-device-wrapper.js.map +0 -1
- package/build/cjs/usb-partial-flashing-utils.js.map +0 -1
- package/build/cjs/usb-partial-flashing.js.map +0 -1
- package/build/cjs/usb-radio-bridge.d.ts +0 -24
- package/build/cjs/usb-radio-bridge.js.map +0 -1
- package/build/cjs/usb-serial-protocol.js.map +0 -1
- package/build/cjs/usb.d.ts +0 -66
- package/build/cjs/usb.js.map +0 -1
- package/build/esm/accelerometer-service.js.map +0 -1
- package/build/esm/accelerometer.d.ts +0 -9
- package/build/esm/accelerometer.js +0 -12
- package/build/esm/accelerometer.js.map +0 -1
- package/build/esm/bluetooth-device-wrapper.js.map +0 -1
- package/build/esm/bluetooth-profile.js.map +0 -1
- package/build/esm/bluetooth.d.ts +0 -112
- package/build/esm/bluetooth.js +0 -427
- package/build/esm/bluetooth.js.map +0 -1
- package/build/esm/board-serial-info.js.map +0 -1
- package/build/esm/button-service.js.map +0 -1
- package/build/esm/buttons.d.ts +0 -10
- package/build/esm/buttons.js +0 -18
- package/build/esm/buttons.js.map +0 -1
- package/build/esm/constants.d.ts +0 -48
- package/build/esm/constants.js +0 -70
- package/build/esm/constants.js.map +0 -1
- package/build/esm/device-information-service.js +0 -30
- package/build/esm/device-information-service.js.map +0 -1
- package/build/esm/dfu-service.js.map +0 -1
- package/build/esm/flashing/flashing-full.js.map +0 -1
- package/build/esm/flashing/flashing-makecode.d.ts +0 -6
- package/build/esm/flashing/flashing-makecode.js.map +0 -1
- package/build/esm/flashing/flashing-partial.d.ts +0 -9
- package/build/esm/flashing/flashing-partial.js +0 -95
- package/build/esm/flashing/flashing-partial.js.map +0 -1
- package/build/esm/flashing/flashing-v1.js.map +0 -1
- package/build/esm/flashing/nordic-dfu.js.map +0 -1
- package/build/esm/flashing/zip.js.map +0 -1
- package/build/esm/hex-flash-data-source.js.map +0 -1
- package/build/esm/led-service.js.map +0 -1
- package/build/esm/led.d.ts +0 -6
- package/build/esm/led.js +0 -2
- package/build/esm/led.js.map +0 -1
- package/build/esm/magnetometer-service.js.map +0 -1
- package/build/esm/magnetometer.d.ts +0 -9
- package/build/esm/magnetometer.js +0 -12
- package/build/esm/magnetometer.js.map +0 -1
- package/build/esm/partial-flashing-service.js.map +0 -1
- package/build/esm/promise-queue.js.map +0 -1
- package/build/esm/serial-events.d.ts +0 -20
- package/build/esm/serial-events.js +0 -61
- package/build/esm/serial-events.js.map +0 -1
- package/build/esm/setupTests.d.ts +0 -6
- package/build/esm/setupTests.js.map +0 -1
- package/build/esm/uart-service.js.map +0 -1
- package/build/esm/uart.d.ts +0 -4
- package/build/esm/uart.js +0 -12
- package/build/esm/uart.js.map +0 -1
- package/build/esm/usb-device-wrapper.d.ts +0 -47
- package/build/esm/usb-device-wrapper.js +0 -410
- package/build/esm/usb-device-wrapper.js.map +0 -1
- package/build/esm/usb-partial-flashing-utils.js.map +0 -1
- package/build/esm/usb-partial-flashing.js.map +0 -1
- package/build/esm/usb-radio-bridge.d.ts +0 -24
- package/build/esm/usb-radio-bridge.js.map +0 -1
- package/build/esm/usb-serial-protocol.js.map +0 -1
- package/build/esm/usb.d.ts +0 -66
- package/build/esm/usb.js.map +0 -1
- package/typedoc.json +0 -14
- /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/zip.js +0 -0
- /package/build/cjs/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
- /package/build/cjs/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
- /package/build/cjs/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
- /package/build/cjs/{promise-queue.js → usb/promise-queue.js} +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.d.ts +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/flashing-v1.js +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/zip.d.ts +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/zip.js +0 -0
- /package/build/esm/{dfu-service.d.ts → bluetooth/services/dfu-service.d.ts} +0 -0
- /package/build/esm/{usb-serial-protocol.d.ts → radio-bridge/serial-protocol.d.ts} +0 -0
- /package/build/esm/{promise-queue.d.ts → usb/promise-queue.d.ts} +0 -0
- /package/build/esm/{promise-queue.js → usb/promise-queue.js} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* (c) 2026, Micro:bit Educational Foundation and contributors
|
|
4
|
+
*
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.DefaultDeviceBondState = void 0;
|
|
9
|
+
class DefaultDeviceBondState {
|
|
10
|
+
constructor() {
|
|
11
|
+
Object.defineProperty(this, "bondStates", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: {}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
setBonded(id, isBonded) {
|
|
19
|
+
this.bondStates[id] = isBonded;
|
|
20
|
+
}
|
|
21
|
+
isBonded(id) {
|
|
22
|
+
return this.bondStates[id] ?? false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.DefaultDeviceBondState = DefaultDeviceBondState;
|
|
26
|
+
//# sourceMappingURL=device-bond-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-bond-state.js","sourceRoot":"","sources":["../../../src/bluetooth/device-bond-state.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAOH,MAAa,sBAAsB;IAAnC;QACU;;;;mBAAsC,EAAE;WAAC;IAOnD,CAAC;IANC,SAAS,CAAC,EAAU,EAAE,QAAiB;QACrC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;IACjC,CAAC;IACD,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;IACtC,CAAC;CACF;AARD,wDAQC"}
|
|
@@ -4,15 +4,24 @@
|
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
6
|
import { BleDevice, TimeoutOptions } from "@capacitor-community/bluetooth-le";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
7
|
+
import { BoardVersion, ConnectOptions } from "../device.js";
|
|
8
|
+
import { Logging, LoggingEvent } from "../logging.js";
|
|
9
|
+
import { ServiceConnectionEventMap, TypedServiceEvent, TypedServiceEventDispatcher } from "../service-events.js";
|
|
10
|
+
import { DeviceBondState } from "./device-bond-state.js";
|
|
11
|
+
import { AccelerometerService } from "./services/accelerometer-service.js";
|
|
12
|
+
import { ButtonService } from "./services/button-service.js";
|
|
13
|
+
import { DeviceInformationService } from "./services/device-information-service.js";
|
|
14
|
+
import { EventService } from "./services/event-service.js";
|
|
15
|
+
import { IoPinService } from "./services/io-pin-service.js";
|
|
16
|
+
import { LedService } from "./services/led-service.js";
|
|
17
|
+
import { MagnetometerService } from "./services/magnetometer-service.js";
|
|
18
|
+
import { TemperatureService } from "./services/temperature-service.js";
|
|
19
|
+
import { UARTService } from "./services/uart-service.js";
|
|
20
|
+
/**
|
|
21
|
+
* The @capacitor-community/bluetooth-le plugin throws this message when
|
|
22
|
+
* a characteristic UUID is not found in the device's GATT table.
|
|
23
|
+
*/
|
|
24
|
+
export declare const isCharacteristicNotFoundError: (e: unknown) => boolean;
|
|
16
25
|
export declare const bondingTimeoutInMs = 40000;
|
|
17
26
|
export declare const connectTimeoutInMs = 10000;
|
|
18
27
|
export declare const scanningTimeoutInMs = 10000;
|
|
@@ -25,24 +34,25 @@ export interface Service {
|
|
|
25
34
|
}
|
|
26
35
|
interface ConnectCallbacks {
|
|
27
36
|
onConnecting: () => void;
|
|
28
|
-
|
|
29
|
-
onFail: () => void;
|
|
37
|
+
onDisconnect: () => void;
|
|
30
38
|
onSuccess: () => void;
|
|
31
39
|
}
|
|
32
40
|
export declare class BluetoothDeviceWrapper implements Logging {
|
|
33
|
-
readonly
|
|
41
|
+
readonly bleDevice: BleDevice;
|
|
34
42
|
private logging;
|
|
43
|
+
private deviceBondState;
|
|
35
44
|
private currentEvents;
|
|
36
45
|
private callbacks;
|
|
37
|
-
|
|
38
|
-
private connected;
|
|
39
|
-
private isReconnect;
|
|
46
|
+
connected: boolean;
|
|
40
47
|
private serviceIds;
|
|
41
48
|
accelerometer: AccelerometerService;
|
|
42
49
|
buttons: ButtonService;
|
|
43
50
|
deviceInformation: DeviceInformationService;
|
|
51
|
+
events: EventService;
|
|
52
|
+
ioPin: IoPinService;
|
|
44
53
|
led: LedService;
|
|
45
54
|
magnetometer: MagnetometerService;
|
|
55
|
+
temperature: TemperatureService;
|
|
46
56
|
uart: UARTService;
|
|
47
57
|
/**
|
|
48
58
|
* Only defined after connection.
|
|
@@ -51,13 +61,13 @@ export declare class BluetoothDeviceWrapper implements Logging {
|
|
|
51
61
|
private services;
|
|
52
62
|
private waitingForDisconnectEventCallbacks;
|
|
53
63
|
private internalNotificationListeners;
|
|
54
|
-
constructor(
|
|
55
|
-
|
|
64
|
+
constructor(bleDevice: BleDevice, logging: Logging | undefined, deviceBondState: DeviceBondState | undefined, dispatchTypedEvent: TypedServiceEventDispatcher, currentEvents: () => Array<keyof ServiceConnectionEventMap>, callbacks: ConnectCallbacks);
|
|
65
|
+
setBonded(isBonded: boolean): void;
|
|
66
|
+
connect(options?: ConnectOptions): Promise<void>;
|
|
56
67
|
private connectInternal;
|
|
57
68
|
disconnect(): Promise<void>;
|
|
58
69
|
private disconnectInternal;
|
|
59
|
-
|
|
60
|
-
handleDisconnectEvent: () => Promise<void>;
|
|
70
|
+
handleDisconnectEvent: () => void;
|
|
61
71
|
getBoardVersion(): Promise<BoardVersion>;
|
|
62
72
|
startNotifications(type: TypedServiceEvent): Promise<void>;
|
|
63
73
|
stopNotifications(type: TypedServiceEvent): Promise<void>;
|
|
@@ -93,5 +103,11 @@ export declare class BluetoothDeviceWrapper implements Logging {
|
|
|
93
103
|
*/
|
|
94
104
|
private connectHandlingBond;
|
|
95
105
|
private bondConnectDeviceInternal;
|
|
106
|
+
/**
|
|
107
|
+
* On iOS, accessing an encrypted characteristic triggers the pairing dialog.
|
|
108
|
+
* Try each candidate characteristic in turn until one succeeds. The error is
|
|
109
|
+
* fast (local GATT cache lookup) so there's no meaningful delay from retries.
|
|
110
|
+
*/
|
|
111
|
+
private triggerIosPairing;
|
|
96
112
|
}
|
|
97
113
|
export {};
|
|
@@ -5,52 +5,42 @@
|
|
|
5
5
|
* SPDX-License-Identifier: MIT
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.BluetoothDeviceWrapper = exports.isAndroid = exports.scanningTimeoutInMs = exports.connectTimeoutInMs = exports.bondingTimeoutInMs = void 0;
|
|
8
|
+
exports.BluetoothDeviceWrapper = exports.isAndroid = exports.scanningTimeoutInMs = exports.connectTimeoutInMs = exports.bondingTimeoutInMs = exports.isCharacteristicNotFoundError = void 0;
|
|
9
9
|
const bluetooth_le_1 = require("@capacitor-community/bluetooth-le");
|
|
10
10
|
const core_1 = require("@capacitor/core");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
11
|
+
const async_util_js_1 = require("../async-util.js");
|
|
12
|
+
const device_js_1 = require("../device.js");
|
|
13
|
+
const logging_js_1 = require("../logging.js");
|
|
14
|
+
const device_bond_state_js_1 = require("./device-bond-state.js");
|
|
15
|
+
const profile_js_1 = require("./profile.js");
|
|
16
|
+
const accelerometer_service_js_1 = require("./services/accelerometer-service.js");
|
|
17
|
+
const button_service_js_1 = require("./services/button-service.js");
|
|
18
|
+
const device_information_service_js_1 = require("./services/device-information-service.js");
|
|
19
|
+
const event_service_js_1 = require("./services/event-service.js");
|
|
20
|
+
const io_pin_service_js_1 = require("./services/io-pin-service.js");
|
|
21
|
+
const led_service_js_1 = require("./services/led-service.js");
|
|
22
|
+
const magnetometer_service_js_1 = require("./services/magnetometer-service.js");
|
|
23
|
+
const partial_flashing_service_js_1 = require("./services/partial-flashing-service.js");
|
|
24
|
+
const temperature_service_js_1 = require("./services/temperature-service.js");
|
|
25
|
+
const uart_service_js_1 = require("./services/uart-service.js");
|
|
26
|
+
/**
|
|
27
|
+
* The @capacitor-community/bluetooth-le plugin throws this message when
|
|
28
|
+
* a characteristic UUID is not found in the device's GATT table.
|
|
29
|
+
*/
|
|
30
|
+
const isCharacteristicNotFoundError = (e) => e instanceof Error && e.message === "Characteristic not found.";
|
|
31
|
+
exports.isCharacteristicNotFoundError = isCharacteristicNotFoundError;
|
|
21
32
|
exports.bondingTimeoutInMs = 40_000;
|
|
22
33
|
exports.connectTimeoutInMs = 10_000;
|
|
23
34
|
exports.scanningTimeoutInMs = 10_000;
|
|
24
35
|
const isAndroid = () => core_1.Capacitor.getPlatform() === "android";
|
|
25
36
|
exports.isAndroid = isAndroid;
|
|
26
|
-
// TODO: We've removed the support for these behaviours as we need to
|
|
27
|
-
// re-evaluate how best to support then via capacitor-ble (or reinstate
|
|
28
|
-
// the direct Web Bluetooth connection code.
|
|
29
|
-
//
|
|
30
|
-
// On ChromeOS and Mac there's no timeout and no clear way to abort
|
|
31
|
-
// device.gatt.connect(), so we accept that sometimes we'll still
|
|
32
|
-
// be trying to connect when we'd rather not be. If it succeeds when
|
|
33
|
-
// we no longer intend to be connected then we disconnect at that
|
|
34
|
-
// point. If we try to connect when a previous connection attempt is
|
|
35
|
-
// still around then we wait for it for our timeout period.
|
|
36
|
-
//
|
|
37
|
-
// On Windows it times out after 7s.
|
|
38
|
-
// https://bugs.chromium.org/p/chromium/issues/detail?id=684073
|
|
39
|
-
//
|
|
40
|
-
// Additionally we've remove the delay before trying to connect again
|
|
41
|
-
// on Windows.
|
|
42
|
-
//
|
|
43
|
-
// We also used to have a timeout around requestDevice that reloaded the page.
|
|
44
|
-
//
|
|
45
|
-
// > In some situations the Chrome device prompt simply doesn't appear so we time
|
|
46
|
-
// > this out after 30 seconds and reload the page
|
|
47
37
|
class BluetoothDeviceWrapper {
|
|
48
|
-
constructor(
|
|
49
|
-
Object.defineProperty(this, "
|
|
38
|
+
constructor(bleDevice, logging = new logging_js_1.ConsoleLogging(), deviceBondState = new device_bond_state_js_1.DefaultDeviceBondState(), dispatchTypedEvent, currentEvents, callbacks) {
|
|
39
|
+
Object.defineProperty(this, "bleDevice", {
|
|
50
40
|
enumerable: true,
|
|
51
41
|
configurable: true,
|
|
52
42
|
writable: true,
|
|
53
|
-
value:
|
|
43
|
+
value: bleDevice
|
|
54
44
|
});
|
|
55
45
|
Object.defineProperty(this, "logging", {
|
|
56
46
|
enumerable: true,
|
|
@@ -58,25 +48,23 @@ class BluetoothDeviceWrapper {
|
|
|
58
48
|
writable: true,
|
|
59
49
|
value: logging
|
|
60
50
|
});
|
|
61
|
-
Object.defineProperty(this, "
|
|
51
|
+
Object.defineProperty(this, "deviceBondState", {
|
|
62
52
|
enumerable: true,
|
|
63
53
|
configurable: true,
|
|
64
54
|
writable: true,
|
|
65
|
-
value:
|
|
55
|
+
value: deviceBondState
|
|
66
56
|
});
|
|
67
|
-
Object.defineProperty(this, "
|
|
57
|
+
Object.defineProperty(this, "currentEvents", {
|
|
68
58
|
enumerable: true,
|
|
69
59
|
configurable: true,
|
|
70
60
|
writable: true,
|
|
71
|
-
value:
|
|
61
|
+
value: currentEvents
|
|
72
62
|
});
|
|
73
|
-
|
|
74
|
-
// or reconnection itself.
|
|
75
|
-
Object.defineProperty(this, "duringExplicitConnectDisconnect", {
|
|
63
|
+
Object.defineProperty(this, "callbacks", {
|
|
76
64
|
enumerable: true,
|
|
77
65
|
configurable: true,
|
|
78
66
|
writable: true,
|
|
79
|
-
value:
|
|
67
|
+
value: callbacks
|
|
80
68
|
});
|
|
81
69
|
Object.defineProperty(this, "connected", {
|
|
82
70
|
enumerable: true,
|
|
@@ -84,12 +72,6 @@ class BluetoothDeviceWrapper {
|
|
|
84
72
|
writable: true,
|
|
85
73
|
value: false
|
|
86
74
|
});
|
|
87
|
-
Object.defineProperty(this, "isReconnect", {
|
|
88
|
-
enumerable: true,
|
|
89
|
-
configurable: true,
|
|
90
|
-
writable: true,
|
|
91
|
-
value: false
|
|
92
|
-
});
|
|
93
75
|
// Only updated after the full connection flow completes not during bond handling.
|
|
94
76
|
Object.defineProperty(this, "serviceIds", {
|
|
95
77
|
enumerable: true,
|
|
@@ -115,6 +97,18 @@ class BluetoothDeviceWrapper {
|
|
|
115
97
|
writable: true,
|
|
116
98
|
value: void 0
|
|
117
99
|
});
|
|
100
|
+
Object.defineProperty(this, "events", {
|
|
101
|
+
enumerable: true,
|
|
102
|
+
configurable: true,
|
|
103
|
+
writable: true,
|
|
104
|
+
value: void 0
|
|
105
|
+
});
|
|
106
|
+
Object.defineProperty(this, "ioPin", {
|
|
107
|
+
enumerable: true,
|
|
108
|
+
configurable: true,
|
|
109
|
+
writable: true,
|
|
110
|
+
value: void 0
|
|
111
|
+
});
|
|
118
112
|
Object.defineProperty(this, "led", {
|
|
119
113
|
enumerable: true,
|
|
120
114
|
configurable: true,
|
|
@@ -127,6 +121,12 @@ class BluetoothDeviceWrapper {
|
|
|
127
121
|
writable: true,
|
|
128
122
|
value: void 0
|
|
129
123
|
});
|
|
124
|
+
Object.defineProperty(this, "temperature", {
|
|
125
|
+
enumerable: true,
|
|
126
|
+
configurable: true,
|
|
127
|
+
writable: true,
|
|
128
|
+
value: void 0
|
|
129
|
+
});
|
|
130
130
|
Object.defineProperty(this, "uart", {
|
|
131
131
|
enumerable: true,
|
|
132
132
|
configurable: true,
|
|
@@ -164,65 +164,64 @@ class BluetoothDeviceWrapper {
|
|
|
164
164
|
enumerable: true,
|
|
165
165
|
configurable: true,
|
|
166
166
|
writable: true,
|
|
167
|
-
value:
|
|
167
|
+
value: () => {
|
|
168
168
|
this.waitingForDisconnectEventCallbacks.forEach((cb) => cb());
|
|
169
169
|
this.waitingForDisconnectEventCallbacks.length = 0;
|
|
170
170
|
this.connected = false;
|
|
171
|
-
|
|
172
|
-
if (!this.duringExplicitConnectDisconnect) {
|
|
173
|
-
this.logging.log("Bluetooth disconnected... automatically trying reconnect");
|
|
174
|
-
await this.reconnect();
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
this.logging.log("Bluetooth disconnect ignored during explicit disconnect");
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
catch (e) {
|
|
181
|
-
this.logging.error("Bluetooth connect triggered by disconnect listener failed", e);
|
|
182
|
-
}
|
|
171
|
+
this.callbacks.onDisconnect();
|
|
183
172
|
}
|
|
184
173
|
});
|
|
185
|
-
this.accelerometer = new accelerometer_service_js_1.AccelerometerService(
|
|
186
|
-
this.buttons = new button_service_js_1.ButtonService(
|
|
187
|
-
this.deviceInformation = new device_information_service_js_1.DeviceInformationService(
|
|
188
|
-
this.
|
|
189
|
-
this.
|
|
190
|
-
this.
|
|
174
|
+
this.accelerometer = new accelerometer_service_js_1.AccelerometerService(bleDevice.deviceId, dispatchTypedEvent);
|
|
175
|
+
this.buttons = new button_service_js_1.ButtonService(bleDevice.deviceId, dispatchTypedEvent);
|
|
176
|
+
this.deviceInformation = new device_information_service_js_1.DeviceInformationService(bleDevice.deviceId);
|
|
177
|
+
this.events = new event_service_js_1.EventService(bleDevice.deviceId, dispatchTypedEvent, () => this.boardVersion);
|
|
178
|
+
this.ioPin = new io_pin_service_js_1.IoPinService(bleDevice.deviceId, dispatchTypedEvent);
|
|
179
|
+
this.led = new led_service_js_1.LedService(bleDevice.deviceId);
|
|
180
|
+
this.magnetometer = new magnetometer_service_js_1.MagnetometerService(bleDevice.deviceId, dispatchTypedEvent);
|
|
181
|
+
this.temperature = new temperature_service_js_1.TemperatureService(bleDevice.deviceId, dispatchTypedEvent);
|
|
182
|
+
this.uart = new uart_service_js_1.UARTService(bleDevice.deviceId, dispatchTypedEvent);
|
|
191
183
|
this.services = [
|
|
192
184
|
this.accelerometer,
|
|
193
185
|
this.buttons,
|
|
186
|
+
this.events,
|
|
187
|
+
this.ioPin,
|
|
194
188
|
this.led,
|
|
195
189
|
this.magnetometer,
|
|
190
|
+
this.temperature,
|
|
196
191
|
this.uart,
|
|
197
192
|
];
|
|
198
193
|
}
|
|
199
|
-
|
|
194
|
+
setBonded(isBonded) {
|
|
195
|
+
this.deviceBondState.setBonded(this.bleDevice.deviceId, isBonded);
|
|
196
|
+
}
|
|
197
|
+
async connect(options) {
|
|
198
|
+
const progress = options?.progress ?? (() => { });
|
|
200
199
|
this.logging.event({
|
|
201
|
-
type:
|
|
200
|
+
type: "Connect",
|
|
202
201
|
message: "Bluetooth connect start",
|
|
203
202
|
});
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
this.callbacks.onConnecting();
|
|
209
|
-
}
|
|
210
|
-
this.duringExplicitConnectDisconnect++;
|
|
203
|
+
this.callbacks.onConnecting();
|
|
204
|
+
const bondMode = options?.bondMode ?? "pairing";
|
|
211
205
|
try {
|
|
212
|
-
if (core_1.Capacitor.isNativePlatform()) {
|
|
213
|
-
|
|
206
|
+
if (core_1.Capacitor.isNativePlatform() && bondMode !== "none") {
|
|
207
|
+
const isBonded = this.deviceBondState.isBonded(this.bleDevice.deviceId);
|
|
208
|
+
await this.connectHandlingBond(progress, isBonded ?? false, bondMode);
|
|
209
|
+
this.setBonded(true);
|
|
210
|
+
// We need this on Android for reconnecting after DFU.
|
|
211
|
+
await bluetooth_le_1.BleClient.discoverServices(this.bleDevice.deviceId);
|
|
214
212
|
}
|
|
215
213
|
else {
|
|
214
|
+
progress(device_js_1.ProgressStage.Connecting);
|
|
216
215
|
await this.connectInternal();
|
|
217
216
|
}
|
|
218
217
|
await this.getBoardVersion();
|
|
219
218
|
const events = this.currentEvents();
|
|
220
|
-
const services = await bluetooth_le_1.BleClient.getServices(this.
|
|
219
|
+
const services = await bluetooth_le_1.BleClient.getServices(this.bleDevice.deviceId);
|
|
221
220
|
this.serviceIds = new Set(services.map((s) => s.uuid));
|
|
222
221
|
this.logging.log(`Starting notifications for current events ${events}`);
|
|
223
222
|
events.forEach((e) => this.startNotifications(e));
|
|
224
223
|
this.logging.event({
|
|
225
|
-
type:
|
|
224
|
+
type: "Connect",
|
|
226
225
|
message: "Bluetooth connect success",
|
|
227
226
|
});
|
|
228
227
|
this.callbacks.onSuccess();
|
|
@@ -230,34 +229,35 @@ class BluetoothDeviceWrapper {
|
|
|
230
229
|
catch (e) {
|
|
231
230
|
this.logging.error("Bluetooth connect error", e);
|
|
232
231
|
this.logging.event({
|
|
233
|
-
type:
|
|
232
|
+
type: "Connect",
|
|
234
233
|
message: "Bluetooth connect failed",
|
|
235
234
|
});
|
|
236
235
|
await this.disconnectInternal(false);
|
|
237
|
-
this.callbacks.
|
|
236
|
+
this.callbacks.onDisconnect();
|
|
238
237
|
if (e instanceof device_js_1.DeviceError) {
|
|
239
238
|
throw e;
|
|
240
239
|
}
|
|
241
|
-
|
|
240
|
+
this.setBonded(false);
|
|
241
|
+
if (
|
|
242
|
+
// Error thrown in iOS only.
|
|
243
|
+
e instanceof Error &&
|
|
244
|
+
e.message === "Peer removed pairing information") {
|
|
242
245
|
throw new device_js_1.DeviceError({
|
|
243
|
-
code: "
|
|
244
|
-
message: e
|
|
246
|
+
code: "pairing-information-lost",
|
|
247
|
+
message: e.message,
|
|
248
|
+
cause: e,
|
|
245
249
|
});
|
|
246
250
|
}
|
|
247
251
|
throw new device_js_1.DeviceError({
|
|
248
|
-
code: "
|
|
252
|
+
code: "connection-error",
|
|
249
253
|
message: e instanceof Error ? e.message : String(e),
|
|
254
|
+
cause: e,
|
|
250
255
|
});
|
|
251
256
|
}
|
|
252
|
-
finally {
|
|
253
|
-
this.duringExplicitConnectDisconnect--;
|
|
254
|
-
// Reset isReconnect for next time
|
|
255
|
-
this.isReconnect = false;
|
|
256
|
-
}
|
|
257
257
|
}
|
|
258
258
|
async connectInternal() {
|
|
259
259
|
this.waitingForDisconnectEventCallbacks.length = 0;
|
|
260
|
-
await bluetooth_le_1.BleClient.connect(this.
|
|
260
|
+
await bluetooth_le_1.BleClient.connect(this.bleDevice.deviceId, this.handleDisconnectEvent, {
|
|
261
261
|
timeout: exports.connectTimeoutInMs,
|
|
262
262
|
});
|
|
263
263
|
this.connected = true;
|
|
@@ -267,24 +267,15 @@ class BluetoothDeviceWrapper {
|
|
|
267
267
|
}
|
|
268
268
|
async disconnectInternal(userTriggered) {
|
|
269
269
|
this.logging.log(`Bluetooth disconnect ${userTriggered ? "(user triggered)" : "(programmatic)"}`);
|
|
270
|
-
this.duringExplicitConnectDisconnect++;
|
|
271
270
|
try {
|
|
272
271
|
if (this.connected) {
|
|
273
|
-
await bluetooth_le_1.BleClient.disconnect(this.
|
|
272
|
+
await bluetooth_le_1.BleClient.disconnect(this.bleDevice.deviceId);
|
|
274
273
|
}
|
|
275
274
|
}
|
|
276
275
|
catch (e) {
|
|
277
276
|
this.logging.error("Bluetooth GATT disconnect error (ignored)", e);
|
|
278
277
|
// We might have already lost the connection.
|
|
279
278
|
}
|
|
280
|
-
finally {
|
|
281
|
-
this.duringExplicitConnectDisconnect--;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
async reconnect() {
|
|
285
|
-
this.logging.log("Bluetooth reconnect");
|
|
286
|
-
this.isReconnect = true;
|
|
287
|
-
await this.connect();
|
|
288
279
|
}
|
|
289
280
|
async getBoardVersion() {
|
|
290
281
|
// We read this when we connect and it won't change.
|
|
@@ -305,7 +296,7 @@ class BluetoothDeviceWrapper {
|
|
|
305
296
|
}
|
|
306
297
|
async startInternalNotifications(serviceId, characteristicId, options) {
|
|
307
298
|
const key = this.getNotificationKey(serviceId, characteristicId);
|
|
308
|
-
await this.raceDisconnectAndTimeout(bluetooth_le_1.BleClient.startNotifications(this.
|
|
299
|
+
await this.raceDisconnectAndTimeout(bluetooth_le_1.BleClient.startNotifications(this.bleDevice.deviceId, serviceId, characteristicId, (value) => {
|
|
309
300
|
const bytes = new Uint8Array(value.buffer);
|
|
310
301
|
// Notify all registered callbacks.
|
|
311
302
|
this.internalNotificationListeners
|
|
@@ -325,7 +316,7 @@ class BluetoothDeviceWrapper {
|
|
|
325
316
|
this.internalNotificationListeners.get(key)?.delete(callback);
|
|
326
317
|
}
|
|
327
318
|
async stopInternalNotifications(serviceId, characteristicId) {
|
|
328
|
-
await bluetooth_le_1.BleClient.stopNotifications(this.
|
|
319
|
+
await bluetooth_le_1.BleClient.stopNotifications(this.bleDevice.deviceId, serviceId, characteristicId);
|
|
329
320
|
const key = this.getNotificationKey(serviceId, characteristicId);
|
|
330
321
|
this.internalNotificationListeners.delete(key);
|
|
331
322
|
}
|
|
@@ -346,7 +337,7 @@ class BluetoothDeviceWrapper {
|
|
|
346
337
|
this.subscribe(serviceId, characteristicId, notificationListener);
|
|
347
338
|
});
|
|
348
339
|
try {
|
|
349
|
-
await bluetooth_le_1.BleClient.writeWithoutResponse(this.
|
|
340
|
+
await bluetooth_le_1.BleClient.writeWithoutResponse(this.bleDevice.deviceId, serviceId, characteristicId, value);
|
|
350
341
|
return await this.raceDisconnectAndTimeout(notificationPromise, {
|
|
351
342
|
timeout: 3_000,
|
|
352
343
|
actionName: "flash notification wait",
|
|
@@ -416,9 +407,10 @@ class BluetoothDeviceWrapper {
|
|
|
416
407
|
* Bonds with device and handles the post-bond device state only returning
|
|
417
408
|
* when we can reattempt a connection with the device.
|
|
418
409
|
*/
|
|
419
|
-
async connectHandlingBond() {
|
|
410
|
+
async connectHandlingBond(progress, isAlreadyIosBonded, bondMode) {
|
|
411
|
+
progress(device_js_1.ProgressStage.CheckingBond);
|
|
420
412
|
const startTime = Date.now();
|
|
421
|
-
const maybeJustBonded = await this.bondConnectDeviceInternal();
|
|
413
|
+
const maybeJustBonded = await this.bondConnectDeviceInternal(isAlreadyIosBonded);
|
|
422
414
|
if (maybeJustBonded) {
|
|
423
415
|
// If we did just bond then the device disconnects after 2_000 and then
|
|
424
416
|
// resets after a further 13_000 In future we'd like a firmware change
|
|
@@ -445,18 +437,31 @@ class BluetoothDeviceWrapper {
|
|
|
445
437
|
}
|
|
446
438
|
}
|
|
447
439
|
await this.connectInternal();
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
440
|
+
try {
|
|
441
|
+
const targetMode = bondMode === "pairing"
|
|
442
|
+
? partial_flashing_service_js_1.MicroBitMode.Pairing
|
|
443
|
+
: partial_flashing_service_js_1.MicroBitMode.Application;
|
|
444
|
+
progress(device_js_1.ProgressStage.ResettingDevice);
|
|
445
|
+
this.log(`Resetting to ${bondMode} mode`);
|
|
446
|
+
const pf = new partial_flashing_service_js_1.PartialFlashingService(this);
|
|
447
|
+
await pf.resetToMode(targetMode);
|
|
448
|
+
await this.waitForDisconnect(10_000);
|
|
449
|
+
progress(device_js_1.ProgressStage.Connecting);
|
|
450
|
+
await this.connectInternal();
|
|
451
|
+
}
|
|
452
|
+
catch (e) {
|
|
453
|
+
if ((0, exports.isCharacteristicNotFoundError)(e)) {
|
|
454
|
+
this.log("Partial flashing characteristic not found, skipping reset.");
|
|
455
|
+
}
|
|
456
|
+
else {
|
|
457
|
+
throw e;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
456
460
|
}
|
|
461
|
+
this.log(`Connection ready; took ${Date.now() - startTime}`);
|
|
457
462
|
}
|
|
458
|
-
async bondConnectDeviceInternal() {
|
|
459
|
-
const { deviceId } = this.
|
|
463
|
+
async bondConnectDeviceInternal(isAlreadyIosBonded) {
|
|
464
|
+
const { deviceId } = this.bleDevice;
|
|
460
465
|
if ((0, exports.isAndroid)()) {
|
|
461
466
|
let justBonded = false;
|
|
462
467
|
// This gets us a nicer pairing dialog than just going straight for the characteristic.
|
|
@@ -474,13 +479,55 @@ class BluetoothDeviceWrapper {
|
|
|
474
479
|
// need to call startNotifications again. We need to be connected to
|
|
475
480
|
// startNotifications.
|
|
476
481
|
await this.connectInternal();
|
|
482
|
+
if (!isAlreadyIosBonded) {
|
|
483
|
+
await this.triggerIosPairing({ timeout: exports.bondingTimeoutInMs });
|
|
484
|
+
}
|
|
485
|
+
return !isAlreadyIosBonded;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
/**
|
|
489
|
+
* On iOS, accessing an encrypted characteristic triggers the pairing dialog.
|
|
490
|
+
* Try each candidate characteristic in turn until one succeeds. The error is
|
|
491
|
+
* fast (local GATT cache lookup) so there's no meaningful delay from retries.
|
|
492
|
+
*/
|
|
493
|
+
async triggerIosPairing(options) {
|
|
494
|
+
const { deviceId } = this.bleDevice;
|
|
495
|
+
// 1. Partial flashing notifications (most common case)
|
|
496
|
+
try {
|
|
477
497
|
const pf = new partial_flashing_service_js_1.PartialFlashingService(this);
|
|
478
|
-
await pf.startNotifications(
|
|
479
|
-
// We just did it now to trigger pairing at a well defined point.
|
|
498
|
+
await pf.startNotifications(options);
|
|
480
499
|
await pf.stopNotifications();
|
|
481
|
-
return
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
catch (e) {
|
|
503
|
+
if (!(0, exports.isCharacteristicNotFoundError)(e)) {
|
|
504
|
+
throw e;
|
|
505
|
+
}
|
|
506
|
+
this.log("PF characteristic not found for pairing trigger, trying Secure DFU");
|
|
507
|
+
}
|
|
508
|
+
// 2. Nordic Secure DFU buttonless notifications (V2 without PF)
|
|
509
|
+
try {
|
|
510
|
+
await bluetooth_le_1.BleClient.startNotifications(deviceId, profile_js_1.profile.nordicSecureDfu.id, profile_js_1.profile.nordicSecureDfu.characteristics.buttonless.id, () => { }, options);
|
|
511
|
+
await bluetooth_le_1.BleClient.stopNotifications(deviceId, profile_js_1.profile.nordicSecureDfu.id, profile_js_1.profile.nordicSecureDfu.characteristics.buttonless.id);
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
catch (e) {
|
|
515
|
+
if (!(0, exports.isCharacteristicNotFoundError)(e)) {
|
|
516
|
+
throw e;
|
|
517
|
+
}
|
|
518
|
+
this.log("Secure DFU characteristic not found for pairing trigger, trying DFU control");
|
|
519
|
+
}
|
|
520
|
+
// 3. micro:bit DFU control read (V1 without PF)
|
|
521
|
+
try {
|
|
522
|
+
await bluetooth_le_1.BleClient.read(deviceId, profile_js_1.profile.dfuControl.id, profile_js_1.profile.dfuControl.characteristics.control.id, options);
|
|
523
|
+
}
|
|
524
|
+
catch (e) {
|
|
525
|
+
if (!(0, exports.isCharacteristicNotFoundError)(e)) {
|
|
526
|
+
throw e;
|
|
527
|
+
}
|
|
528
|
+
this.log("No suitable characteristic found to trigger pairing");
|
|
482
529
|
}
|
|
483
530
|
}
|
|
484
531
|
}
|
|
485
532
|
exports.BluetoothDeviceWrapper = BluetoothDeviceWrapper;
|
|
486
|
-
//# sourceMappingURL=
|
|
533
|
+
//# sourceMappingURL=device-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-wrapper.js","sourceRoot":"","sources":["../../../src/bluetooth/device-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import MemoryMap from "nrf-intel-hex";
|
|
2
|
-
import { BoardVersion, ProgressCallback } from "
|
|
3
|
-
import { BluetoothDeviceWrapper } from "../
|
|
2
|
+
import { BoardVersion, ProgressCallback } from "../../device.js";
|
|
3
|
+
import { BluetoothDeviceWrapper } from "../device-wrapper.js";
|
|
4
4
|
/**
|
|
5
5
|
* Perform a full flash via Nordic's DFU service.
|
|
6
6
|
*
|