@microbit/microbit-connection 0.0.0-alpha.3 → 0.0.0-alpha.30
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/accelerometer-service.d.ts +8 -9
- package/build/accelerometer-service.js +24 -43
- package/build/accelerometer-service.js.map +1 -1
- package/build/bluetooth-device-wrapper.d.ts +27 -26
- package/build/bluetooth-device-wrapper.js +137 -89
- package/build/bluetooth-device-wrapper.js.map +1 -1
- package/build/bluetooth.d.ts +14 -11
- package/build/bluetooth.js +70 -91
- package/build/bluetooth.js.map +1 -1
- package/build/board-id.d.ts +1 -0
- package/build/board-id.js +8 -0
- package/build/board-id.js.map +1 -1
- package/build/button-service.d.ts +13 -0
- package/build/button-service.js +76 -0
- package/build/button-service.js.map +1 -0
- package/build/buttons.d.ts +10 -0
- package/build/buttons.js +18 -0
- package/build/buttons.js.map +1 -0
- package/build/constants.d.ts +1 -0
- package/build/constants.js +1 -0
- package/build/constants.js.map +1 -1
- package/build/device.d.ts +30 -39
- package/build/device.js +12 -3
- package/build/device.js.map +1 -1
- package/build/events.d.ts +11 -1
- package/build/events.js +86 -1
- package/build/events.js.map +1 -1
- package/build/hex-flash-data-source.d.ts +6 -8
- package/build/hex-flash-data-source.js +16 -45
- package/build/hex-flash-data-source.js.map +1 -1
- package/build/index.d.ts +10 -5
- package/build/index.js +7 -4
- package/build/index.js.map +1 -1
- package/build/led-service.d.ts +20 -0
- package/build/led-service.js +116 -0
- package/build/led-service.js.map +1 -0
- package/build/led.d.ts +6 -0
- package/build/led.js +2 -0
- package/build/led.js.map +1 -0
- package/build/logging.js +3 -1
- package/build/logging.js.map +1 -1
- package/build/promise-queue.d.ts +27 -0
- package/build/promise-queue.js +74 -0
- package/build/promise-queue.js.map +1 -0
- package/build/service-events.d.ts +3 -0
- package/build/service-events.js +12 -0
- package/build/service-events.js.map +1 -1
- package/build/usb-device-wrapper.d.ts +7 -1
- package/build/usb-device-wrapper.js +40 -3
- package/build/usb-device-wrapper.js.map +1 -1
- package/build/usb-partial-flashing.d.ts +11 -5
- package/build/usb-partial-flashing.js +53 -10
- package/build/usb-partial-flashing.js.map +1 -1
- package/build/usb-radio-bridge.d.ts +31 -18
- package/build/usb-radio-bridge.js +351 -187
- package/build/usb-radio-bridge.js.map +1 -1
- package/build/usb.d.ts +14 -17
- package/build/usb.js +111 -47
- package/build/usb.js.map +1 -1
- package/package.json +5 -3
- package/vite.config.ts +9 -7
- package/build/bluetooth-utils.d.ts +0 -5
- package/build/bluetooth-utils.js +0 -14
- package/build/bluetooth-utils.js.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
interface Options {
|
|
2
|
+
/**
|
|
3
|
+
* If we should clear the queue return a function to create errors to reject all promises.
|
|
4
|
+
* Otherwise return undefined. Called before processing each entry.
|
|
5
|
+
*/
|
|
6
|
+
abortCheck?: () => (() => Error) | undefined;
|
|
7
|
+
}
|
|
8
|
+
export declare class PromiseQueue {
|
|
9
|
+
private busy;
|
|
10
|
+
private entries;
|
|
11
|
+
private abortCheck;
|
|
12
|
+
constructor(options?: Options);
|
|
13
|
+
/**
|
|
14
|
+
* Queue an action.
|
|
15
|
+
*
|
|
16
|
+
* @param action Async action to perform.
|
|
17
|
+
* @returns A promise that resolves when all prior added actions and this action have been performed.
|
|
18
|
+
*/
|
|
19
|
+
add<T>(action: () => Promise<T>): Promise<T>;
|
|
20
|
+
private processQueue;
|
|
21
|
+
/**
|
|
22
|
+
* Skips any queued actions that aren't in progress and rejects their
|
|
23
|
+
* promises with errors created with the supplied function.
|
|
24
|
+
*/
|
|
25
|
+
clear(rejection: () => Error): void;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export class PromiseQueue {
|
|
2
|
+
constructor(options = {}) {
|
|
3
|
+
Object.defineProperty(this, "busy", {
|
|
4
|
+
enumerable: true,
|
|
5
|
+
configurable: true,
|
|
6
|
+
writable: true,
|
|
7
|
+
value: false
|
|
8
|
+
});
|
|
9
|
+
Object.defineProperty(this, "entries", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: []
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "abortCheck", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
21
|
+
this.abortCheck = options.abortCheck ?? (() => undefined);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Queue an action.
|
|
25
|
+
*
|
|
26
|
+
* @param action Async action to perform.
|
|
27
|
+
* @returns A promise that resolves when all prior added actions and this action have been performed.
|
|
28
|
+
*/
|
|
29
|
+
add(action) {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
const entry = {
|
|
32
|
+
resolve,
|
|
33
|
+
reject,
|
|
34
|
+
action,
|
|
35
|
+
};
|
|
36
|
+
this.entries.push(entry);
|
|
37
|
+
if (!this.busy) {
|
|
38
|
+
void this.processQueue();
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async processQueue() {
|
|
43
|
+
const rejection = this.abortCheck();
|
|
44
|
+
if (rejection) {
|
|
45
|
+
this.clear(rejection);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const entry = this.entries.shift();
|
|
49
|
+
if (!entry) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this.busy = true;
|
|
53
|
+
try {
|
|
54
|
+
entry.resolve(await entry.action());
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
entry.reject(e);
|
|
58
|
+
}
|
|
59
|
+
this.busy = false;
|
|
60
|
+
return this.processQueue();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Skips any queued actions that aren't in progress and rejects their
|
|
64
|
+
* promises with errors created with the supplied function.
|
|
65
|
+
*/
|
|
66
|
+
clear(rejection) {
|
|
67
|
+
const entries = this.entries;
|
|
68
|
+
this.entries = [];
|
|
69
|
+
entries.forEach((e) => {
|
|
70
|
+
e.reject(rejection());
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=promise-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promise-queue.js","sourceRoot":"","sources":["../lib/promise-queue.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,YAAY;IAKvB,YAAY,UAAmB,EAAE;QAJzB;;;;mBAAgB,KAAK;WAAC;QACtB;;;;mBAA6B,EAAE;WAAC;QAChC;;;;;WAA4C;QAGlD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,GAAG,CAAI,MAAwB;QACpC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,KAAK,GAAkB;gBAC3B,OAAO;gBACP,MAAM;gBACN,MAAM;aACP,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,SAAsB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { AccelerometerDataEvent } from "./accelerometer.js";
|
|
2
|
+
import { ButtonEvent } from "./buttons.js";
|
|
2
3
|
import { DeviceConnectionEventMap } from "./device.js";
|
|
3
4
|
export declare class ServiceConnectionEventMap {
|
|
4
5
|
"accelerometerdatachanged": AccelerometerDataEvent;
|
|
6
|
+
"buttonachanged": ButtonEvent;
|
|
7
|
+
"buttonbchanged": ButtonEvent;
|
|
5
8
|
}
|
|
6
9
|
export type CharacteristicDataTarget = EventTarget & {
|
|
7
10
|
value: DataView;
|
package/build/service-events.js
CHANGED
|
@@ -6,6 +6,18 @@ export class ServiceConnectionEventMap {
|
|
|
6
6
|
writable: true,
|
|
7
7
|
value: void 0
|
|
8
8
|
});
|
|
9
|
+
Object.defineProperty(this, "buttonachanged", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
configurable: true,
|
|
12
|
+
writable: true,
|
|
13
|
+
value: void 0
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(this, "buttonbchanged", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true,
|
|
19
|
+
value: void 0
|
|
20
|
+
});
|
|
9
21
|
}
|
|
10
22
|
}
|
|
11
23
|
//# sourceMappingURL=service-events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-events.js","sourceRoot":"","sources":["../lib/service-events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service-events.js","sourceRoot":"","sources":["../lib/service-events.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,yBAAyB;IAAtC;QACE,4BAAA,0BAA0B;;;;;WAAyB;QACnD,4BAAA,gBAAgB;;;;;WAAc;QAC9B,4BAAA,gBAAgB;;;;;WAAc;IAChC,CAAC;CAAA"}
|
|
@@ -14,6 +14,7 @@ export declare class DAPWrapper {
|
|
|
14
14
|
cortexM: CortexM;
|
|
15
15
|
_pageSize: number | undefined;
|
|
16
16
|
_numPages: number | undefined;
|
|
17
|
+
_deviceId: number | undefined;
|
|
17
18
|
private loggedBoardSerialInfo;
|
|
18
19
|
private initialConnectionComplete;
|
|
19
20
|
constructor(device: USBDevice, logging: Logging);
|
|
@@ -25,8 +26,13 @@ export declare class DAPWrapper {
|
|
|
25
26
|
* The number of pages. Throws if we've not connected.
|
|
26
27
|
*/
|
|
27
28
|
get numPages(): number;
|
|
29
|
+
/**
|
|
30
|
+
* The number of pages. Undefined if we've not connected.
|
|
31
|
+
*/
|
|
32
|
+
get deviceId(): number | undefined;
|
|
28
33
|
get boardSerialInfo(): BoardSerialInfo;
|
|
29
34
|
reconnectAsync(): Promise<void>;
|
|
35
|
+
readMem32WaitOnError(register: number): Promise<number>;
|
|
30
36
|
startSerial(listener: (data: string) => void): Promise<void>;
|
|
31
37
|
stopSerial(listener: (data: string) => void): void;
|
|
32
38
|
disconnectAsync(): Promise<void>;
|
|
@@ -41,6 +47,6 @@ export declare class DAPWrapper {
|
|
|
41
47
|
executeAsync(address: number, code: Uint32Array, sp: number, pc: number, lr: number, ...registers: number[]): Promise<void>;
|
|
42
48
|
private waitForHaltCore;
|
|
43
49
|
waitForHalt(timeToWait?: number): Promise<void>;
|
|
44
|
-
|
|
50
|
+
softwareReset(): Promise<void>;
|
|
45
51
|
reset(halt?: boolean): Promise<void>;
|
|
46
52
|
}
|
|
@@ -51,6 +51,12 @@ export class DAPWrapper {
|
|
|
51
51
|
writable: true,
|
|
52
52
|
value: void 0
|
|
53
53
|
});
|
|
54
|
+
Object.defineProperty(this, "_deviceId", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true,
|
|
57
|
+
writable: true,
|
|
58
|
+
value: void 0
|
|
59
|
+
});
|
|
54
60
|
Object.defineProperty(this, "loggedBoardSerialInfo", {
|
|
55
61
|
enumerable: true,
|
|
56
62
|
configurable: true,
|
|
@@ -85,6 +91,12 @@ export class DAPWrapper {
|
|
|
85
91
|
}
|
|
86
92
|
return this._numPages;
|
|
87
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* The number of pages. Undefined if we've not connected.
|
|
96
|
+
*/
|
|
97
|
+
get deviceId() {
|
|
98
|
+
return this._deviceId;
|
|
99
|
+
}
|
|
88
100
|
get boardSerialInfo() {
|
|
89
101
|
return BoardSerialInfo.parse(this.device, this.logging.log.bind(this.logging));
|
|
90
102
|
}
|
|
@@ -121,8 +133,33 @@ export class DAPWrapper {
|
|
|
121
133
|
this.boardSerialInfo.hic,
|
|
122
134
|
});
|
|
123
135
|
}
|
|
124
|
-
|
|
125
|
-
|
|
136
|
+
// https://support.microbit.org/support/solutions/articles/19000067679-how-to-find-the-name-of-your-micro-bit
|
|
137
|
+
// We wait on errors as immediately after flash the micro:bit won't be ready to respond
|
|
138
|
+
this._deviceId = await this.readMem32WaitOnError(FICR.DEVICE_ID_1);
|
|
139
|
+
this._pageSize = await this.readMem32WaitOnError(FICR.CODEPAGESIZE);
|
|
140
|
+
this._numPages = await this.readMem32WaitOnError(FICR.CODESIZE);
|
|
141
|
+
}
|
|
142
|
+
async readMem32WaitOnError(register) {
|
|
143
|
+
let retries = 0;
|
|
144
|
+
let lastError;
|
|
145
|
+
while (retries < 20) {
|
|
146
|
+
try {
|
|
147
|
+
return await this.cortexM.readMem32(register);
|
|
148
|
+
}
|
|
149
|
+
catch (e) {
|
|
150
|
+
if (e instanceof Error) {
|
|
151
|
+
lastError = e;
|
|
152
|
+
if (/^Transfer/.test(e.message)) {
|
|
153
|
+
retries++;
|
|
154
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
throw e;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
throw lastError;
|
|
126
163
|
}
|
|
127
164
|
async startSerial(listener) {
|
|
128
165
|
const currentBaud = await this.daplink.getSerialBaudrate();
|
|
@@ -130,7 +167,7 @@ export class DAPWrapper {
|
|
|
130
167
|
// Changing the baud rate causes a micro:bit reset, so only do it if necessary
|
|
131
168
|
await this.daplink.setSerialBaudrate(115200);
|
|
132
169
|
}
|
|
133
|
-
this.daplink.
|
|
170
|
+
this.daplink.addListener(DAPLink.EVENT_SERIAL_DATA, listener);
|
|
134
171
|
await this.daplink.startSerialRead(1);
|
|
135
172
|
}
|
|
136
173
|
stopSerial(listener) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usb-device-wrapper.js","sourceRoot":"","sources":["../lib/usb-device-wrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usb-device-wrapper.js","sourceRoot":"","sources":["../lib/usb-device-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,9 +38,9 @@
|
|
|
38
38
|
* SOFTWARE.
|
|
39
39
|
*/
|
|
40
40
|
import { Logging } from "./logging.js";
|
|
41
|
-
import { BoardId } from "./board-id.js";
|
|
42
41
|
import { DAPWrapper } from "./usb-device-wrapper.js";
|
|
43
|
-
import
|
|
42
|
+
import MemoryMap from "nrf-intel-hex";
|
|
43
|
+
import { BoardVersion } from "./device.js";
|
|
44
44
|
type ProgressCallback = (n: number, partial: boolean) => void;
|
|
45
45
|
/**
|
|
46
46
|
* Uses a DAPWrapper to flash the micro:bit.
|
|
@@ -50,14 +50,20 @@ type ProgressCallback = (n: number, partial: boolean) => void;
|
|
|
50
50
|
export declare class PartialFlashing {
|
|
51
51
|
private dapwrapper;
|
|
52
52
|
private logging;
|
|
53
|
-
|
|
53
|
+
private boardVersion;
|
|
54
|
+
constructor(dapwrapper: DAPWrapper, logging: Logging, boardVersion: BoardVersion);
|
|
54
55
|
private log;
|
|
55
56
|
private getFlashChecksumsAsync;
|
|
56
57
|
private runFlash;
|
|
57
58
|
private partialFlashPageAsync;
|
|
58
59
|
private partialFlashCoreAsync;
|
|
59
60
|
private partialFlashAsync;
|
|
60
|
-
fullFlashAsync(
|
|
61
|
-
flashAsync(
|
|
61
|
+
fullFlashAsync(data: string | Uint8Array | MemoryMap.default, updateProgress: ProgressCallback): Promise<void>;
|
|
62
|
+
flashAsync(data: string | Uint8Array | MemoryMap.default, updateProgress: ProgressCallback): Promise<boolean>;
|
|
63
|
+
private convertDataToHexString;
|
|
64
|
+
private convertDataToPaddedBytes;
|
|
65
|
+
private hexStringToPaddedBytes;
|
|
66
|
+
private paddedBytesToHexString;
|
|
67
|
+
private memoryMapToPaddedBytes;
|
|
62
68
|
}
|
|
63
69
|
export {};
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
import { DAPLink } from "dapjs";
|
|
47
47
|
import { withTimeout, TimeoutError } from "./async-util.js";
|
|
48
48
|
import { CoreRegister, onlyChanged, pageAlignBlocks, read32FromUInt8Array, } from "./usb-partial-flashing-utils.js";
|
|
49
|
+
import MemoryMap from "nrf-intel-hex";
|
|
49
50
|
// Source code for binaries in can be found at https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/external/sha/source/main.c
|
|
50
51
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L243
|
|
51
52
|
// Update from https://github.com/microsoft/pxt-microbit/commit/a35057717222b8e48335144f497b55e29e9b0f25
|
|
@@ -82,7 +83,7 @@ const stackAddr = 0x20001000;
|
|
|
82
83
|
* Intented to be used for a single flash with a pre-connected DAPWrapper.
|
|
83
84
|
*/
|
|
84
85
|
export class PartialFlashing {
|
|
85
|
-
constructor(dapwrapper, logging) {
|
|
86
|
+
constructor(dapwrapper, logging, boardVersion) {
|
|
86
87
|
Object.defineProperty(this, "dapwrapper", {
|
|
87
88
|
enumerable: true,
|
|
88
89
|
configurable: true,
|
|
@@ -95,6 +96,12 @@ export class PartialFlashing {
|
|
|
95
96
|
writable: true,
|
|
96
97
|
value: logging
|
|
97
98
|
});
|
|
99
|
+
Object.defineProperty(this, "boardVersion", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
configurable: true,
|
|
102
|
+
writable: true,
|
|
103
|
+
value: boardVersion
|
|
104
|
+
});
|
|
98
105
|
}
|
|
99
106
|
log(v) {
|
|
100
107
|
this.logging.log(v);
|
|
@@ -161,8 +168,8 @@ export class PartialFlashing {
|
|
|
161
168
|
// Flash the micro:bit's ROM with the provided image by only copying over the pages that differ.
|
|
162
169
|
// Falls back to a full flash if partial flashing fails.
|
|
163
170
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L335
|
|
164
|
-
async partialFlashAsync(
|
|
165
|
-
const flashBytes =
|
|
171
|
+
async partialFlashAsync(data, updateProgress) {
|
|
172
|
+
const flashBytes = this.convertDataToPaddedBytes(data);
|
|
166
173
|
const checksums = await this.getFlashChecksumsAsync();
|
|
167
174
|
await this.dapwrapper.writeBlockAsync(loadAddr, flashPageBIN);
|
|
168
175
|
let aligned = pageAlignBlocks(flashBytes, 0, this.dapwrapper.pageSize);
|
|
@@ -173,7 +180,7 @@ export class PartialFlashing {
|
|
|
173
180
|
let partial;
|
|
174
181
|
if (aligned.length > totalPages / 2) {
|
|
175
182
|
try {
|
|
176
|
-
await this.fullFlashAsync(
|
|
183
|
+
await this.fullFlashAsync(data, updateProgress);
|
|
177
184
|
partial = false;
|
|
178
185
|
}
|
|
179
186
|
catch (e) {
|
|
@@ -191,7 +198,7 @@ export class PartialFlashing {
|
|
|
191
198
|
catch (e) {
|
|
192
199
|
this.log(e);
|
|
193
200
|
this.log("Partial flash failed, attempting full flash.");
|
|
194
|
-
await this.fullFlashAsync(
|
|
201
|
+
await this.fullFlashAsync(data, updateProgress);
|
|
195
202
|
partial = false;
|
|
196
203
|
}
|
|
197
204
|
}
|
|
@@ -205,14 +212,14 @@ export class PartialFlashing {
|
|
|
205
212
|
return partial;
|
|
206
213
|
}
|
|
207
214
|
// Perform full flash of micro:bit's ROM using daplink.
|
|
208
|
-
async fullFlashAsync(
|
|
215
|
+
async fullFlashAsync(data, updateProgress) {
|
|
209
216
|
this.log("Full flash");
|
|
210
217
|
const fullFlashProgress = (progress) => {
|
|
211
218
|
updateProgress(progress, false);
|
|
212
219
|
};
|
|
213
220
|
this.dapwrapper.daplink.on(DAPLink.EVENT_PROGRESS, fullFlashProgress);
|
|
214
221
|
try {
|
|
215
|
-
|
|
222
|
+
data = this.convertDataToHexString(data);
|
|
216
223
|
await this.dapwrapper.transport.open();
|
|
217
224
|
await this.dapwrapper.daplink.flash(new TextEncoder().encode(data));
|
|
218
225
|
this.logging.event({
|
|
@@ -226,7 +233,7 @@ export class PartialFlashing {
|
|
|
226
233
|
}
|
|
227
234
|
// Flash the micro:bit's ROM with the provided image, resetting the micro:bit first.
|
|
228
235
|
// Drawn from https://github.com/microsoft/pxt-microbit/blob/dec5b8ce72d5c2b4b0b20aafefce7474a6f0c7b2/editor/extension.tsx#L439
|
|
229
|
-
async flashAsync(
|
|
236
|
+
async flashAsync(data, updateProgress) {
|
|
230
237
|
let resetPromise = (async () => {
|
|
231
238
|
// Reset micro:bit to ensure interface responds correctly.
|
|
232
239
|
this.log("Begin reset");
|
|
@@ -243,7 +250,7 @@ export class PartialFlashing {
|
|
|
243
250
|
try {
|
|
244
251
|
await withTimeout(resetPromise, 1000);
|
|
245
252
|
this.log("Begin flashing");
|
|
246
|
-
return await this.partialFlashAsync(
|
|
253
|
+
return await this.partialFlashAsync(data, updateProgress);
|
|
247
254
|
}
|
|
248
255
|
catch (e) {
|
|
249
256
|
if (e instanceof TimeoutError) {
|
|
@@ -253,7 +260,7 @@ export class PartialFlashing {
|
|
|
253
260
|
type: "WebUSB-info",
|
|
254
261
|
message: "flash-failed/attempting-full-flash",
|
|
255
262
|
});
|
|
256
|
-
await this.fullFlashAsync(
|
|
263
|
+
await this.fullFlashAsync(data, updateProgress);
|
|
257
264
|
return false;
|
|
258
265
|
}
|
|
259
266
|
else {
|
|
@@ -266,5 +273,41 @@ export class PartialFlashing {
|
|
|
266
273
|
await this.dapwrapper.disconnectAsync();
|
|
267
274
|
}
|
|
268
275
|
}
|
|
276
|
+
convertDataToHexString(data) {
|
|
277
|
+
if (typeof data === "string") {
|
|
278
|
+
return data;
|
|
279
|
+
}
|
|
280
|
+
if (data instanceof Uint8Array) {
|
|
281
|
+
return this.paddedBytesToHexString(data);
|
|
282
|
+
}
|
|
283
|
+
return data.asHexString();
|
|
284
|
+
}
|
|
285
|
+
convertDataToPaddedBytes(data) {
|
|
286
|
+
if (data instanceof Uint8Array) {
|
|
287
|
+
return data;
|
|
288
|
+
}
|
|
289
|
+
if (typeof data === "string") {
|
|
290
|
+
return this.hexStringToPaddedBytes(data);
|
|
291
|
+
}
|
|
292
|
+
return this.memoryMapToPaddedBytes(data);
|
|
293
|
+
}
|
|
294
|
+
hexStringToPaddedBytes(hex) {
|
|
295
|
+
// Cludge for a packaging issue
|
|
296
|
+
const fromHex = MemoryMap.fromHex ?? MemoryMap.default.fromHex;
|
|
297
|
+
return this.memoryMapToPaddedBytes(fromHex(hex));
|
|
298
|
+
}
|
|
299
|
+
paddedBytesToHexString(data) {
|
|
300
|
+
// Cludge for a packaging issue
|
|
301
|
+
const fromPaddedUint8Array = MemoryMap.fromPaddedUint8Array ??
|
|
302
|
+
MemoryMap.default.fromPaddedUint8Array;
|
|
303
|
+
return fromPaddedUint8Array(data).asHexString();
|
|
304
|
+
}
|
|
305
|
+
memoryMapToPaddedBytes(memoryMap) {
|
|
306
|
+
const flashSize = {
|
|
307
|
+
V1: 256 * 1024,
|
|
308
|
+
V2: 512 * 1024,
|
|
309
|
+
}[this.boardVersion];
|
|
310
|
+
return memoryMap.slicePad(0, flashSize);
|
|
311
|
+
}
|
|
269
312
|
}
|
|
270
313
|
//# sourceMappingURL=usb-partial-flashing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usb-partial-flashing.js","sourceRoot":"","sources":["../lib/usb-partial-flashing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"usb-partial-flashing.js","sourceRoot":"","sources":["../lib/usb-partial-flashing.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,26 +3,39 @@
|
|
|
3
3
|
*
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { BoardVersion, ConnectionStatus, DeviceConnection, DeviceConnectionEventMap } from "./device.js";
|
|
7
|
+
import { TypedEventTarget } from "./events.js";
|
|
7
8
|
import { Logging } from "./logging.js";
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
import { ServiceConnectionEventMap } from "./service-events.js";
|
|
10
|
+
import { MicrobitWebUSBConnection } from "./usb.js";
|
|
11
|
+
export interface MicrobitRadioBridgeConnectionOptions {
|
|
12
|
+
logging: Logging;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Wraps around a USB connection to implement a subset of services over a serial protocol.
|
|
16
|
+
*
|
|
17
|
+
* When it connects/disconnects it affects the delegate connection.
|
|
18
|
+
*/
|
|
19
|
+
export declare class MicrobitRadioBridgeConnection extends TypedEventTarget<DeviceConnectionEventMap & ServiceConnectionEventMap> implements DeviceConnection {
|
|
20
|
+
private delegate;
|
|
21
|
+
status: ConnectionStatus;
|
|
10
22
|
private logging;
|
|
23
|
+
private serialSession;
|
|
11
24
|
private remoteDeviceId;
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
25
|
+
private disconnectPromise;
|
|
26
|
+
private serialSessionOpen;
|
|
27
|
+
private ignoreDelegateStatus;
|
|
28
|
+
private delegateStatusListener;
|
|
29
|
+
constructor(delegate: MicrobitWebUSBConnection, options?: MicrobitRadioBridgeConnectionOptions);
|
|
30
|
+
getBoardVersion(): BoardVersion | undefined;
|
|
31
|
+
serialWrite(data: string): Promise<void>;
|
|
32
|
+
initialize(): Promise<void>;
|
|
33
|
+
dispose(): void;
|
|
34
|
+
clearDevice(): void;
|
|
35
|
+
setRemoteDeviceId(remoteDeviceId: number): void;
|
|
36
|
+
connect(): Promise<ConnectionStatus>;
|
|
20
37
|
disconnect(): Promise<void>;
|
|
21
|
-
private
|
|
22
|
-
private
|
|
23
|
-
|
|
24
|
-
reconnect(finalAttempt?: boolean): Promise<void>;
|
|
25
|
-
private sendCmdWaitResponse;
|
|
26
|
-
private handshake;
|
|
38
|
+
private log;
|
|
39
|
+
private setStatus;
|
|
40
|
+
private statusFromDelegate;
|
|
27
41
|
}
|
|
28
|
-
export declare const startSerialConnection: (logging: Logging, usb: MicrobitWebUSBConnection, remoteDeviceId: number) => Promise<MicrobitRadioBridgeConnection | undefined>;
|