@microbit/microbit-connection 0.9.0-apps.alpha.16 → 0.9.0-apps.alpha.18
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/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 +137 -0
- package/build/cjs/{bluetooth.js → bluetooth/connection.js} +158 -106
- package/build/cjs/bluetooth/connection.js.map +1 -0
- package/build/cjs/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
- package/build/cjs/bluetooth/connection.test.js.map +1 -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} +11 -11
- package/build/cjs/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +38 -42
- package/build/cjs/bluetooth/device-wrapper.js.map +1 -0
- package/build/cjs/{flashing → 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/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
- package/build/cjs/bluetooth/flashing/flashing-makecode.js.map +1 -0
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.js +3 -3
- package/build/cjs/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
- package/build/cjs/{flashing → bluetooth/flashing}/flashing-partial.js +7 -6
- 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 +15 -11
- 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.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.js → bluetooth/profile.js} +1 -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/{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/{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 +145 -123
- package/build/cjs/device.js +47 -128
- 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.js +54 -48
- package/build/cjs/events.test.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 +7 -17
- package/build/cjs/index.js +6 -28
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/radio-bridge/connection.d.ts +52 -0
- package/build/cjs/{usb-radio-bridge.js → radio-bridge/connection.js} +69 -37
- 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 +43 -14
- 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 -2
- package/build/cjs/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +7 -15
- 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.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/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
- 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.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} +257 -173
- package/build/cjs/usb/connection.js.map +1 -0
- package/build/cjs/{usb.test.js → usb/connection.test.js} +52 -42
- 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.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.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/{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 -135
- 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.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/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 +137 -0
- package/build/esm/{bluetooth.js → bluetooth/connection.js} +152 -100
- package/build/esm/bluetooth/connection.js.map +1 -0
- package/build/esm/{bluetooth.test.js → bluetooth/connection.test.js} +9 -9
- package/build/esm/bluetooth/connection.test.js.map +1 -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} +11 -11
- package/build/esm/{bluetooth-device-wrapper.js → bluetooth/device-wrapper.js} +35 -39
- package/build/esm/bluetooth/device-wrapper.js.map +1 -0
- package/build/esm/{flashing → 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/{flashing → bluetooth/flashing}/flashing-makecode.d.ts +1 -1
- package/build/esm/bluetooth/flashing/flashing-makecode.js.map +1 -0
- package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.test.js +2 -2
- package/build/esm/bluetooth/flashing/flashing-makecode.test.js.map +1 -0
- package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.d.ts +2 -2
- package/build/esm/{flashing → bluetooth/flashing}/flashing-partial.js +6 -5
- 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 +15 -11
- 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.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.js → bluetooth/profile.js} +1 -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/{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/{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 +145 -123
- package/build/esm/device.js +45 -122
- 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.js +55 -49
- package/build/esm/events.test.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 +7 -17
- package/build/esm/index.js +6 -11
- package/build/esm/index.js.map +1 -1
- package/build/esm/radio-bridge/connection.d.ts +52 -0
- package/build/esm/{usb-radio-bridge.js → radio-bridge/connection.js} +69 -37
- 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 +43 -14
- 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 -2
- package/build/esm/{hex-flash-data-source.js → universal-hex/flash-data-source.js} +6 -13
- 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/{board-serial-info.test.js → usb/board-serial-info.test.js} +2 -4
- 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} +253 -168
- package/build/esm/usb/connection.js.map +1 -0
- package/build/esm/usb/connection.test.d.ts +1 -0
- package/build/esm/{usb.test.js → usb/connection.test.js} +47 -37
- 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/{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 -111
- 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.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 +43 -2
- 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 -114
- package/build/cjs/bluetooth.js.map +0 -1
- package/build/cjs/bluetooth.test.js.map +0 -1
- package/build/cjs/board-serial-info.js.map +0 -1
- package/build/cjs/board-serial-info.test.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-bond-state.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.js.map +0 -1
- package/build/cjs/flashing/flashing-makecode.test.js.map +0 -1
- 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/flashing/zip.test.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/promise-queue.test.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/cjs/usb.test.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 -114
- package/build/esm/bluetooth.js.map +0 -1
- package/build/esm/bluetooth.test.js.map +0 -1
- package/build/esm/board-serial-info.js.map +0 -1
- package/build/esm/board-serial-info.test.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-bond-state.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.js.map +0 -1
- package/build/esm/flashing/flashing-makecode.test.js.map +0 -1
- 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/flashing/zip.test.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/promise-queue.test.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/build/esm/usb.test.js.map +0 -1
- /package/build/cjs/{bluetooth.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
- /package/build/cjs/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
- /package/build/cjs/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/flashing-makecode.test.d.ts +0 -0
- /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/{flashing → bluetooth/flashing}/zip.test.d.ts +0 -0
- /package/build/cjs/{flashing → bluetooth/flashing}/zip.test.js +0 -0
- /package/build/cjs/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +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/{board-serial-info.test.d.ts → usb/arm-debug.test.d.ts} +0 -0
- /package/build/{esm → cjs/usb}/board-serial-info.test.d.ts +0 -0
- /package/build/cjs/{promise-queue.test.d.ts → usb/cmsis-dap.test.d.ts} +0 -0
- /package/build/cjs/{usb.test.d.ts → usb/connection.test.d.ts} +0 -0
- /package/build/{esm/bluetooth.test.d.ts → cjs/usb/cortex-m.test.d.ts} +0 -0
- /package/build/{esm/flashing/flashing-makecode.test.d.ts → cjs/usb/daplink.test.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 → cjs/usb}/promise-queue.test.d.ts +0 -0
- /package/build/cjs/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
- /package/build/esm/{flashing/zip.test.d.ts → bluetooth/connection.test.d.ts} +0 -0
- /package/build/esm/{device-bond-state.d.ts → bluetooth/device-bond-state.d.ts} +0 -0
- /package/build/esm/{device-bond-state.js → bluetooth/device-bond-state.js} +0 -0
- /package/build/esm/{flashing → bluetooth/flashing}/flashing-makecode.js +0 -0
- /package/build/esm/{usb.test.d.ts → bluetooth/flashing/flashing-makecode.test.d.ts} +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/{flashing → bluetooth/flashing}/zip.test.js +0 -0
- /package/build/esm/{bluetooth-profile.d.ts → bluetooth/profile.d.ts} +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
- /package/build/esm/{promise-queue.test.js → usb/promise-queue.test.js} +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2026, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
|
|
5
|
+
* Copyright (c) Arm Limited 2018
|
|
6
|
+
* Copyright (c) Microsoft Corporation
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: MIT
|
|
9
|
+
*
|
|
10
|
+
* CMSIS-DAP protocol layer. CmsisDapUsb handles the framing and validation of
|
|
11
|
+
* CMSIS-DAP commands over USB. It sits between UsbTransport (raw packet I/O)
|
|
12
|
+
* and ArmDebugSwd (SWD register access). Its responsibilities are:
|
|
13
|
+
*
|
|
14
|
+
* - Serialising all DAP commands through a single queue so concurrent
|
|
15
|
+
* callers (serial polling, flash writes, SWD reads) don't interleave.
|
|
16
|
+
* - Framing DAP_TRANSFER / DAP_TRANSFER_BLOCK requests and parsing their
|
|
17
|
+
* responses, including structured error reporting.
|
|
18
|
+
* - Providing named wrappers for the low-level DAP commands used during
|
|
19
|
+
* SWD initialisation (SWJ_SEQUENCE, SWJ_CLOCK, etc.).
|
|
20
|
+
* - Draining stale USB responses left over from a previous session.
|
|
21
|
+
*
|
|
22
|
+
* Protocol references:
|
|
23
|
+
* - CMSIS-DAP: https://www.keil.com/pack/doc/CMSIS/DAP/html/group__DAP__Commands__gr.html
|
|
24
|
+
* - ARM ADI: https://developer.arm.com/documentation/ihi0031/a/
|
|
25
|
+
*/
|
|
26
|
+
import { DeviceError } from "../device.js";
|
|
27
|
+
import { Logging } from "../logging.js";
|
|
28
|
+
import { type Transport } from "./transport.js";
|
|
29
|
+
export declare const DP = 0;
|
|
30
|
+
export declare const AP = 1;
|
|
31
|
+
export declare const READ = 2;
|
|
32
|
+
export declare const WRITE = 0;
|
|
33
|
+
export declare const ABORT_ALL: number;
|
|
34
|
+
export interface DapOperation {
|
|
35
|
+
port: number;
|
|
36
|
+
mode: number;
|
|
37
|
+
register: number;
|
|
38
|
+
value?: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Base error for CMSIS-DAP protocol failures.
|
|
42
|
+
* Extends DeviceError so existing catch blocks continue to work.
|
|
43
|
+
*/
|
|
44
|
+
export declare class DapError extends DeviceError {
|
|
45
|
+
constructor(message: string);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The response command byte didn't match the request.
|
|
49
|
+
* This can indicate stale responses in the USB buffer from a previous
|
|
50
|
+
* interrupted session, or a protocol-level error.
|
|
51
|
+
*/
|
|
52
|
+
export declare class DapResponseMismatchError extends DapError {
|
|
53
|
+
constructor(expected: number, actual: number);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* DAP transfer or block transfer failed with a non-OK response.
|
|
57
|
+
*/
|
|
58
|
+
export declare class DapTransferError extends DapError {
|
|
59
|
+
readonly response: number;
|
|
60
|
+
readonly completedOps: number;
|
|
61
|
+
readonly totalOps: number;
|
|
62
|
+
constructor(response: number, completedOps: number, totalOps: number, prefix?: string);
|
|
63
|
+
}
|
|
64
|
+
export interface CmsisDap {
|
|
65
|
+
readonly isOpen: boolean;
|
|
66
|
+
readonly blockSize: number;
|
|
67
|
+
/** Send a CMSIS-DAP command and validate the response. */
|
|
68
|
+
send(command: number, data?: Uint8Array): Promise<DataView>;
|
|
69
|
+
clearAbort(): Promise<void>;
|
|
70
|
+
swjSequence(data: Uint8Array): Promise<void>;
|
|
71
|
+
swjClock(frequency: number): Promise<void>;
|
|
72
|
+
connect(): Promise<void>;
|
|
73
|
+
disconnect(): Promise<void>;
|
|
74
|
+
configureTransfer(idleCycles: number, waitRetry: number, matchRetry: number): Promise<void>;
|
|
75
|
+
open(): Promise<void>;
|
|
76
|
+
close(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Execute a batch of DAP transfer operations (DAP_TRANSFER command).
|
|
79
|
+
* Returns the values read (one per READ operation in the batch).
|
|
80
|
+
*/
|
|
81
|
+
transfer(operations: DapOperation[]): Promise<Uint32Array>;
|
|
82
|
+
/** Read a block of 32-bit values from a single register (DAP_TRANSFER_BLOCK). */
|
|
83
|
+
transferBlockRead(port: number, register: number, count: number): Promise<Uint32Array>;
|
|
84
|
+
/** Write a block of 32-bit values to a single register (DAP_TRANSFER_BLOCK). */
|
|
85
|
+
transferBlockWrite(port: number, register: number, values: Uint32Array): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Drain stale responses from the USB buffer.
|
|
88
|
+
* Sends probe commands and reads until the response matches,
|
|
89
|
+
* discarding any stale responses from interrupted operations.
|
|
90
|
+
*/
|
|
91
|
+
drainStaleResponses(): Promise<void>;
|
|
92
|
+
}
|
|
93
|
+
export declare class CmsisDapUsb implements CmsisDap {
|
|
94
|
+
private transport;
|
|
95
|
+
private logging;
|
|
96
|
+
readonly blockSize: number;
|
|
97
|
+
private sendQueue;
|
|
98
|
+
constructor(transport: Transport, logging: Logging);
|
|
99
|
+
get isOpen(): boolean;
|
|
100
|
+
send(command: number, data?: Uint8Array): Promise<DataView>;
|
|
101
|
+
clearAbort(): Promise<void>;
|
|
102
|
+
swjSequence(data: Uint8Array): Promise<void>;
|
|
103
|
+
swjClock(frequency: number): Promise<void>;
|
|
104
|
+
connect(): Promise<void>;
|
|
105
|
+
disconnect(): Promise<void>;
|
|
106
|
+
configureTransfer(idleCycles: number, waitRetry: number, matchRetry: number): Promise<void>;
|
|
107
|
+
open(): Promise<void>;
|
|
108
|
+
close(): Promise<void>;
|
|
109
|
+
transfer(operations: DapOperation[]): Promise<Uint32Array>;
|
|
110
|
+
transferBlockRead(port: number, register: number, count: number): Promise<Uint32Array>;
|
|
111
|
+
transferBlockWrite(port: number, register: number, values: Uint32Array): Promise<void>;
|
|
112
|
+
drainStaleResponses(): Promise<void>;
|
|
113
|
+
}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2026, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* Derived from dapjs (https://github.com/ARMmbed/dapjs) which is
|
|
5
|
+
* Copyright (c) Arm Limited 2018
|
|
6
|
+
* Copyright (c) Microsoft Corporation
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: MIT
|
|
9
|
+
*
|
|
10
|
+
* CMSIS-DAP protocol layer. CmsisDapUsb handles the framing and validation of
|
|
11
|
+
* CMSIS-DAP commands over USB. It sits between UsbTransport (raw packet I/O)
|
|
12
|
+
* and ArmDebugSwd (SWD register access). Its responsibilities are:
|
|
13
|
+
*
|
|
14
|
+
* - Serialising all DAP commands through a single queue so concurrent
|
|
15
|
+
* callers (serial polling, flash writes, SWD reads) don't interleave.
|
|
16
|
+
* - Framing DAP_TRANSFER / DAP_TRANSFER_BLOCK requests and parsing their
|
|
17
|
+
* responses, including structured error reporting.
|
|
18
|
+
* - Providing named wrappers for the low-level DAP commands used during
|
|
19
|
+
* SWD initialisation (SWJ_SEQUENCE, SWJ_CLOCK, etc.).
|
|
20
|
+
* - Draining stale USB responses left over from a previous session.
|
|
21
|
+
*
|
|
22
|
+
* Protocol references:
|
|
23
|
+
* - CMSIS-DAP: https://www.keil.com/pack/doc/CMSIS/DAP/html/group__DAP__Commands__gr.html
|
|
24
|
+
* - ARM ADI: https://developer.arm.com/documentation/ihi0031/a/
|
|
25
|
+
*/
|
|
26
|
+
import { DeviceError } from "../device.js";
|
|
27
|
+
import { PromiseQueue } from "./promise-queue.js";
|
|
28
|
+
import { PACKET_SIZE } from "./transport.js";
|
|
29
|
+
// ---------------------------------------------------------------------------
|
|
30
|
+
// Constants
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// CMSIS-DAP commands
|
|
33
|
+
const DAP_INFO = 0x00;
|
|
34
|
+
const DAP_CONNECT = 0x02;
|
|
35
|
+
const DAP_DISCONNECT = 0x03;
|
|
36
|
+
const DAP_TRANSFER_CONFIGURE = 0x04;
|
|
37
|
+
const DAP_TRANSFER = 0x05;
|
|
38
|
+
const DAP_TRANSFER_BLOCK = 0x06;
|
|
39
|
+
const DAP_WRITE_ABORT = 0x08;
|
|
40
|
+
const DAP_SWJ_CLOCK = 0x11;
|
|
41
|
+
const DAP_SWJ_SEQUENCE = 0x12;
|
|
42
|
+
// DAP_CONNECT response
|
|
43
|
+
const DAP_CONNECT_FAILED = 0;
|
|
44
|
+
// DAP response statuses for commands that return OK/ERROR in byte 1
|
|
45
|
+
const DAP_OK = 0x00;
|
|
46
|
+
// Commands whose byte-1 response should be checked for OK
|
|
47
|
+
const STATUS_CHECK_COMMANDS = new Set([
|
|
48
|
+
DAP_DISCONNECT,
|
|
49
|
+
DAP_WRITE_ABORT,
|
|
50
|
+
DAP_SWJ_CLOCK,
|
|
51
|
+
DAP_SWJ_SEQUENCE,
|
|
52
|
+
DAP_TRANSFER_CONFIGURE,
|
|
53
|
+
]);
|
|
54
|
+
// DAP_TRANSFER response codes (bitfield)
|
|
55
|
+
const TRANSFER_OK = 0x01;
|
|
56
|
+
const TRANSFER_WAIT = 0x02;
|
|
57
|
+
const TRANSFER_FAULT = 0x04;
|
|
58
|
+
const TRANSFER_ERROR = 0x08;
|
|
59
|
+
const TRANSFER_MISMATCH = 0x10;
|
|
60
|
+
// DAP ports
|
|
61
|
+
export const DP = 0x00; // Debug Port
|
|
62
|
+
export const AP = 0x01; // Access Port
|
|
63
|
+
// DAP transfer modes
|
|
64
|
+
export const READ = 0x02;
|
|
65
|
+
export const WRITE = 0x00;
|
|
66
|
+
// Abort register bits
|
|
67
|
+
const ABORT_STKCMPCLR = 1 << 1;
|
|
68
|
+
const ABORT_STKERRCLR = 1 << 2;
|
|
69
|
+
const ABORT_WDERRCLR = 1 << 3;
|
|
70
|
+
const ABORT_ORUNERRCLR = 1 << 4;
|
|
71
|
+
export const ABORT_ALL = ABORT_WDERRCLR | ABORT_STKERRCLR | ABORT_STKCMPCLR | ABORT_ORUNERRCLR;
|
|
72
|
+
// Packet sizes
|
|
73
|
+
const BLOCK_HEADER_SIZE = 4;
|
|
74
|
+
const TRANSFER_HEADER_SIZE = 2;
|
|
75
|
+
const TRANSFER_OPERATION_SIZE = 5;
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Error classes
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
/**
|
|
80
|
+
* Base error for CMSIS-DAP protocol failures.
|
|
81
|
+
* Extends DeviceError so existing catch blocks continue to work.
|
|
82
|
+
*/
|
|
83
|
+
export class DapError extends DeviceError {
|
|
84
|
+
constructor(message) {
|
|
85
|
+
super({ code: "connection-error", message });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* The response command byte didn't match the request.
|
|
90
|
+
* This can indicate stale responses in the USB buffer from a previous
|
|
91
|
+
* interrupted session, or a protocol-level error.
|
|
92
|
+
*/
|
|
93
|
+
export class DapResponseMismatchError extends DapError {
|
|
94
|
+
constructor(expected, actual) {
|
|
95
|
+
super(`Bad response for ${expected} -> ${actual}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* DAP transfer or block transfer failed with a non-OK response.
|
|
100
|
+
*/
|
|
101
|
+
export class DapTransferError extends DapError {
|
|
102
|
+
constructor(response, completedOps, totalOps, prefix = "") {
|
|
103
|
+
super(`${prefix}${transferResponseMessage(response)} at operation ${completedOps}/${totalOps}`);
|
|
104
|
+
Object.defineProperty(this, "response", {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
configurable: true,
|
|
107
|
+
writable: true,
|
|
108
|
+
value: response
|
|
109
|
+
});
|
|
110
|
+
Object.defineProperty(this, "completedOps", {
|
|
111
|
+
enumerable: true,
|
|
112
|
+
configurable: true,
|
|
113
|
+
writable: true,
|
|
114
|
+
value: completedOps
|
|
115
|
+
});
|
|
116
|
+
Object.defineProperty(this, "totalOps", {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
configurable: true,
|
|
119
|
+
writable: true,
|
|
120
|
+
value: totalOps
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export class CmsisDapUsb {
|
|
125
|
+
constructor(transport, logging) {
|
|
126
|
+
Object.defineProperty(this, "transport", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
configurable: true,
|
|
129
|
+
writable: true,
|
|
130
|
+
value: transport
|
|
131
|
+
});
|
|
132
|
+
Object.defineProperty(this, "logging", {
|
|
133
|
+
enumerable: true,
|
|
134
|
+
configurable: true,
|
|
135
|
+
writable: true,
|
|
136
|
+
value: logging
|
|
137
|
+
});
|
|
138
|
+
Object.defineProperty(this, "blockSize", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
configurable: true,
|
|
141
|
+
writable: true,
|
|
142
|
+
value: void 0
|
|
143
|
+
});
|
|
144
|
+
Object.defineProperty(this, "sendQueue", {
|
|
145
|
+
enumerable: true,
|
|
146
|
+
configurable: true,
|
|
147
|
+
writable: true,
|
|
148
|
+
value: new PromiseQueue()
|
|
149
|
+
});
|
|
150
|
+
this.blockSize = PACKET_SIZE - BLOCK_HEADER_SIZE - 1;
|
|
151
|
+
}
|
|
152
|
+
get isOpen() {
|
|
153
|
+
return this.transport.isOpen;
|
|
154
|
+
}
|
|
155
|
+
async send(command, data) {
|
|
156
|
+
let array;
|
|
157
|
+
if (data) {
|
|
158
|
+
array = new Uint8Array(data.length + 1);
|
|
159
|
+
array[0] = command;
|
|
160
|
+
array.set(data, 1);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
array = new Uint8Array([command]);
|
|
164
|
+
}
|
|
165
|
+
return this.sendQueue.add(async () => {
|
|
166
|
+
await this.transport.write(array);
|
|
167
|
+
const response = await this.transport.read();
|
|
168
|
+
if (response.getUint8(0) !== command) {
|
|
169
|
+
throw new DapResponseMismatchError(command, response.getUint8(0));
|
|
170
|
+
}
|
|
171
|
+
if (STATUS_CHECK_COMMANDS.has(command)) {
|
|
172
|
+
if (response.getUint8(1) !== DAP_OK) {
|
|
173
|
+
throw new DapError(`Bad status for ${command} -> ${response.getUint8(1)}`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return response;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
async clearAbort() {
|
|
180
|
+
const data = new Uint8Array(5);
|
|
181
|
+
new DataView(data.buffer).setUint32(1, ABORT_ALL, true);
|
|
182
|
+
await this.send(DAP_WRITE_ABORT, data);
|
|
183
|
+
}
|
|
184
|
+
async swjSequence(data) {
|
|
185
|
+
const bitLength = data.byteLength * 8;
|
|
186
|
+
const payload = new Uint8Array(data.length + 1);
|
|
187
|
+
payload[0] = bitLength;
|
|
188
|
+
payload.set(data, 1);
|
|
189
|
+
await this.send(DAP_SWJ_SEQUENCE, payload);
|
|
190
|
+
}
|
|
191
|
+
async swjClock(frequency) {
|
|
192
|
+
await this.send(DAP_SWJ_CLOCK, new Uint8Array(new Uint32Array([frequency]).buffer));
|
|
193
|
+
}
|
|
194
|
+
async connect() {
|
|
195
|
+
const result = await this.send(DAP_CONNECT, new Uint8Array([0]));
|
|
196
|
+
if (result.getUint8(1) === DAP_CONNECT_FAILED) {
|
|
197
|
+
throw new DapError("Mode not enabled.");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
async disconnect() {
|
|
201
|
+
await this.send(DAP_DISCONNECT);
|
|
202
|
+
}
|
|
203
|
+
async configureTransfer(idleCycles, waitRetry, matchRetry) {
|
|
204
|
+
const data = new Uint8Array(5);
|
|
205
|
+
const view = new DataView(data.buffer);
|
|
206
|
+
view.setUint8(0, idleCycles);
|
|
207
|
+
view.setUint16(1, waitRetry, true);
|
|
208
|
+
view.setUint16(3, matchRetry, true);
|
|
209
|
+
await this.send(DAP_TRANSFER_CONFIGURE, data);
|
|
210
|
+
}
|
|
211
|
+
async open() {
|
|
212
|
+
await this.transport.open();
|
|
213
|
+
}
|
|
214
|
+
async close() {
|
|
215
|
+
await this.transport.close();
|
|
216
|
+
}
|
|
217
|
+
async transfer(operations) {
|
|
218
|
+
if (operations.length === 0) {
|
|
219
|
+
return new Uint32Array(0);
|
|
220
|
+
}
|
|
221
|
+
const data = new Uint8Array(TRANSFER_HEADER_SIZE + operations.length * TRANSFER_OPERATION_SIZE);
|
|
222
|
+
const view = new DataView(data.buffer);
|
|
223
|
+
view.setUint8(0, 0); // DAP index (ignored for SWD)
|
|
224
|
+
view.setUint8(1, operations.length);
|
|
225
|
+
operations.forEach((op, index) => {
|
|
226
|
+
const offset = TRANSFER_HEADER_SIZE + index * TRANSFER_OPERATION_SIZE;
|
|
227
|
+
view.setUint8(offset, op.port | op.mode | op.register);
|
|
228
|
+
view.setUint32(offset + 1, op.value ?? 0, true);
|
|
229
|
+
});
|
|
230
|
+
try {
|
|
231
|
+
const result = await this.send(DAP_TRANSFER, data);
|
|
232
|
+
const completedCount = result.getUint8(1);
|
|
233
|
+
const response = result.getUint8(2);
|
|
234
|
+
if (response !== TRANSFER_OK) {
|
|
235
|
+
throw new DapTransferError(response, completedCount, operations.length);
|
|
236
|
+
}
|
|
237
|
+
if (completedCount !== operations.length) {
|
|
238
|
+
throw new DapError(`Transfer count mismatch: expected ${operations.length}, got ${completedCount}`);
|
|
239
|
+
}
|
|
240
|
+
const readCount = operations.filter((op) => op.mode === READ).length;
|
|
241
|
+
return new Uint32Array(result.buffer.slice(3, 3 + readCount * 4));
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
await this.clearAbort();
|
|
245
|
+
throw error;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
async transferBlockRead(port, register, count) {
|
|
249
|
+
const maxWords = Math.floor(this.blockSize / 4);
|
|
250
|
+
if (count > maxWords) {
|
|
251
|
+
throw new DapError(`Transfer block read count ${count} exceeds max ${maxWords}`);
|
|
252
|
+
}
|
|
253
|
+
const data = new Uint8Array(BLOCK_HEADER_SIZE);
|
|
254
|
+
const view = new DataView(data.buffer);
|
|
255
|
+
view.setUint8(0, 0);
|
|
256
|
+
view.setUint16(1, count, true);
|
|
257
|
+
view.setUint8(3, port | READ | register);
|
|
258
|
+
try {
|
|
259
|
+
const result = await this.send(DAP_TRANSFER_BLOCK, data);
|
|
260
|
+
const completedCount = result.getUint16(1, true);
|
|
261
|
+
const response = result.getUint8(3);
|
|
262
|
+
if (response !== TRANSFER_OK) {
|
|
263
|
+
throw new DapTransferError(response, completedCount, count, "Block read: ");
|
|
264
|
+
}
|
|
265
|
+
if (completedCount !== count) {
|
|
266
|
+
throw new DapError(`Block read count mismatch: expected ${count}, got ${completedCount}`);
|
|
267
|
+
}
|
|
268
|
+
return new Uint32Array(result.buffer.slice(4, 4 + count * 4));
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
await this.clearAbort();
|
|
272
|
+
throw error;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
async transferBlockWrite(port, register, values) {
|
|
276
|
+
const maxWords = Math.floor(this.blockSize / 4);
|
|
277
|
+
if (values.length > maxWords) {
|
|
278
|
+
throw new DapError(`Transfer block write count ${values.length} exceeds max ${maxWords}`);
|
|
279
|
+
}
|
|
280
|
+
const data = new Uint8Array(BLOCK_HEADER_SIZE + values.byteLength);
|
|
281
|
+
const view = new DataView(data.buffer);
|
|
282
|
+
view.setUint8(0, 0);
|
|
283
|
+
view.setUint16(1, values.length, true);
|
|
284
|
+
view.setUint8(3, port | WRITE | register);
|
|
285
|
+
values.forEach((value, index) => {
|
|
286
|
+
const offset = BLOCK_HEADER_SIZE + index * 4;
|
|
287
|
+
view.setUint32(offset, value, true);
|
|
288
|
+
});
|
|
289
|
+
try {
|
|
290
|
+
const result = await this.send(DAP_TRANSFER_BLOCK, data);
|
|
291
|
+
const completedCount = result.getUint16(1, true);
|
|
292
|
+
const response = result.getUint8(3);
|
|
293
|
+
if (response !== TRANSFER_OK) {
|
|
294
|
+
throw new DapTransferError(response, completedCount, values.length, "Block write: ");
|
|
295
|
+
}
|
|
296
|
+
if (completedCount !== values.length) {
|
|
297
|
+
throw new DapError(`Block write count mismatch: expected ${values.length}, got ${completedCount}`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
await this.clearAbort();
|
|
302
|
+
throw error;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
async drainStaleResponses() {
|
|
306
|
+
return this.sendQueue.add(async () => {
|
|
307
|
+
const maxAttempts = 10;
|
|
308
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
309
|
+
const packet = new Uint8Array([DAP_INFO, 0x01]);
|
|
310
|
+
await this.transport.write(packet);
|
|
311
|
+
const response = await this.transport.read();
|
|
312
|
+
const responseBytes = new Uint8Array(response.buffer);
|
|
313
|
+
if (responseBytes[0] === DAP_INFO) {
|
|
314
|
+
for (let i = 0; i < attempt; i++) {
|
|
315
|
+
await this.transport.read();
|
|
316
|
+
}
|
|
317
|
+
this.logging.log(`USB buffer drain: synchronized after ${attempt} stale response(s)`);
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
this.logging.log(`USB buffer drain: discarded stale response 0x${responseBytes[0].toString(16)}`);
|
|
321
|
+
}
|
|
322
|
+
this.logging.log("USB buffer drain: warning - could not fully synchronize after max attempts");
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// ---------------------------------------------------------------------------
|
|
327
|
+
// Utility
|
|
328
|
+
// ---------------------------------------------------------------------------
|
|
329
|
+
function transferResponseMessage(response) {
|
|
330
|
+
if (response === 0)
|
|
331
|
+
return "Transfer failed (no ACK — target not responding)";
|
|
332
|
+
if (response & TRANSFER_WAIT)
|
|
333
|
+
return "Transfer WAIT (target busy, retries exhausted)";
|
|
334
|
+
if (response & TRANSFER_FAULT)
|
|
335
|
+
return "Transfer FAULT (access error)";
|
|
336
|
+
if (response & TRANSFER_ERROR)
|
|
337
|
+
return "Transfer protocol error";
|
|
338
|
+
if (response & TRANSFER_MISMATCH)
|
|
339
|
+
return "Transfer value mismatch";
|
|
340
|
+
return `Transfer failed (response=0x${response.toString(16)})`;
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=cmsis-dap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmsis-dap.js","sourceRoot":"","sources":["../../../src/usb/cmsis-dap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|