@microbit/microbit-connection 0.0.0-tab.change.177 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +94 -5
- package/build/cjs/accelerometer-service.js +106 -0
- package/build/cjs/accelerometer-service.js.map +1 -0
- package/build/cjs/accelerometer.js +16 -0
- package/build/cjs/accelerometer.js.map +1 -0
- package/build/cjs/async-util.js +27 -0
- package/build/cjs/async-util.js.map +1 -0
- package/build/{bluetooth-device-wrapper.d.ts → cjs/bluetooth-device-wrapper.d.ts} +7 -1
- package/build/cjs/bluetooth-device-wrapper.js +467 -0
- package/build/cjs/bluetooth-device-wrapper.js.map +1 -0
- package/build/cjs/bluetooth-profile.js +86 -0
- package/build/cjs/bluetooth-profile.js.map +1 -0
- package/build/cjs/bluetooth.d.ts +108 -0
- package/build/cjs/bluetooth.js +272 -0
- package/build/cjs/bluetooth.js.map +1 -0
- package/build/cjs/board-id.js +81 -0
- package/build/cjs/board-id.js.map +1 -0
- package/build/cjs/board-serial-info.js +51 -0
- package/build/cjs/board-serial-info.js.map +1 -0
- package/build/cjs/button-service.js +80 -0
- package/build/cjs/button-service.js.map +1 -0
- package/build/cjs/buttons.js +22 -0
- package/build/cjs/buttons.js.map +1 -0
- package/build/cjs/constants.js +73 -0
- package/build/cjs/constants.js.map +1 -0
- package/build/{device.d.ts → cjs/device.d.ts} +6 -31
- package/build/cjs/device.js +133 -0
- package/build/cjs/device.js.map +1 -0
- package/build/{events.d.ts → cjs/events.d.ts} +1 -2
- package/build/cjs/events.js +109 -0
- package/build/cjs/events.js.map +1 -0
- package/build/cjs/hex-flash-data-source.js +26 -0
- package/build/cjs/hex-flash-data-source.js.map +1 -0
- package/build/cjs/index.d.ts +17 -0
- package/build/cjs/index.js +36 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/led-service.js +120 -0
- package/build/{led-service.js.map → cjs/led-service.js.map} +1 -1
- package/build/cjs/led.js +3 -0
- package/build/cjs/led.js.map +1 -0
- package/build/{logging.d.ts → cjs/logging.d.ts} +3 -3
- package/build/cjs/logging.js +16 -0
- package/build/cjs/logging.js.map +1 -0
- package/build/cjs/magnetometer-service.d.ts +22 -0
- package/build/cjs/magnetometer-service.js +129 -0
- package/build/cjs/magnetometer-service.js.map +1 -0
- package/build/cjs/magnetometer.d.ts +9 -0
- package/build/cjs/magnetometer.js +16 -0
- package/build/cjs/magnetometer.js.map +1 -0
- package/build/cjs/package.json +1 -0
- package/build/cjs/promise-queue.js +78 -0
- package/build/cjs/promise-queue.js.map +1 -0
- package/build/cjs/serial-events.d.ts +20 -0
- package/build/cjs/serial-events.js +69 -0
- package/build/cjs/serial-events.js.map +1 -0
- package/build/{service-events.d.ts → cjs/service-events.d.ts} +4 -0
- package/build/cjs/service-events.js +39 -0
- package/build/cjs/service-events.js.map +1 -0
- package/build/cjs/setupTests.js.map +1 -0
- package/build/cjs/uart-service.d.ts +13 -0
- package/build/cjs/uart-service.js +76 -0
- package/build/cjs/uart-service.js.map +1 -0
- package/build/cjs/uart.d.ts +4 -0
- package/build/cjs/uart.js +16 -0
- package/build/cjs/uart.js.map +1 -0
- package/build/{usb-device-wrapper.d.ts → cjs/usb-device-wrapper.d.ts} +1 -6
- package/build/cjs/usb-device-wrapper.js +412 -0
- package/build/cjs/usb-device-wrapper.js.map +1 -0
- package/build/cjs/usb-partial-flashing-utils.js +133 -0
- package/build/cjs/usb-partial-flashing-utils.js.map +1 -0
- package/build/{usb-partial-flashing.d.ts → cjs/usb-partial-flashing.d.ts} +3 -3
- package/build/cjs/usb-partial-flashing.js +341 -0
- package/build/cjs/usb-partial-flashing.js.map +1 -0
- package/build/cjs/usb-radio-bridge.d.ts +24 -0
- package/build/cjs/usb-radio-bridge.js +516 -0
- package/build/cjs/usb-radio-bridge.js.map +1 -0
- package/build/cjs/usb-serial-protocol.js +183 -0
- package/build/cjs/usb-serial-protocol.js.map +1 -0
- package/build/cjs/usb.d.ts +64 -0
- package/build/cjs/usb.js +647 -0
- package/build/cjs/usb.js.map +1 -0
- package/build/esm/accelerometer-service.d.ts +18 -0
- package/build/{accelerometer-service.js → esm/accelerometer-service.js} +1 -1
- package/build/esm/accelerometer-service.js.map +1 -0
- package/build/esm/accelerometer.d.ts +9 -0
- package/build/esm/accelerometer.js.map +1 -0
- package/build/esm/async-util.d.ts +13 -0
- package/build/esm/async-util.js.map +1 -0
- package/build/esm/bluetooth-device-wrapper.d.ts +63 -0
- package/build/{bluetooth-device-wrapper.js → esm/bluetooth-device-wrapper.js} +39 -10
- package/build/esm/bluetooth-device-wrapper.js.map +1 -0
- package/build/esm/bluetooth-profile.d.ts +139 -0
- package/build/esm/bluetooth-profile.js.map +1 -0
- package/build/esm/bluetooth.d.ts +108 -0
- package/build/{bluetooth.js → esm/bluetooth.js} +29 -4
- package/build/esm/bluetooth.js.map +1 -0
- package/build/esm/board-id.d.ts +36 -0
- package/build/esm/board-id.js.map +1 -0
- package/build/esm/board-serial-info.d.ts +14 -0
- package/build/esm/board-serial-info.js.map +1 -0
- package/build/esm/button-service.d.ts +13 -0
- package/build/esm/button-service.js.map +1 -0
- package/build/esm/buttons.d.ts +10 -0
- package/build/esm/buttons.js.map +1 -0
- package/build/esm/constants.d.ts +48 -0
- package/build/esm/constants.js.map +1 -0
- package/build/esm/device.d.ts +181 -0
- package/build/{device.js → esm/device.js} +1 -57
- package/build/esm/device.js.map +1 -0
- package/build/esm/events.d.ts +110 -0
- package/build/esm/events.js.map +1 -0
- package/build/esm/hex-flash-data-source.d.ts +7 -0
- package/build/esm/hex-flash-data-source.js.map +1 -0
- package/build/esm/index.d.ts +17 -0
- package/build/esm/index.js +12 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/led-service.d.ts +20 -0
- package/build/esm/led-service.js.map +1 -0
- package/build/esm/led.d.ts +6 -0
- package/build/esm/led.js.map +1 -0
- package/build/esm/logging.d.ts +21 -0
- package/build/esm/logging.js.map +1 -0
- package/build/esm/magnetometer-service.d.ts +22 -0
- package/build/esm/magnetometer-service.js +125 -0
- package/build/esm/magnetometer-service.js.map +1 -0
- package/build/esm/magnetometer.d.ts +9 -0
- package/build/esm/magnetometer.js +12 -0
- package/build/esm/magnetometer.js.map +1 -0
- package/build/esm/package.json +1 -0
- package/build/esm/promise-queue.d.ts +27 -0
- package/build/esm/promise-queue.js.map +1 -0
- package/build/esm/serial-events.d.ts +20 -0
- package/build/esm/serial-events.js +61 -0
- package/build/esm/serial-events.js.map +1 -0
- package/build/esm/service-events.d.ts +17 -0
- package/build/{service-events.js → esm/service-events.js} +12 -0
- package/build/esm/service-events.js.map +1 -0
- package/build/esm/setupTests.d.ts +6 -0
- package/build/{setupTests.js.map → esm/setupTests.js.map} +1 -1
- package/build/esm/uart-service.d.ts +13 -0
- package/build/esm/uart-service.js +72 -0
- package/build/esm/uart-service.js.map +1 -0
- package/build/esm/uart.d.ts +4 -0
- package/build/esm/uart.js +12 -0
- package/build/esm/uart.js.map +1 -0
- package/build/esm/usb-device-wrapper.d.ts +47 -0
- package/build/{usb-device-wrapper.js → esm/usb-device-wrapper.js} +10 -9
- package/build/esm/usb-device-wrapper.js.map +1 -0
- package/build/esm/usb-partial-flashing-utils.d.ts +17 -0
- package/build/esm/usb-partial-flashing-utils.js.map +1 -0
- package/build/esm/usb-partial-flashing.d.ts +69 -0
- package/build/{usb-partial-flashing.js → esm/usb-partial-flashing.js} +8 -10
- package/build/esm/usb-partial-flashing.js.map +1 -0
- package/build/esm/usb-radio-bridge.d.ts +24 -0
- package/build/{usb-radio-bridge.js → esm/usb-radio-bridge.js} +11 -4
- package/build/esm/usb-radio-bridge.js.map +1 -0
- package/build/esm/usb-serial-protocol.d.ts +66 -0
- package/build/esm/usb-serial-protocol.js.map +1 -0
- package/build/esm/usb.d.ts +64 -0
- package/build/{usb.js → esm/usb.js} +228 -35
- package/build/esm/usb.js.map +1 -0
- package/package.json +21 -8
- package/typedoc.json +14 -0
- package/build/accelerometer-service.js.map +0 -1
- package/build/accelerometer.js.map +0 -1
- package/build/async-util.js.map +0 -1
- package/build/bluetooth-device-wrapper.js.map +0 -1
- package/build/bluetooth-profile.js.map +0 -1
- package/build/bluetooth.d.ts +0 -54
- package/build/bluetooth.js.map +0 -1
- package/build/board-id.js.map +0 -1
- package/build/board-serial-info.js.map +0 -1
- package/build/button-service.js.map +0 -1
- package/build/buttons.js.map +0 -1
- package/build/constants.js.map +0 -1
- package/build/device.js.map +0 -1
- package/build/events.js.map +0 -1
- package/build/hex-flash-data-source.js.map +0 -1
- package/build/index.d.ts +0 -10
- package/build/index.js +0 -8
- package/build/index.js.map +0 -1
- package/build/led.js.map +0 -1
- package/build/logging.js.map +0 -1
- package/build/promise-queue.js.map +0 -1
- package/build/service-events.js.map +0 -1
- package/build/usb-device-wrapper.js.map +0 -1
- package/build/usb-partial-flashing-utils.js.map +0 -1
- package/build/usb-partial-flashing.js.map +0 -1
- package/build/usb-radio-bridge.d.ts +0 -41
- package/build/usb-radio-bridge.js.map +0 -1
- package/build/usb-serial-protocol.js.map +0 -1
- package/build/usb.d.ts +0 -54
- package/build/usb.js.map +0 -1
- package/vite.config.ts +0 -34
- /package/build/{accelerometer-service.d.ts → cjs/accelerometer-service.d.ts} +0 -0
- /package/build/{accelerometer.d.ts → cjs/accelerometer.d.ts} +0 -0
- /package/build/{async-util.d.ts → cjs/async-util.d.ts} +0 -0
- /package/build/{bluetooth-profile.d.ts → cjs/bluetooth-profile.d.ts} +0 -0
- /package/build/{board-id.d.ts → cjs/board-id.d.ts} +0 -0
- /package/build/{board-serial-info.d.ts → cjs/board-serial-info.d.ts} +0 -0
- /package/build/{button-service.d.ts → cjs/button-service.d.ts} +0 -0
- /package/build/{buttons.d.ts → cjs/buttons.d.ts} +0 -0
- /package/build/{constants.d.ts → cjs/constants.d.ts} +0 -0
- /package/build/{hex-flash-data-source.d.ts → cjs/hex-flash-data-source.d.ts} +0 -0
- /package/build/{led-service.d.ts → cjs/led-service.d.ts} +0 -0
- /package/build/{led.d.ts → cjs/led.d.ts} +0 -0
- /package/build/{promise-queue.d.ts → cjs/promise-queue.d.ts} +0 -0
- /package/build/{setupTests.d.ts → cjs/setupTests.d.ts} +0 -0
- /package/build/{usb-partial-flashing-utils.d.ts → cjs/usb-partial-flashing-utils.d.ts} +0 -0
- /package/build/{usb-serial-protocol.d.ts → cjs/usb-serial-protocol.d.ts} +0 -0
- /package/build/{accelerometer.js → esm/accelerometer.js} +0 -0
- /package/build/{async-util.js → esm/async-util.js} +0 -0
- /package/build/{bluetooth-profile.js → esm/bluetooth-profile.js} +0 -0
- /package/build/{board-id.js → esm/board-id.js} +0 -0
- /package/build/{board-serial-info.js → esm/board-serial-info.js} +0 -0
- /package/build/{button-service.js → esm/button-service.js} +0 -0
- /package/build/{buttons.js → esm/buttons.js} +0 -0
- /package/build/{constants.js → esm/constants.js} +0 -0
- /package/build/{events.js → esm/events.js} +0 -0
- /package/build/{hex-flash-data-source.js → esm/hex-flash-data-source.js} +0 -0
- /package/build/{led-service.js → esm/led-service.js} +0 -0
- /package/build/{led.js → esm/led.js} +0 -0
- /package/build/{logging.js → esm/logging.js} +0 -0
- /package/build/{promise-queue.js → esm/promise-queue.js} +0 -0
- /package/build/{usb-partial-flashing-utils.js → esm/usb-partial-flashing-utils.js} +0 -0
- /package/build/{usb-serial-protocol.js → esm/usb-serial-protocol.js} +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Service } from "./bluetooth-device-wrapper.js";
|
|
2
|
+
import { TypedServiceEvent, TypedServiceEventDispatcher } from "./service-events.js";
|
|
3
|
+
export declare class ButtonService implements Service {
|
|
4
|
+
private buttonACharacteristic;
|
|
5
|
+
private buttonBCharacteristic;
|
|
6
|
+
private dispatchTypedEvent;
|
|
7
|
+
constructor(buttonACharacteristic: BluetoothRemoteGATTCharacteristic, buttonBCharacteristic: BluetoothRemoteGATTCharacteristic, dispatchTypedEvent: TypedServiceEventDispatcher);
|
|
8
|
+
static createService(gattServer: BluetoothRemoteGATTServer, dispatcher: TypedServiceEventDispatcher, queueGattOperation: <R>(action: () => Promise<R>) => Promise<R>, listenerInit: boolean): Promise<ButtonService | undefined>;
|
|
9
|
+
private dataViewToButtonState;
|
|
10
|
+
startNotifications(type: TypedServiceEvent): Promise<void>;
|
|
11
|
+
stopNotifications(type: TypedServiceEvent): Promise<void>;
|
|
12
|
+
private characteristicForEvent;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-service.js","sourceRoot":"","sources":["../../lib/button-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare enum ButtonState {
|
|
2
|
+
NotPressed = 0,
|
|
3
|
+
ShortPress = 1,
|
|
4
|
+
LongPress = 2
|
|
5
|
+
}
|
|
6
|
+
export type ButtonEventType = "buttonachanged" | "buttonbchanged";
|
|
7
|
+
export declare class ButtonEvent extends Event {
|
|
8
|
+
readonly state: ButtonState;
|
|
9
|
+
constructor(type: ButtonEventType, state: ButtonState);
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buttons.js","sourceRoot":"","sources":["../../lib/buttons.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,yDAAc,CAAA;IACd,yDAAc,CAAA;IACd,uDAAa,CAAA;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAID,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YACE,IAAqB,EACL,KAAkB;QAElC,KAAK,CAAC,IAAI,CAAC,CAAC;QAFZ;;;;mBAAgB,KAAK;WAAa;IAGpC,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export declare const FICR: {
|
|
7
|
+
CODEPAGESIZE: number;
|
|
8
|
+
CODESIZE: number;
|
|
9
|
+
DEVICE_ID_1: number;
|
|
10
|
+
};
|
|
11
|
+
export declare const DapCmd: {
|
|
12
|
+
DAP_INFO: number;
|
|
13
|
+
DAP_CONNECT: number;
|
|
14
|
+
DAP_DISCONNECT: number;
|
|
15
|
+
DAP_TRANSFER: number;
|
|
16
|
+
DAP_TRANSFER_BLOCK: number;
|
|
17
|
+
};
|
|
18
|
+
export declare const Csw: {
|
|
19
|
+
CSW_SIZE: number;
|
|
20
|
+
CSW_SIZE32: number;
|
|
21
|
+
CSW_ADDRINC: number;
|
|
22
|
+
CSW_SADDRINC: number;
|
|
23
|
+
CSW_DBGSTAT: number;
|
|
24
|
+
CSW_HPROT: number;
|
|
25
|
+
CSW_MSTRDBG: number;
|
|
26
|
+
CSW_RESERVED: number;
|
|
27
|
+
CSW_VALUE: number;
|
|
28
|
+
};
|
|
29
|
+
export declare const DapVal: {
|
|
30
|
+
AP_ACC: number;
|
|
31
|
+
READ: number;
|
|
32
|
+
WRITE: number;
|
|
33
|
+
};
|
|
34
|
+
export declare const ApReg: {
|
|
35
|
+
CSW: number;
|
|
36
|
+
TAR: number;
|
|
37
|
+
DRW: number;
|
|
38
|
+
};
|
|
39
|
+
export declare const CortexSpecialReg: {
|
|
40
|
+
DEMCR: number;
|
|
41
|
+
DEMCR_VC_CORERESET: number;
|
|
42
|
+
CPUID: number;
|
|
43
|
+
DHCSR: number;
|
|
44
|
+
S_RESET_ST: number;
|
|
45
|
+
NVIC_AIRCR: number;
|
|
46
|
+
NVIC_AIRCR_VECTKEY: number;
|
|
47
|
+
NVIC_AIRCR_SYSRESETREQ: number;
|
|
48
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sGAAsG;AACtG,yGAAyG;AAEzG,sGAAsG;AACtG,kEAAkE;AAClE,0EAA0E;AAE1E,iBAAiB;AACjB,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,YAAY,EAAE,UAAU,GAAG,IAAI;IAC/B,QAAQ,EAAE,UAAU,GAAG,IAAI;IAE3B,WAAW,EAAE,UAAU,GAAG,IAAI;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,IAAI;IACxB,aAAa;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,WAAW,EAAE,UAAU;IACvB,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,UAAU;IACxB,SAAS,EAAE,CAAC,CAAC,EAAE,YAAY;IAC3B,aAAa;CACd,CAAC;AACF,GAAG,CAAC,SAAS;IACX,GAAG,CAAC,YAAY;QAChB,GAAG,CAAC,WAAW;QACf,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,WAAW;QACf,GAAG,CAAC,YAAY,CAAC;AAEnB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,IAAI,CAAC;IACZ,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,QAAQ;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,+CAA+C;IAC/C,KAAK,EAAE,UAAU;IACjB,gDAAgD;IAChD,kBAAkB,EAAE,CAAC,IAAI,CAAC;IAE1B,iBAAiB;IACjB,KAAK,EAAE,UAAU;IAEjB,4CAA4C;IAC5C,KAAK,EAAE,UAAU;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE;IAEnB,UAAU,EAAE,UAAU;IACtB,kBAAkB,EAAE,KAAK,IAAI,EAAE;IAC/B,sBAAsB,EAAE,CAAC,IAAI,CAAC;IAE9B,aAAa;CACd,CAAC"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { TypedEventTarget, ValueIsEvent } from "./events.js";
|
|
7
|
+
/**
|
|
8
|
+
* Specific identified error types.
|
|
9
|
+
*
|
|
10
|
+
* New members may be added over time.
|
|
11
|
+
*/
|
|
12
|
+
export type DeviceErrorCode =
|
|
13
|
+
/**
|
|
14
|
+
* Device not selected, e.g. because the user cancelled the dialog.
|
|
15
|
+
*/
|
|
16
|
+
"no-device-selected"
|
|
17
|
+
/**
|
|
18
|
+
* Device not found, perhaps because it doesn't have new enough firmware (for V1).
|
|
19
|
+
*/
|
|
20
|
+
| "update-req"
|
|
21
|
+
/**
|
|
22
|
+
* Unable to claim the interface, usually because it's in use in another tab/window.
|
|
23
|
+
*/
|
|
24
|
+
| "clear-connect"
|
|
25
|
+
/**
|
|
26
|
+
* The device was found to be disconnected.
|
|
27
|
+
*/
|
|
28
|
+
| "device-disconnected"
|
|
29
|
+
/**
|
|
30
|
+
* A communication timeout occurred.
|
|
31
|
+
*/
|
|
32
|
+
| "timeout-error"
|
|
33
|
+
/**
|
|
34
|
+
* This is the fallback error case suggesting that the user reconnects their device.
|
|
35
|
+
*/
|
|
36
|
+
| "reconnect-microbit"
|
|
37
|
+
/**
|
|
38
|
+
* Error occured during serial or bluetooth communication.
|
|
39
|
+
*/
|
|
40
|
+
| "background-comms-error"
|
|
41
|
+
/**
|
|
42
|
+
* Bluetooth service is missing on device.
|
|
43
|
+
*/
|
|
44
|
+
| "service-missing";
|
|
45
|
+
/**
|
|
46
|
+
* Error type used for all interactions with this module.
|
|
47
|
+
*
|
|
48
|
+
* The code indicates the error type and may be suitable for providing
|
|
49
|
+
* translated error messages.
|
|
50
|
+
*
|
|
51
|
+
* The message is the underlying message text and will usually be in
|
|
52
|
+
* English.
|
|
53
|
+
*/
|
|
54
|
+
export declare class DeviceError extends Error {
|
|
55
|
+
code: DeviceErrorCode;
|
|
56
|
+
constructor({ code, message }: {
|
|
57
|
+
code: DeviceErrorCode;
|
|
58
|
+
message?: string;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Tracks connection status,
|
|
63
|
+
*/
|
|
64
|
+
export declare enum ConnectionStatus {
|
|
65
|
+
/**
|
|
66
|
+
* Determining whether the connection type is supported requires
|
|
67
|
+
* initialize() to complete.
|
|
68
|
+
*/
|
|
69
|
+
SUPPORT_NOT_KNOWN = "SUPPORT_NOT_KNOWN",
|
|
70
|
+
/**
|
|
71
|
+
* Not supported.
|
|
72
|
+
*/
|
|
73
|
+
NOT_SUPPORTED = "NOT_SUPPORTED",
|
|
74
|
+
/**
|
|
75
|
+
* Supported but no device available.
|
|
76
|
+
*
|
|
77
|
+
* This will be the case even when a device is physically connected
|
|
78
|
+
* but has not been connected via the browser security UI.
|
|
79
|
+
*/
|
|
80
|
+
NO_AUTHORIZED_DEVICE = "NO_AUTHORIZED_DEVICE",
|
|
81
|
+
/**
|
|
82
|
+
* Authorized device available but we haven't connected to it.
|
|
83
|
+
*/
|
|
84
|
+
DISCONNECTED = "DISCONNECTED",
|
|
85
|
+
/**
|
|
86
|
+
* Connected.
|
|
87
|
+
*/
|
|
88
|
+
CONNECTED = "CONNECTED",
|
|
89
|
+
/**
|
|
90
|
+
* Connecting.
|
|
91
|
+
*/
|
|
92
|
+
CONNECTING = "CONNECTING",
|
|
93
|
+
/**
|
|
94
|
+
* Reconnecting. When there is unexpected disruption in the connection,
|
|
95
|
+
* a reconnection is attempted.
|
|
96
|
+
*/
|
|
97
|
+
RECONNECTING = "RECONNECTING"
|
|
98
|
+
}
|
|
99
|
+
export interface FlashOptions {
|
|
100
|
+
/**
|
|
101
|
+
* True to use a partial flash where possible, false to force a full flash.
|
|
102
|
+
*/
|
|
103
|
+
partial: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* A progress callback. Called with undefined when the process is complete or has failed.
|
|
106
|
+
*
|
|
107
|
+
* Requesting a partial flash doesn't guarantee one is performed. Partial flashes are avoided
|
|
108
|
+
* if too many blocks have changed and failed partial flashes are retried as full flashes.
|
|
109
|
+
* The partial parameter reports the flash type currently in progress.
|
|
110
|
+
*/
|
|
111
|
+
progress: (percentage: number | undefined, partial: boolean) => void;
|
|
112
|
+
/**
|
|
113
|
+
* Smallest possible progress increment to limit callback rate.
|
|
114
|
+
*/
|
|
115
|
+
minimumProgressIncrement?: number;
|
|
116
|
+
}
|
|
117
|
+
export declare class FlashDataError extends Error {
|
|
118
|
+
}
|
|
119
|
+
export type FlashDataSource = (boardVersion: BoardVersion) => Promise<string | Uint8Array>;
|
|
120
|
+
export type BoardVersion = "V1" | "V2";
|
|
121
|
+
export declare class ConnectionStatusEvent extends Event {
|
|
122
|
+
readonly status: ConnectionStatus;
|
|
123
|
+
constructor(status: ConnectionStatus);
|
|
124
|
+
}
|
|
125
|
+
export declare class BeforeRequestDevice extends Event {
|
|
126
|
+
constructor();
|
|
127
|
+
}
|
|
128
|
+
export declare class AfterRequestDevice extends Event {
|
|
129
|
+
constructor();
|
|
130
|
+
}
|
|
131
|
+
export declare class BackgroundErrorEvent extends Event {
|
|
132
|
+
readonly errorMessage: string;
|
|
133
|
+
constructor(errorMessage: string);
|
|
134
|
+
}
|
|
135
|
+
export declare class DeviceConnectionEventMap {
|
|
136
|
+
"status": ConnectionStatusEvent;
|
|
137
|
+
"backgrounderror": BackgroundErrorEvent;
|
|
138
|
+
"beforerequestdevice": Event;
|
|
139
|
+
"afterrequestdevice": Event;
|
|
140
|
+
}
|
|
141
|
+
export interface DeviceConnection<M extends ValueIsEvent<M>> extends TypedEventTarget<DeviceConnectionEventMap & M> {
|
|
142
|
+
status: ConnectionStatus;
|
|
143
|
+
/**
|
|
144
|
+
* Initializes the device.
|
|
145
|
+
*/
|
|
146
|
+
initialize(): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Removes all listeners.
|
|
149
|
+
*/
|
|
150
|
+
dispose(): void;
|
|
151
|
+
/**
|
|
152
|
+
* Connects to a currently paired device or requests pairing.
|
|
153
|
+
* Throws on error.
|
|
154
|
+
*
|
|
155
|
+
* @returns the final connection status.
|
|
156
|
+
*/
|
|
157
|
+
connect(): Promise<ConnectionStatus>;
|
|
158
|
+
/**
|
|
159
|
+
* Get the board version.
|
|
160
|
+
*
|
|
161
|
+
* @returns the board version or undefined if there is no connection.
|
|
162
|
+
*/
|
|
163
|
+
getBoardVersion(): BoardVersion | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* Disconnect from the device.
|
|
166
|
+
*/
|
|
167
|
+
disconnect(): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Write serial data to the device.
|
|
170
|
+
*
|
|
171
|
+
* Does nothing if there is no connection.
|
|
172
|
+
*
|
|
173
|
+
* @param data The data to write.
|
|
174
|
+
* @returns A promise that resolves when the write is complete.
|
|
175
|
+
*/
|
|
176
|
+
serialWrite(data: string): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Clear device to enable chooseDevice.
|
|
179
|
+
*/
|
|
180
|
+
clearDevice(): Promise<void> | void;
|
|
181
|
+
}
|
|
@@ -71,38 +71,6 @@ export class ConnectionStatusEvent extends Event {
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
export class SerialDataEvent extends Event {
|
|
75
|
-
constructor(data) {
|
|
76
|
-
super("serialdata");
|
|
77
|
-
Object.defineProperty(this, "data", {
|
|
78
|
-
enumerable: true,
|
|
79
|
-
configurable: true,
|
|
80
|
-
writable: true,
|
|
81
|
-
value: data
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
export class SerialResetEvent extends Event {
|
|
86
|
-
constructor() {
|
|
87
|
-
super("serialreset");
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
export class SerialErrorEvent extends Event {
|
|
91
|
-
constructor(error) {
|
|
92
|
-
super("serialerror");
|
|
93
|
-
Object.defineProperty(this, "error", {
|
|
94
|
-
enumerable: true,
|
|
95
|
-
configurable: true,
|
|
96
|
-
writable: true,
|
|
97
|
-
value: error
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
export class FlashEvent extends Event {
|
|
102
|
-
constructor() {
|
|
103
|
-
super("flash");
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
74
|
export class BeforeRequestDevice extends Event {
|
|
107
75
|
constructor() {
|
|
108
76
|
super("beforerequestdevice");
|
|
@@ -132,25 +100,7 @@ export class DeviceConnectionEventMap {
|
|
|
132
100
|
writable: true,
|
|
133
101
|
value: void 0
|
|
134
102
|
});
|
|
135
|
-
Object.defineProperty(this, "
|
|
136
|
-
enumerable: true,
|
|
137
|
-
configurable: true,
|
|
138
|
-
writable: true,
|
|
139
|
-
value: void 0
|
|
140
|
-
});
|
|
141
|
-
Object.defineProperty(this, "serialreset", {
|
|
142
|
-
enumerable: true,
|
|
143
|
-
configurable: true,
|
|
144
|
-
writable: true,
|
|
145
|
-
value: void 0
|
|
146
|
-
});
|
|
147
|
-
Object.defineProperty(this, "serialerror", {
|
|
148
|
-
enumerable: true,
|
|
149
|
-
configurable: true,
|
|
150
|
-
writable: true,
|
|
151
|
-
value: void 0
|
|
152
|
-
});
|
|
153
|
-
Object.defineProperty(this, "flash", {
|
|
103
|
+
Object.defineProperty(this, "backgrounderror", {
|
|
154
104
|
enumerable: true,
|
|
155
105
|
configurable: true,
|
|
156
106
|
writable: true,
|
|
@@ -168,12 +118,6 @@ export class DeviceConnectionEventMap {
|
|
|
168
118
|
writable: true,
|
|
169
119
|
value: void 0
|
|
170
120
|
});
|
|
171
|
-
Object.defineProperty(this, "backgrounderror", {
|
|
172
|
-
enumerable: true,
|
|
173
|
-
configurable: true,
|
|
174
|
-
writable: true,
|
|
175
|
-
value: void 0
|
|
176
|
-
});
|
|
177
121
|
}
|
|
178
122
|
}
|
|
179
123
|
//# sourceMappingURL=device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device.js","sourceRoot":"","sources":["../../lib/device.ts"],"names":[],"mappings":"AA8CA;;;;;;;;GAQG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAEpC,YAAY,EAAE,IAAI,EAAE,OAAO,EAA+C;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QAFjB;;;;;WAAsB;QAGpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,gBAkCX;AAlCD,WAAY,gBAAgB;IAC1B;;;OAGG;IACH,2DAAuC,CAAA;IACvC;;OAEG;IACH,mDAA+B,CAAA;IAC/B;;;;;OAKG;IACH,iEAA6C,CAAA;IAC7C;;OAEG;IACH,iDAA6B,CAAA;IAC7B;;OAEG;IACH,2CAAuB,CAAA;IACvB;;OAEG;IACH,6CAAyB,CAAA;IACzB;;;OAGG;IACH,iDAA6B,CAAA;AAC/B,CAAC,EAlCW,gBAAgB,KAAhB,gBAAgB,QAkC3B;AAqBD,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAQ5C,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAA4B,MAAwB;QAClD,KAAK,CAAC,QAAQ,CAAC,CAAC;QADN;;;;mBAAgB,MAAM;WAAkB;IAEpD,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAA4B,YAAoB;QAC9C,KAAK,CAAC,iBAAiB,CAAC,CAAC;QADf;;;;mBAAgB,YAAY;WAAQ;IAEhD,CAAC;CACF;AAED,MAAM,OAAO,wBAAwB;IAArC;QACE,4BAAA,QAAQ;;;;;WAAwB;QAChC,4BAAA,iBAAiB;;;;;WAAuB;QACxC,4BAAA,qBAAqB;;;;;WAAQ;QAC7B,4BAAA,oBAAoB;;;;;WAAQ;IAC9B,CAAC;CAAA"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 Jonas "DerZade" Schade
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*
|
|
6
|
+
* https://github.com/DerZade/typescript-event-target/blob/master/src/TypedEventTarget.ts
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* A function that can be passed to the `listener` parameter of {@link TypedEventTarget.addEventListener} and {@link TypedEventTarget.removeEventListener}.
|
|
10
|
+
*
|
|
11
|
+
* @template M A map of event types to their respective event classes.
|
|
12
|
+
* @template T The type of event to listen for (has to be keyof `M`).
|
|
13
|
+
*/
|
|
14
|
+
export type TypedEventListener<M, T extends keyof M> = (evt: M[T]) => void | Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* An object that can be passed to the `listener` parameter of {@link TypedEventTarget.addEventListener} and {@link TypedEventTarget.removeEventListener}.
|
|
17
|
+
*
|
|
18
|
+
* @template M A map of event types to their respective event classes.
|
|
19
|
+
* @template T The type of event to listen for (has to be keyof `M`).
|
|
20
|
+
*/
|
|
21
|
+
export interface TypedEventListenerObject<M, T extends keyof M> {
|
|
22
|
+
handleEvent: (evt: M[T]) => void | Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Type of parameter `listener` in {@link TypedEventTarget.addEventListener} and {@link TypedEventTarget.removeEventListener}.
|
|
26
|
+
*
|
|
27
|
+
* The object that receives a notification (an object that implements the Event interface) when an event of the specified type occurs.
|
|
28
|
+
*
|
|
29
|
+
* Can be either an object with a handleEvent() method, or a JavaScript function.
|
|
30
|
+
*
|
|
31
|
+
* @template M A map of event types to their respective event classes.
|
|
32
|
+
* @template T The type of event to listen for (has to be keyof `M`).
|
|
33
|
+
*/
|
|
34
|
+
export type TypedEventListenerOrEventListenerObject<M, T extends keyof M> = TypedEventListener<M, T> | TypedEventListenerObject<M, T>;
|
|
35
|
+
export type ValueIsEvent<T> = {
|
|
36
|
+
[key in keyof T]: Event;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Typescript friendly version of {@link EventTarget}
|
|
40
|
+
*
|
|
41
|
+
* @template M A map of event types to their respective event classes.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* interface MyEventMap {
|
|
46
|
+
* hello: Event;
|
|
47
|
+
* time: CustomEvent<number>;
|
|
48
|
+
* }
|
|
49
|
+
*
|
|
50
|
+
* const eventTarget = new TypedEventTarget<MyEventMap>();
|
|
51
|
+
*
|
|
52
|
+
* eventTarget.addEventListener('time', (event) => {
|
|
53
|
+
* // event is of type CustomEvent<number>
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export interface TypedEventTarget<M extends ValueIsEvent<M>> {
|
|
58
|
+
/** Appends an event listener for events whose type attribute value is type.
|
|
59
|
+
* The callback argument sets the callback that will be invoked when the event
|
|
60
|
+
* is dispatched.
|
|
61
|
+
*
|
|
62
|
+
* The options argument sets listener-specific options. For compatibility this
|
|
63
|
+
* can be a boolean, in which case the method behaves exactly as if the value
|
|
64
|
+
* was specified as options's capture.
|
|
65
|
+
*
|
|
66
|
+
* When set to true, options's capture prevents callback from being invoked
|
|
67
|
+
* when the event's eventPhase attribute value is BUBBLING_PHASE. When false
|
|
68
|
+
* (or not present), callback will not be invoked when event's eventPhase
|
|
69
|
+
* attribute value is CAPTURING_PHASE. Either way, callback will be invoked if
|
|
70
|
+
* event's eventPhase attribute value is AT_TARGET.
|
|
71
|
+
*
|
|
72
|
+
* When set to true, options's passive indicates that the callback will not
|
|
73
|
+
* cancel the event by invoking preventDefault(). This is used to enable
|
|
74
|
+
* performance optimizations described in § 2.8 Observing event listeners.
|
|
75
|
+
*
|
|
76
|
+
* When set to true, options's once indicates that the callback will only be
|
|
77
|
+
* invoked once after which the event listener will be removed.
|
|
78
|
+
*
|
|
79
|
+
* The event listener is appended to target's event listener list and is not
|
|
80
|
+
* appended if it has the same type, callback, and capture. */
|
|
81
|
+
addEventListener: <T extends keyof M & string>(type: T, listener: TypedEventListenerOrEventListenerObject<M, T> | null, options?: boolean | AddEventListenerOptions) => void;
|
|
82
|
+
/** Removes the event listener in target's event listener list with the same
|
|
83
|
+
* type, callback, and options. */
|
|
84
|
+
removeEventListener: <T extends keyof M & string>(type: T, callback: TypedEventListenerOrEventListenerObject<M, T> | null, options?: EventListenerOptions | boolean) => void;
|
|
85
|
+
/**
|
|
86
|
+
* Dispatches a synthetic event event to target and returns true if either
|
|
87
|
+
* event's cancelable attribute value is false or its preventDefault() method
|
|
88
|
+
* was not invoked, and false otherwise.
|
|
89
|
+
* @deprecated To ensure type safety use `dispatchTypedEvent` instead.
|
|
90
|
+
*/
|
|
91
|
+
dispatchEvent: (event: Event) => boolean;
|
|
92
|
+
}
|
|
93
|
+
export declare class TrackingEventTarget extends EventTarget {
|
|
94
|
+
private activeEventTracking;
|
|
95
|
+
addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void;
|
|
96
|
+
removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void;
|
|
97
|
+
dispatchEvent(event: Event): boolean;
|
|
98
|
+
private filterRegistrations;
|
|
99
|
+
protected eventActivated(type: string): void;
|
|
100
|
+
protected eventDeactivated(type: string): void;
|
|
101
|
+
protected getActiveEvents(): string[];
|
|
102
|
+
}
|
|
103
|
+
export declare class TypedEventTarget<M extends ValueIsEvent<M>> extends TrackingEventTarget {
|
|
104
|
+
/**
|
|
105
|
+
* Dispatches a synthetic event event to target and returns true if either
|
|
106
|
+
* event's cancelable attribute value is false or its preventDefault() method
|
|
107
|
+
* was not invoked, and false otherwise.
|
|
108
|
+
*/
|
|
109
|
+
dispatchTypedEvent<T extends keyof M>(_type: T, event: M[T]): boolean;
|
|
110
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../lib/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FlashDataSource } from "./device.js";
|
|
2
|
+
/**
|
|
3
|
+
* A flash data source that converts universal hex files as needed.
|
|
4
|
+
*
|
|
5
|
+
* @param universalHex A hex file, potentially universal.
|
|
6
|
+
*/
|
|
7
|
+
export declare const createUniversalHexFlashDataSource: (universalHex: string) => FlashDataSource;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hex-flash-data-source.js","sourceRoot":"","sources":["../../lib/hex-flash-data-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACL,cAAc,IAAI,cAAc,GAGjC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,cAAc,EACd,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAC/C,YAAoB,EACH,EAAE;IACnB,OAAO,CAAC,YAA0B,EAAE,EAAE;QACpC,IAAI,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,CACxD,CAAC;YACF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AccelerometerData, AccelerometerDataEvent } from "./accelerometer.js";
|
|
2
|
+
import { createWebBluetoothConnection, MicrobitWebBluetoothConnection, MicrobitWebBluetoothConnectionOptions } from "./bluetooth.js";
|
|
3
|
+
import { BoardId } from "./board-id.js";
|
|
4
|
+
import { ButtonEvent, ButtonEventType, ButtonState } from "./buttons.js";
|
|
5
|
+
import { AfterRequestDevice, BackgroundErrorEvent, BeforeRequestDevice, BoardVersion, ConnectionStatus, ConnectionStatusEvent, DeviceConnection, DeviceConnectionEventMap, DeviceError, DeviceErrorCode, FlashDataError, FlashDataSource, FlashOptions } from "./device.js";
|
|
6
|
+
import { TypedEventTarget } from "./events.js";
|
|
7
|
+
import { createUniversalHexFlashDataSource } from "./hex-flash-data-source.js";
|
|
8
|
+
import { LedMatrix } from "./led.js";
|
|
9
|
+
import { Logging, LoggingEvent } from "./logging.js";
|
|
10
|
+
import { MagnetometerData, MagnetometerDataEvent } from "./magnetometer.js";
|
|
11
|
+
import { FlashEvent, SerialConnectionEventMap, SerialDataEvent, SerialErrorEvent, SerialResetEvent } from "./serial-events.js";
|
|
12
|
+
import { ServiceConnectionEventMap } from "./service-events.js";
|
|
13
|
+
import { UARTDataEvent } from "./uart.js";
|
|
14
|
+
import { createRadioBridgeConnection, MicrobitRadioBridgeConnection, MicrobitRadioBridgeConnectionOptions } from "./usb-radio-bridge.js";
|
|
15
|
+
import { createWebUSBConnection, DeviceSelectionMode, MicrobitWebUSBConnection, MicrobitWebUSBConnectionOptions } from "./usb.js";
|
|
16
|
+
export { AfterRequestDevice, BackgroundErrorEvent, BeforeRequestDevice, BoardId, ConnectionStatus, ConnectionStatusEvent, createRadioBridgeConnection, createUniversalHexFlashDataSource, createWebBluetoothConnection, createWebUSBConnection, DeviceConnectionEventMap, DeviceSelectionMode, DeviceError, FlashDataError, FlashEvent, SerialConnectionEventMap, SerialDataEvent, SerialErrorEvent, SerialResetEvent, ServiceConnectionEventMap, TypedEventTarget, UARTDataEvent, };
|
|
17
|
+
export type { AccelerometerData, AccelerometerDataEvent, BoardVersion, ButtonEvent, ButtonEventType, ButtonState, DeviceConnection, DeviceErrorCode, FlashDataSource, FlashOptions, LedMatrix, Logging, LoggingEvent, MagnetometerData, MagnetometerDataEvent, MicrobitRadioBridgeConnection, MicrobitRadioBridgeConnectionOptions, MicrobitWebBluetoothConnection, MicrobitWebBluetoothConnectionOptions, MicrobitWebUSBConnection, MicrobitWebUSBConnectionOptions, };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createWebBluetoothConnection, } from "./bluetooth.js";
|
|
2
|
+
import { BoardId } from "./board-id.js";
|
|
3
|
+
import { AfterRequestDevice, BackgroundErrorEvent, BeforeRequestDevice, ConnectionStatus, ConnectionStatusEvent, DeviceConnectionEventMap, DeviceError, FlashDataError, } from "./device.js";
|
|
4
|
+
import { TypedEventTarget } from "./events.js";
|
|
5
|
+
import { createUniversalHexFlashDataSource } from "./hex-flash-data-source.js";
|
|
6
|
+
import { FlashEvent, SerialConnectionEventMap, SerialDataEvent, SerialErrorEvent, SerialResetEvent, } from "./serial-events.js";
|
|
7
|
+
import { ServiceConnectionEventMap } from "./service-events.js";
|
|
8
|
+
import { UARTDataEvent } from "./uart.js";
|
|
9
|
+
import { createRadioBridgeConnection, } from "./usb-radio-bridge.js";
|
|
10
|
+
import { createWebUSBConnection, DeviceSelectionMode, } from "./usb.js";
|
|
11
|
+
export { AfterRequestDevice, BackgroundErrorEvent, BeforeRequestDevice, BoardId, ConnectionStatus, ConnectionStatusEvent, createRadioBridgeConnection, createUniversalHexFlashDataSource, createWebBluetoothConnection, createWebUSBConnection, DeviceConnectionEventMap, DeviceSelectionMode, DeviceError, FlashDataError, FlashEvent, SerialConnectionEventMap, SerialDataEvent, SerialErrorEvent, SerialResetEvent, ServiceConnectionEventMap, TypedEventTarget, UARTDataEvent, };
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,GAG7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EAEnB,gBAAgB,EAChB,qBAAqB,EAErB,wBAAwB,EACxB,WAAW,EAEX,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAI/E,OAAO,EACL,UAAU,EACV,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,2BAA2B,GAG5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAGpB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,UAAU,EACV,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EAChB,aAAa,GACd,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Service } from "./bluetooth-device-wrapper.js";
|
|
2
|
+
import { LedMatrix } from "./led.js";
|
|
3
|
+
import { TypedServiceEvent, TypedServiceEventDispatcher } from "./service-events.js";
|
|
4
|
+
export declare class LedService implements Service {
|
|
5
|
+
private matrixStateCharacteristic;
|
|
6
|
+
private scrollingDelayCharacteristic;
|
|
7
|
+
private textCharactertistic;
|
|
8
|
+
private queueGattOperation;
|
|
9
|
+
constructor(matrixStateCharacteristic: BluetoothRemoteGATTCharacteristic, scrollingDelayCharacteristic: BluetoothRemoteGATTCharacteristic, textCharactertistic: BluetoothRemoteGATTCharacteristic, queueGattOperation: <R>(action: () => Promise<R>) => Promise<R>);
|
|
10
|
+
static createService(gattServer: BluetoothRemoteGATTServer, dispatcher: TypedServiceEventDispatcher, queueGattOperation: <R>(action: () => Promise<R>) => Promise<R>, listenerInit: boolean): Promise<LedService | undefined>;
|
|
11
|
+
getLedMatrix(): Promise<LedMatrix>;
|
|
12
|
+
setLedMatrix(value: LedMatrix): Promise<void>;
|
|
13
|
+
private dataViewToLedMatrix;
|
|
14
|
+
private ledMatrixToDataView;
|
|
15
|
+
setText(text: string): Promise<void>;
|
|
16
|
+
setScrollingDelay(value: number): Promise<void>;
|
|
17
|
+
getScrollingDelay(): Promise<number>;
|
|
18
|
+
startNotifications(type: TypedServiceEvent): Promise<void>;
|
|
19
|
+
stopNotifications(type: TypedServiceEvent): Promise<void>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"led-service.js","sourceRoot":"","sources":["../../lib/led-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"led.js","sourceRoot":"","sources":["../../lib/led.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2024, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export interface LoggingEvent {
|
|
7
|
+
type: string;
|
|
8
|
+
message?: string;
|
|
9
|
+
value?: number;
|
|
10
|
+
detail?: any;
|
|
11
|
+
}
|
|
12
|
+
export interface Logging {
|
|
13
|
+
event(event: LoggingEvent): void;
|
|
14
|
+
error(message: string, e: unknown): void;
|
|
15
|
+
log(e: any): void;
|
|
16
|
+
}
|
|
17
|
+
export declare class NullLogging implements Logging {
|
|
18
|
+
event(_event: LoggingEvent): void;
|
|
19
|
+
error(_m: string, _e: unknown): void;
|
|
20
|
+
log(_e: any): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../lib/logging.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,WAAW;IACtB,KAAK,CAAC,MAAoB;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,CAAC,EAAU,EAAE,EAAW;QAC3B,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,GAAG,CAAC,EAAO;QACT,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MagnetometerData } from "./magnetometer.js";
|
|
2
|
+
import { Service } from "./bluetooth-device-wrapper.js";
|
|
3
|
+
import { TypedServiceEvent, TypedServiceEventDispatcher } from "./service-events.js";
|
|
4
|
+
export declare class MagnetometerService implements Service {
|
|
5
|
+
private magnetometerDataCharacteristic;
|
|
6
|
+
private magnetometerPeriodCharacteristic;
|
|
7
|
+
private magnetometerBearingCharacteristic;
|
|
8
|
+
private magnetometerCalibrationCharacteristic;
|
|
9
|
+
private dispatchTypedEvent;
|
|
10
|
+
private queueGattOperation;
|
|
11
|
+
constructor(magnetometerDataCharacteristic: BluetoothRemoteGATTCharacteristic, magnetometerPeriodCharacteristic: BluetoothRemoteGATTCharacteristic, magnetometerBearingCharacteristic: BluetoothRemoteGATTCharacteristic, magnetometerCalibrationCharacteristic: BluetoothRemoteGATTCharacteristic, dispatchTypedEvent: TypedServiceEventDispatcher, queueGattOperation: <R>(action: () => Promise<R>) => Promise<R>);
|
|
12
|
+
static createService(gattServer: BluetoothRemoteGATTServer, dispatcher: TypedServiceEventDispatcher, queueGattOperation: <R>(action: () => Promise<R>) => Promise<R>, listenerInit: boolean): Promise<MagnetometerService | undefined>;
|
|
13
|
+
private dataViewToData;
|
|
14
|
+
getData(): Promise<MagnetometerData>;
|
|
15
|
+
getPeriod(): Promise<number>;
|
|
16
|
+
setPeriod(value: number): Promise<void>;
|
|
17
|
+
getBearing(): Promise<number>;
|
|
18
|
+
triggerCalibration(): Promise<void>;
|
|
19
|
+
startNotifications(type: TypedServiceEvent): Promise<void>;
|
|
20
|
+
stopNotifications(type: TypedServiceEvent): Promise<void>;
|
|
21
|
+
private characteristicForEvent;
|
|
22
|
+
}
|