@microbit/microbit-connection 0.9.0-apps.alpha.2 → 0.9.0-apps.alpha.20
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/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/async-util.test.d.ts +1 -0
- package/build/cjs/async-util.test.js +20 -0
- package/build/cjs/async-util.test.js.map +1 -0
- package/build/cjs/availability.d.ts +14 -0
- package/build/cjs/availability.js +44 -0
- package/build/cjs/availability.js.map +1 -0
- 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/connection.test.d.ts +1 -0
- package/build/cjs/bluetooth/connection.test.js +88 -0
- package/build/cjs/bluetooth/connection.test.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 -101
- 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-makecode.test.d.ts +1 -0
- package/build/cjs/bluetooth/flashing/flashing-makecode.test.js +253 -0
- package/build/cjs/bluetooth/flashing/flashing-makecode.test.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/flashing/zip.test.d.ts +1 -0
- package/build/cjs/bluetooth/flashing/zip.test.js +96 -0
- package/build/cjs/bluetooth/flashing/zip.test.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/{esm → cjs/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/event-service.test.d.ts +1 -0
- package/build/cjs/bluetooth/services/event-service.test.js +252 -0
- package/build/cjs/bluetooth/services/event-service.test.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/cjs/{led-service.d.ts → 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 +214 -97
- package/build/cjs/device.js +57 -114
- 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/events.test.d.ts +1 -0
- package/build/cjs/events.test.js +115 -0
- package/build/cjs/events.test.js.map +1 -0
- 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} +108 -97
- 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/cjs/setupTests.js +8 -0
- package/build/cjs/setupTests.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/cjs/usb/arm-debug.test.d.ts +1 -0
- package/build/cjs/usb/arm-debug.test.js +333 -0
- package/build/cjs/usb/arm-debug.test.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/board-serial-info.test.d.ts +1 -0
- package/build/cjs/usb/board-serial-info.test.js +46 -0
- package/build/cjs/usb/board-serial-info.test.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/cmsis-dap.test.d.ts +1 -0
- package/build/cjs/usb/cmsis-dap.test.js +350 -0
- package/build/cjs/usb/cmsis-dap.test.js.map +1 -0
- package/build/cjs/usb/connection.d.ts +96 -0
- package/build/cjs/{usb.js → usb/connection.js} +274 -193
- package/build/cjs/usb/connection.js.map +1 -0
- package/build/cjs/usb/connection.test.d.ts +1 -0
- package/build/cjs/usb/connection.test.js +266 -0
- package/build/cjs/usb/connection.test.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/cortex-m.test.d.ts +1 -0
- package/build/cjs/usb/cortex-m.test.js +217 -0
- package/build/cjs/usb/cortex-m.test.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/daplink.test.d.ts +1 -0
- package/build/cjs/usb/daplink.test.js +290 -0
- package/build/cjs/usb/daplink.test.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/cjs/{usb-partial-flashing-utils.d.ts → 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/cjs/{usb-partial-flashing.d.ts → 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/promise-queue.test.d.ts +1 -0
- package/build/cjs/usb/promise-queue.test.js +68 -0
- package/build/cjs/usb/promise-queue.test.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/async-util.test.d.ts +1 -0
- package/build/esm/async-util.test.js +18 -0
- package/build/esm/async-util.test.js.map +1 -0
- package/build/esm/availability.d.ts +14 -0
- package/build/esm/availability.js +40 -0
- package/build/esm/availability.js.map +1 -0
- 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/connection.test.d.ts +1 -0
- package/build/esm/bluetooth/connection.test.js +86 -0
- package/build/esm/bluetooth/connection.test.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 -100
- 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-makecode.test.d.ts +1 -0
- package/build/esm/bluetooth/flashing/flashing-makecode.test.js +248 -0
- package/build/esm/bluetooth/flashing/flashing-makecode.test.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/flashing/zip.test.d.ts +1 -0
- package/build/esm/bluetooth/flashing/zip.test.js +94 -0
- package/build/esm/bluetooth/flashing/zip.test.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/{cjs → esm/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/event-service.test.d.ts +1 -0
- package/build/esm/bluetooth/services/event-service.test.js +250 -0
- package/build/esm/bluetooth/services/event-service.test.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/esm/{led-service.d.ts → 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 +214 -97
- package/build/esm/device.js +55 -108
- 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/events.test.d.ts +1 -0
- package/build/esm/events.test.js +113 -0
- package/build/esm/events.test.js.map +1 -0
- 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} +108 -97
- 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/esm/setupTests.js +7 -0
- package/build/esm/setupTests.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/esm/usb/arm-debug.test.d.ts +1 -0
- package/build/esm/usb/arm-debug.test.js +331 -0
- package/build/esm/usb/arm-debug.test.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/board-serial-info.test.d.ts +1 -0
- package/build/esm/usb/board-serial-info.test.js +44 -0
- package/build/esm/usb/board-serial-info.test.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/cmsis-dap.test.d.ts +1 -0
- package/build/esm/usb/cmsis-dap.test.js +348 -0
- package/build/esm/usb/cmsis-dap.test.js.map +1 -0
- package/build/esm/usb/connection.d.ts +96 -0
- package/build/esm/{usb.js → usb/connection.js} +270 -188
- package/build/esm/usb/connection.js.map +1 -0
- package/build/esm/usb/connection.test.d.ts +1 -0
- package/build/esm/usb/connection.test.js +264 -0
- package/build/esm/usb/connection.test.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/cortex-m.test.d.ts +1 -0
- package/build/esm/usb/cortex-m.test.js +215 -0
- package/build/esm/usb/cortex-m.test.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/daplink.test.d.ts +1 -0
- package/build/esm/usb/daplink.test.js +288 -0
- package/build/esm/usb/daplink.test.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/esm/{usb-partial-flashing-utils.d.ts → 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/esm/{usb-partial-flashing.d.ts → 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/promise-queue.test.d.ts +1 -0
- package/build/esm/usb/promise-queue.test.js +66 -0
- package/build/esm/usb/promise-queue.test.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 +55 -15
- package/LICENSE.md +0 -21
- package/README.md +0 -125
- 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 -458
- 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/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 -428
- 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/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
|
@@ -5,19 +5,30 @@
|
|
|
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 accelerometer_service_js_1 = require("./accelerometer-service.js");
|
|
12
|
-
const async_util_js_1 = require("
|
|
13
|
-
const button_service_js_1 = require("./button-service.js");
|
|
14
|
-
const device_information_service_js_1 = require("./device-information-service.js");
|
|
15
|
-
const device_js_1 = require("
|
|
16
|
-
const led_service_js_1 = require("./led-service.js");
|
|
17
|
-
const logging_js_1 = require("
|
|
18
|
-
const magnetometer_service_js_1 = require("./magnetometer-service.js");
|
|
19
|
-
const partial_flashing_service_js_1 = require("./partial-flashing-service.js");
|
|
20
|
-
const
|
|
11
|
+
const accelerometer_service_js_1 = require("./services/accelerometer-service.js");
|
|
12
|
+
const async_util_js_1 = require("../async-util.js");
|
|
13
|
+
const button_service_js_1 = require("./services/button-service.js");
|
|
14
|
+
const device_information_service_js_1 = require("./services/device-information-service.js");
|
|
15
|
+
const device_js_1 = require("../device.js");
|
|
16
|
+
const led_service_js_1 = require("./services/led-service.js");
|
|
17
|
+
const logging_js_1 = require("../logging.js");
|
|
18
|
+
const magnetometer_service_js_1 = require("./services/magnetometer-service.js");
|
|
19
|
+
const partial_flashing_service_js_1 = require("./services/partial-flashing-service.js");
|
|
20
|
+
const event_service_js_1 = require("./services/event-service.js");
|
|
21
|
+
const temperature_service_js_1 = require("./services/temperature-service.js");
|
|
22
|
+
const io_pin_service_js_1 = require("./services/io-pin-service.js");
|
|
23
|
+
const uart_service_js_1 = require("./services/uart-service.js");
|
|
24
|
+
const device_bond_state_js_1 = require("./device-bond-state.js");
|
|
25
|
+
const profile_js_1 = require("./profile.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;
|
|
@@ -45,12 +56,12 @@ exports.isAndroid = isAndroid;
|
|
|
45
56
|
// > In some situations the Chrome device prompt simply doesn't appear so we time
|
|
46
57
|
// > this out after 30 seconds and reload the page
|
|
47
58
|
class BluetoothDeviceWrapper {
|
|
48
|
-
constructor(
|
|
49
|
-
Object.defineProperty(this, "
|
|
59
|
+
constructor(bleDevice, logging = new logging_js_1.ConsoleLogging(), deviceBondState = new device_bond_state_js_1.DefaultDeviceBondState(), dispatchTypedEvent, currentEvents, callbacks) {
|
|
60
|
+
Object.defineProperty(this, "bleDevice", {
|
|
50
61
|
enumerable: true,
|
|
51
62
|
configurable: true,
|
|
52
63
|
writable: true,
|
|
53
|
-
value:
|
|
64
|
+
value: bleDevice
|
|
54
65
|
});
|
|
55
66
|
Object.defineProperty(this, "logging", {
|
|
56
67
|
enumerable: true,
|
|
@@ -58,25 +69,23 @@ class BluetoothDeviceWrapper {
|
|
|
58
69
|
writable: true,
|
|
59
70
|
value: logging
|
|
60
71
|
});
|
|
61
|
-
Object.defineProperty(this, "
|
|
72
|
+
Object.defineProperty(this, "deviceBondState", {
|
|
62
73
|
enumerable: true,
|
|
63
74
|
configurable: true,
|
|
64
75
|
writable: true,
|
|
65
|
-
value:
|
|
76
|
+
value: deviceBondState
|
|
66
77
|
});
|
|
67
|
-
Object.defineProperty(this, "
|
|
78
|
+
Object.defineProperty(this, "currentEvents", {
|
|
68
79
|
enumerable: true,
|
|
69
80
|
configurable: true,
|
|
70
81
|
writable: true,
|
|
71
|
-
value:
|
|
82
|
+
value: currentEvents
|
|
72
83
|
});
|
|
73
|
-
|
|
74
|
-
// or reconnection itself.
|
|
75
|
-
Object.defineProperty(this, "duringExplicitConnectDisconnect", {
|
|
84
|
+
Object.defineProperty(this, "callbacks", {
|
|
76
85
|
enumerable: true,
|
|
77
86
|
configurable: true,
|
|
78
87
|
writable: true,
|
|
79
|
-
value:
|
|
88
|
+
value: callbacks
|
|
80
89
|
});
|
|
81
90
|
Object.defineProperty(this, "connected", {
|
|
82
91
|
enumerable: true,
|
|
@@ -84,12 +93,6 @@ class BluetoothDeviceWrapper {
|
|
|
84
93
|
writable: true,
|
|
85
94
|
value: false
|
|
86
95
|
});
|
|
87
|
-
Object.defineProperty(this, "isReconnect", {
|
|
88
|
-
enumerable: true,
|
|
89
|
-
configurable: true,
|
|
90
|
-
writable: true,
|
|
91
|
-
value: false
|
|
92
|
-
});
|
|
93
96
|
// Only updated after the full connection flow completes not during bond handling.
|
|
94
97
|
Object.defineProperty(this, "serviceIds", {
|
|
95
98
|
enumerable: true,
|
|
@@ -115,6 +118,18 @@ class BluetoothDeviceWrapper {
|
|
|
115
118
|
writable: true,
|
|
116
119
|
value: void 0
|
|
117
120
|
});
|
|
121
|
+
Object.defineProperty(this, "events", {
|
|
122
|
+
enumerable: true,
|
|
123
|
+
configurable: true,
|
|
124
|
+
writable: true,
|
|
125
|
+
value: void 0
|
|
126
|
+
});
|
|
127
|
+
Object.defineProperty(this, "ioPin", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
configurable: true,
|
|
130
|
+
writable: true,
|
|
131
|
+
value: void 0
|
|
132
|
+
});
|
|
118
133
|
Object.defineProperty(this, "led", {
|
|
119
134
|
enumerable: true,
|
|
120
135
|
configurable: true,
|
|
@@ -127,6 +142,12 @@ class BluetoothDeviceWrapper {
|
|
|
127
142
|
writable: true,
|
|
128
143
|
value: void 0
|
|
129
144
|
});
|
|
145
|
+
Object.defineProperty(this, "temperature", {
|
|
146
|
+
enumerable: true,
|
|
147
|
+
configurable: true,
|
|
148
|
+
writable: true,
|
|
149
|
+
value: void 0
|
|
150
|
+
});
|
|
130
151
|
Object.defineProperty(this, "uart", {
|
|
131
152
|
enumerable: true,
|
|
132
153
|
configurable: true,
|
|
@@ -164,65 +185,64 @@ class BluetoothDeviceWrapper {
|
|
|
164
185
|
enumerable: true,
|
|
165
186
|
configurable: true,
|
|
166
187
|
writable: true,
|
|
167
|
-
value:
|
|
188
|
+
value: () => {
|
|
168
189
|
this.waitingForDisconnectEventCallbacks.forEach((cb) => cb());
|
|
169
190
|
this.waitingForDisconnectEventCallbacks.length = 0;
|
|
170
191
|
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
|
-
}
|
|
192
|
+
this.callbacks.onDisconnect();
|
|
183
193
|
}
|
|
184
194
|
});
|
|
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.
|
|
195
|
+
this.accelerometer = new accelerometer_service_js_1.AccelerometerService(bleDevice.deviceId, dispatchTypedEvent);
|
|
196
|
+
this.buttons = new button_service_js_1.ButtonService(bleDevice.deviceId, dispatchTypedEvent);
|
|
197
|
+
this.deviceInformation = new device_information_service_js_1.DeviceInformationService(bleDevice.deviceId);
|
|
198
|
+
this.events = new event_service_js_1.EventService(bleDevice.deviceId, dispatchTypedEvent, () => this.boardVersion);
|
|
199
|
+
this.ioPin = new io_pin_service_js_1.IoPinService(bleDevice.deviceId, dispatchTypedEvent);
|
|
200
|
+
this.led = new led_service_js_1.LedService(bleDevice.deviceId);
|
|
201
|
+
this.magnetometer = new magnetometer_service_js_1.MagnetometerService(bleDevice.deviceId, dispatchTypedEvent);
|
|
202
|
+
this.temperature = new temperature_service_js_1.TemperatureService(bleDevice.deviceId, dispatchTypedEvent);
|
|
203
|
+
this.uart = new uart_service_js_1.UARTService(bleDevice.deviceId, dispatchTypedEvent);
|
|
191
204
|
this.services = [
|
|
192
205
|
this.accelerometer,
|
|
193
206
|
this.buttons,
|
|
207
|
+
this.events,
|
|
208
|
+
this.ioPin,
|
|
194
209
|
this.led,
|
|
195
210
|
this.magnetometer,
|
|
211
|
+
this.temperature,
|
|
196
212
|
this.uart,
|
|
197
213
|
];
|
|
198
214
|
}
|
|
199
|
-
|
|
215
|
+
setBonded(isBonded) {
|
|
216
|
+
this.deviceBondState.setBonded(this.bleDevice.deviceId, isBonded);
|
|
217
|
+
}
|
|
218
|
+
async connect(options) {
|
|
219
|
+
const progress = options?.progress ?? (() => { });
|
|
200
220
|
this.logging.event({
|
|
201
|
-
type:
|
|
221
|
+
type: "Connect",
|
|
202
222
|
message: "Bluetooth connect start",
|
|
203
223
|
});
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
this.callbacks.onConnecting();
|
|
209
|
-
}
|
|
210
|
-
this.duringExplicitConnectDisconnect++;
|
|
224
|
+
this.callbacks.onConnecting();
|
|
225
|
+
const bondMode = options?.bondMode ?? "pairing";
|
|
211
226
|
try {
|
|
212
|
-
if (core_1.Capacitor.isNativePlatform()) {
|
|
213
|
-
|
|
227
|
+
if (core_1.Capacitor.isNativePlatform() && bondMode !== "none") {
|
|
228
|
+
const isBonded = this.deviceBondState.isBonded(this.bleDevice.deviceId);
|
|
229
|
+
await this.connectHandlingBond(progress, isBonded ?? false, bondMode);
|
|
230
|
+
this.setBonded(true);
|
|
231
|
+
// We need this on Android for reconnecting after DFU.
|
|
232
|
+
await bluetooth_le_1.BleClient.discoverServices(this.bleDevice.deviceId);
|
|
214
233
|
}
|
|
215
234
|
else {
|
|
235
|
+
progress(device_js_1.ProgressStage.Connecting);
|
|
216
236
|
await this.connectInternal();
|
|
217
237
|
}
|
|
218
238
|
await this.getBoardVersion();
|
|
219
239
|
const events = this.currentEvents();
|
|
220
|
-
const services = await bluetooth_le_1.BleClient.getServices(this.
|
|
240
|
+
const services = await bluetooth_le_1.BleClient.getServices(this.bleDevice.deviceId);
|
|
221
241
|
this.serviceIds = new Set(services.map((s) => s.uuid));
|
|
222
242
|
this.logging.log(`Starting notifications for current events ${events}`);
|
|
223
243
|
events.forEach((e) => this.startNotifications(e));
|
|
224
244
|
this.logging.event({
|
|
225
|
-
type:
|
|
245
|
+
type: "Connect",
|
|
226
246
|
message: "Bluetooth connect success",
|
|
227
247
|
});
|
|
228
248
|
this.callbacks.onSuccess();
|
|
@@ -230,34 +250,35 @@ class BluetoothDeviceWrapper {
|
|
|
230
250
|
catch (e) {
|
|
231
251
|
this.logging.error("Bluetooth connect error", e);
|
|
232
252
|
this.logging.event({
|
|
233
|
-
type:
|
|
253
|
+
type: "Connect",
|
|
234
254
|
message: "Bluetooth connect failed",
|
|
235
255
|
});
|
|
236
256
|
await this.disconnectInternal(false);
|
|
237
|
-
this.callbacks.
|
|
257
|
+
this.callbacks.onDisconnect();
|
|
238
258
|
if (e instanceof device_js_1.DeviceError) {
|
|
239
259
|
throw e;
|
|
240
260
|
}
|
|
241
|
-
|
|
261
|
+
this.setBonded(false);
|
|
262
|
+
if (
|
|
263
|
+
// Error thrown in iOS only.
|
|
264
|
+
e instanceof Error &&
|
|
265
|
+
e.message === "Peer removed pairing information") {
|
|
242
266
|
throw new device_js_1.DeviceError({
|
|
243
|
-
code: "
|
|
244
|
-
message: e
|
|
267
|
+
code: "pairing-information-lost",
|
|
268
|
+
message: e.message,
|
|
269
|
+
cause: e,
|
|
245
270
|
});
|
|
246
271
|
}
|
|
247
272
|
throw new device_js_1.DeviceError({
|
|
248
|
-
code: "
|
|
273
|
+
code: "connection-error",
|
|
249
274
|
message: e instanceof Error ? e.message : String(e),
|
|
275
|
+
cause: e,
|
|
250
276
|
});
|
|
251
277
|
}
|
|
252
|
-
finally {
|
|
253
|
-
this.duringExplicitConnectDisconnect--;
|
|
254
|
-
// Reset isReconnect for next time
|
|
255
|
-
this.isReconnect = false;
|
|
256
|
-
}
|
|
257
278
|
}
|
|
258
279
|
async connectInternal() {
|
|
259
280
|
this.waitingForDisconnectEventCallbacks.length = 0;
|
|
260
|
-
await bluetooth_le_1.BleClient.connect(this.
|
|
281
|
+
await bluetooth_le_1.BleClient.connect(this.bleDevice.deviceId, this.handleDisconnectEvent, {
|
|
261
282
|
timeout: exports.connectTimeoutInMs,
|
|
262
283
|
});
|
|
263
284
|
this.connected = true;
|
|
@@ -267,24 +288,15 @@ class BluetoothDeviceWrapper {
|
|
|
267
288
|
}
|
|
268
289
|
async disconnectInternal(userTriggered) {
|
|
269
290
|
this.logging.log(`Bluetooth disconnect ${userTriggered ? "(user triggered)" : "(programmatic)"}`);
|
|
270
|
-
this.duringExplicitConnectDisconnect++;
|
|
271
291
|
try {
|
|
272
292
|
if (this.connected) {
|
|
273
|
-
await bluetooth_le_1.BleClient.disconnect(this.
|
|
293
|
+
await bluetooth_le_1.BleClient.disconnect(this.bleDevice.deviceId);
|
|
274
294
|
}
|
|
275
295
|
}
|
|
276
296
|
catch (e) {
|
|
277
297
|
this.logging.error("Bluetooth GATT disconnect error (ignored)", e);
|
|
278
298
|
// We might have already lost the connection.
|
|
279
299
|
}
|
|
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
300
|
}
|
|
289
301
|
async getBoardVersion() {
|
|
290
302
|
// We read this when we connect and it won't change.
|
|
@@ -305,7 +317,7 @@ class BluetoothDeviceWrapper {
|
|
|
305
317
|
}
|
|
306
318
|
async startInternalNotifications(serviceId, characteristicId, options) {
|
|
307
319
|
const key = this.getNotificationKey(serviceId, characteristicId);
|
|
308
|
-
await this.raceDisconnectAndTimeout(bluetooth_le_1.BleClient.startNotifications(this.
|
|
320
|
+
await this.raceDisconnectAndTimeout(bluetooth_le_1.BleClient.startNotifications(this.bleDevice.deviceId, serviceId, characteristicId, (value) => {
|
|
309
321
|
const bytes = new Uint8Array(value.buffer);
|
|
310
322
|
// Notify all registered callbacks.
|
|
311
323
|
this.internalNotificationListeners
|
|
@@ -325,7 +337,7 @@ class BluetoothDeviceWrapper {
|
|
|
325
337
|
this.internalNotificationListeners.get(key)?.delete(callback);
|
|
326
338
|
}
|
|
327
339
|
async stopInternalNotifications(serviceId, characteristicId) {
|
|
328
|
-
await bluetooth_le_1.BleClient.stopNotifications(this.
|
|
340
|
+
await bluetooth_le_1.BleClient.stopNotifications(this.bleDevice.deviceId, serviceId, characteristicId);
|
|
329
341
|
const key = this.getNotificationKey(serviceId, characteristicId);
|
|
330
342
|
this.internalNotificationListeners.delete(key);
|
|
331
343
|
}
|
|
@@ -346,7 +358,7 @@ class BluetoothDeviceWrapper {
|
|
|
346
358
|
this.subscribe(serviceId, characteristicId, notificationListener);
|
|
347
359
|
});
|
|
348
360
|
try {
|
|
349
|
-
await bluetooth_le_1.BleClient.writeWithoutResponse(this.
|
|
361
|
+
await bluetooth_le_1.BleClient.writeWithoutResponse(this.bleDevice.deviceId, serviceId, characteristicId, value);
|
|
350
362
|
return await this.raceDisconnectAndTimeout(notificationPromise, {
|
|
351
363
|
timeout: 3_000,
|
|
352
364
|
actionName: "flash notification wait",
|
|
@@ -416,9 +428,10 @@ class BluetoothDeviceWrapper {
|
|
|
416
428
|
* Bonds with device and handles the post-bond device state only returning
|
|
417
429
|
* when we can reattempt a connection with the device.
|
|
418
430
|
*/
|
|
419
|
-
async connectHandlingBond() {
|
|
431
|
+
async connectHandlingBond(progress, isAlreadyIosBonded, bondMode) {
|
|
432
|
+
progress(device_js_1.ProgressStage.CheckingBond);
|
|
420
433
|
const startTime = Date.now();
|
|
421
|
-
const maybeJustBonded = await this.bondConnectDeviceInternal();
|
|
434
|
+
const maybeJustBonded = await this.bondConnectDeviceInternal(isAlreadyIosBonded);
|
|
422
435
|
if (maybeJustBonded) {
|
|
423
436
|
// If we did just bond then the device disconnects after 2_000 and then
|
|
424
437
|
// resets after a further 13_000 In future we'd like a firmware change
|
|
@@ -445,18 +458,31 @@ class BluetoothDeviceWrapper {
|
|
|
445
458
|
}
|
|
446
459
|
}
|
|
447
460
|
await this.connectInternal();
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
461
|
+
try {
|
|
462
|
+
const targetMode = bondMode === "pairing"
|
|
463
|
+
? partial_flashing_service_js_1.MicroBitMode.Pairing
|
|
464
|
+
: partial_flashing_service_js_1.MicroBitMode.Application;
|
|
465
|
+
progress(device_js_1.ProgressStage.ResettingDevice);
|
|
466
|
+
this.log(`Resetting to ${bondMode} mode`);
|
|
467
|
+
const pf = new partial_flashing_service_js_1.PartialFlashingService(this);
|
|
468
|
+
await pf.resetToMode(targetMode);
|
|
469
|
+
await this.waitForDisconnect(10_000);
|
|
470
|
+
progress(device_js_1.ProgressStage.Connecting);
|
|
471
|
+
await this.connectInternal();
|
|
472
|
+
}
|
|
473
|
+
catch (e) {
|
|
474
|
+
if ((0, exports.isCharacteristicNotFoundError)(e)) {
|
|
475
|
+
this.log("Partial flashing characteristic not found, skipping reset.");
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
throw e;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
456
481
|
}
|
|
482
|
+
this.log(`Connection ready; took ${Date.now() - startTime}`);
|
|
457
483
|
}
|
|
458
|
-
async bondConnectDeviceInternal() {
|
|
459
|
-
const { deviceId } = this.
|
|
484
|
+
async bondConnectDeviceInternal(isAlreadyIosBonded) {
|
|
485
|
+
const { deviceId } = this.bleDevice;
|
|
460
486
|
if ((0, exports.isAndroid)()) {
|
|
461
487
|
let justBonded = false;
|
|
462
488
|
// This gets us a nicer pairing dialog than just going straight for the characteristic.
|
|
@@ -474,13 +500,55 @@ class BluetoothDeviceWrapper {
|
|
|
474
500
|
// need to call startNotifications again. We need to be connected to
|
|
475
501
|
// startNotifications.
|
|
476
502
|
await this.connectInternal();
|
|
503
|
+
if (!isAlreadyIosBonded) {
|
|
504
|
+
await this.triggerIosPairing({ timeout: exports.bondingTimeoutInMs });
|
|
505
|
+
}
|
|
506
|
+
return !isAlreadyIosBonded;
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* On iOS, accessing an encrypted characteristic triggers the pairing dialog.
|
|
511
|
+
* Try each candidate characteristic in turn until one succeeds. The error is
|
|
512
|
+
* fast (local GATT cache lookup) so there's no meaningful delay from retries.
|
|
513
|
+
*/
|
|
514
|
+
async triggerIosPairing(options) {
|
|
515
|
+
const { deviceId } = this.bleDevice;
|
|
516
|
+
// 1. Partial flashing notifications (most common case)
|
|
517
|
+
try {
|
|
477
518
|
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.
|
|
519
|
+
await pf.startNotifications(options);
|
|
480
520
|
await pf.stopNotifications();
|
|
481
|
-
return
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
catch (e) {
|
|
524
|
+
if (!(0, exports.isCharacteristicNotFoundError)(e)) {
|
|
525
|
+
throw e;
|
|
526
|
+
}
|
|
527
|
+
this.log("PF characteristic not found for pairing trigger, trying Secure DFU");
|
|
528
|
+
}
|
|
529
|
+
// 2. Nordic Secure DFU buttonless notifications (V2 without PF)
|
|
530
|
+
try {
|
|
531
|
+
await bluetooth_le_1.BleClient.startNotifications(deviceId, profile_js_1.profile.nordicSecureDfu.id, profile_js_1.profile.nordicSecureDfu.characteristics.buttonless.id, () => { }, options);
|
|
532
|
+
await bluetooth_le_1.BleClient.stopNotifications(deviceId, profile_js_1.profile.nordicSecureDfu.id, profile_js_1.profile.nordicSecureDfu.characteristics.buttonless.id);
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
catch (e) {
|
|
536
|
+
if (!(0, exports.isCharacteristicNotFoundError)(e)) {
|
|
537
|
+
throw e;
|
|
538
|
+
}
|
|
539
|
+
this.log("Secure DFU characteristic not found for pairing trigger, trying DFU control");
|
|
540
|
+
}
|
|
541
|
+
// 3. micro:bit DFU control read (V1 without PF)
|
|
542
|
+
try {
|
|
543
|
+
await bluetooth_le_1.BleClient.read(deviceId, profile_js_1.profile.dfuControl.id, profile_js_1.profile.dfuControl.characteristics.control.id, options);
|
|
544
|
+
}
|
|
545
|
+
catch (e) {
|
|
546
|
+
if (!(0, exports.isCharacteristicNotFoundError)(e)) {
|
|
547
|
+
throw e;
|
|
548
|
+
}
|
|
549
|
+
this.log("No suitable characteristic found to trigger pairing");
|
|
482
550
|
}
|
|
483
551
|
}
|
|
484
552
|
}
|
|
485
553
|
exports.BluetoothDeviceWrapper = BluetoothDeviceWrapper;
|
|
486
|
-
//# sourceMappingURL=
|
|
554
|
+
//# 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
|
*
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fullFlash = fullFlash;
|
|
4
|
-
const device_js_1 = require("
|
|
5
|
-
const dfu_service_js_1 = require("../dfu-service.js");
|
|
4
|
+
const device_js_1 = require("../../device.js");
|
|
5
|
+
const dfu_service_js_1 = require("../services/dfu-service.js");
|
|
6
6
|
const flashing_v1_js_1 = require("./flashing-v1.js");
|
|
7
7
|
const nordic_dfu_js_1 = require("./nordic-dfu.js");
|
|
8
|
-
const async_util_js_1 = require("
|
|
8
|
+
const async_util_js_1 = require("../../async-util.js");
|
|
9
9
|
/**
|
|
10
10
|
* Perform a full flash via Nordic's DFU service.
|
|
11
11
|
*
|
|
@@ -19,7 +19,7 @@ const async_util_js_1 = require("../async-util.js");
|
|
|
19
19
|
async function fullFlash(connection, boardVersion, memoryMap, progress) {
|
|
20
20
|
connection.log("Full flash");
|
|
21
21
|
progress(device_js_1.ProgressStage.FullFlashing);
|
|
22
|
-
const { deviceId } = connection.
|
|
22
|
+
const { deviceId } = connection.bleDevice;
|
|
23
23
|
try {
|
|
24
24
|
if (boardVersion === "V1") {
|
|
25
25
|
connection.log("Rebooting V1 to bootloader");
|
|
@@ -30,8 +30,9 @@ async function fullFlash(connection, boardVersion, memoryMap, progress) {
|
|
|
30
30
|
catch (e) {
|
|
31
31
|
connection.error("Failed to request reboot to bootloader", e);
|
|
32
32
|
throw new device_js_1.DeviceError({
|
|
33
|
-
code: "
|
|
33
|
+
code: "connection-error",
|
|
34
34
|
message: e instanceof Error ? e.message : "Failed to reboot to bootloader",
|
|
35
|
+
cause: e,
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
38
|
// Wait for device to automatically disconnect as it reboots into bootloader
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flashing-full.js","sourceRoot":"","sources":["../../../../src/bluetooth/flashing/flashing-full.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import MemoryMap from "nrf-intel-hex";
|
|
2
|
+
import { RegionInfo } from "../services/partial-flashing-service.js";
|
|
3
|
+
export interface MakeCodeRegionInfo extends RegionInfo {
|
|
4
|
+
/** SHA-256 (truncated to 8 bytes) of the compiled program binary. */
|
|
5
|
+
appHash: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Find the MakeCode code region in a MemoryMap (typically from a hex file).
|
|
9
|
+
*/
|
|
10
|
+
export declare const findMakeCodeRegionInMemoryMap: (memoryMap: MemoryMap, deviceCodeRegion: RegionInfo) => MakeCodeRegionInfo | null;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.findMakeCodeRegionInMemoryMap = void 0;
|
|
4
4
|
const PXT_MAGIC_HEX = "708E3B92C615A841C49866C975EE5197";
|
|
5
|
+
const PXT_MAGIC_BYTES = PXT_MAGIC_HEX.length / 2; // 16
|
|
5
6
|
/**
|
|
6
7
|
* Find the MakeCode code region in a MemoryMap (typically from a hex file).
|
|
7
8
|
*/
|
|
@@ -10,9 +11,11 @@ const findMakeCodeRegionInMemoryMap = (memoryMap, deviceCodeRegion) => {
|
|
|
10
11
|
const offset = findByteSequence(block, PXT_MAGIC_HEX);
|
|
11
12
|
if (offset >= 0) {
|
|
12
13
|
const start = blockAddr + offset;
|
|
13
|
-
const hashOffset = start +
|
|
14
|
+
const hashOffset = start + PXT_MAGIC_BYTES;
|
|
14
15
|
const hashBytes = memoryMap.slicePad(hashOffset, 8);
|
|
15
16
|
const hash = bytesToHex(hashBytes);
|
|
17
|
+
const appHashBytes = memoryMap.slicePad(hashOffset + 8, 8);
|
|
18
|
+
const appHash = bytesToHex(appHashBytes);
|
|
16
19
|
// Find the highest address with data in the memory map within the code region
|
|
17
20
|
let end = start;
|
|
18
21
|
for (const [blockAddr, block] of memoryMap) {
|
|
@@ -23,7 +26,7 @@ const findMakeCodeRegionInMemoryMap = (memoryMap, deviceCodeRegion) => {
|
|
|
23
26
|
}
|
|
24
27
|
// Round up to next 64-byte boundary
|
|
25
28
|
end = Math.ceil(end / 64) * 64;
|
|
26
|
-
return { start, end, hash };
|
|
29
|
+
return { start, end, hash, appHash };
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
32
|
return null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flashing-makecode.js","sourceRoot":"","sources":["../../../../src/bluetooth/flashing/flashing-makecode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|