@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,18 @@
|
|
|
1
|
+
import { AccelerometerData } from "./accelerometer.js";
|
|
2
|
+
import { Service } from "./bluetooth-device-wrapper.js";
|
|
3
|
+
import { TypedServiceEvent, TypedServiceEventDispatcher } from "./service-events.js";
|
|
4
|
+
export declare class AccelerometerService implements Service {
|
|
5
|
+
private accelerometerDataCharacteristic;
|
|
6
|
+
private accelerometerPeriodCharacteristic;
|
|
7
|
+
private dispatchTypedEvent;
|
|
8
|
+
private queueGattOperation;
|
|
9
|
+
constructor(accelerometerDataCharacteristic: BluetoothRemoteGATTCharacteristic, accelerometerPeriodCharacteristic: BluetoothRemoteGATTCharacteristic, dispatchTypedEvent: TypedServiceEventDispatcher, queueGattOperation: <R>(action: () => Promise<R>) => Promise<R>);
|
|
10
|
+
static createService(gattServer: BluetoothRemoteGATTServer, dispatcher: TypedServiceEventDispatcher, queueGattOperation: <R>(action: () => Promise<R>) => Promise<R>, listenerInit: boolean): Promise<AccelerometerService | undefined>;
|
|
11
|
+
private dataViewToData;
|
|
12
|
+
getData(): Promise<AccelerometerData>;
|
|
13
|
+
getPeriod(): Promise<number>;
|
|
14
|
+
setPeriod(value: number): Promise<void>;
|
|
15
|
+
startNotifications(type: TypedServiceEvent): Promise<void>;
|
|
16
|
+
stopNotifications(type: TypedServiceEvent): Promise<void>;
|
|
17
|
+
private characteristicForEvent;
|
|
18
|
+
}
|
|
@@ -77,7 +77,7 @@ export class AccelerometerService {
|
|
|
77
77
|
// Allowed values: 2, 5, 10, 20, 40, 100, 1000
|
|
78
78
|
// Values passed are rounded up to the allowed values on device.
|
|
79
79
|
// Documentation for allowed values looks wrong.
|
|
80
|
-
// https://lancaster-university.github.io/microbit-docs/
|
|
80
|
+
// https://lancaster-university.github.io/microbit-docs/ble/profile/#about-the-accelerometer-service
|
|
81
81
|
const dataView = new DataView(new ArrayBuffer(2));
|
|
82
82
|
dataView.setUint16(0, value, true);
|
|
83
83
|
return this.queueGattOperation(() => this.accelerometerPeriodCharacteristic.writeValue(dataView));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accelerometer-service.js","sourceRoot":"","sources":["../../lib/accelerometer-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOhE,MAAM,OAAO,oBAAoB;IAC/B,YACU,+BAAkE,EAClE,iCAAoE,EACpE,kBAA+C,EAC/C,kBAA+D;QAHvE;;;;mBAAQ,+BAA+B;WAAmC;QAC1E;;;;mBAAQ,iCAAiC;WAAmC;QAC5E;;;;mBAAQ,kBAAkB;WAA6B;QACvD;;;;mBAAQ,kBAAkB;WAA6C;QAEvE,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,CACnD,4BAA4B,EAC5B,CAAC,KAAY,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,KAAK,CAAC,MAAkC,CAAC;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,CAAC,kBAAkB,CACrB,0BAA0B,EAC1B,IAAI,sBAAsB,CAAC,IAAI,CAAC,CACjC,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,UAAqC,EACrC,UAAuC,EACvC,kBAA+D,EAC/D,YAAqB;QAErB,IAAI,oBAAgD,CAAC;QACrD,IAAI,CAAC;YACH,oBAAoB,GAAG,MAAM,UAAU,CAAC,iBAAiB,CACvD,OAAO,CAAC,aAAa,CAAC,EAAE,CACzB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,YAAY,EAAE,CAAC;gBACjB,UAAU,CAAC,iBAAiB,EAAE,IAAI,oBAAoB,CAAC,GAAa,CAAC,CAAC,CAAC;gBACvE,OAAO;YACT,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,WAAW,CAAC;oBACpB,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,GAAa;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,+BAA+B,GACnC,MAAM,oBAAoB,CAAC,iBAAiB,CAC1C,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;QACJ,MAAM,iCAAiC,GACrC,MAAM,oBAAoB,CAAC,iBAAiB,CAC1C,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAChD,CAAC;QACJ,OAAO,IAAI,oBAAoB,CAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,UAAU,EACV,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,QAAkB;QACvC,OAAO;YACL,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;YAC7B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;YAC7B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;SAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAClD,IAAI,CAAC,+BAA+B,CAAC,SAAS,EAAE,CACjD,CAAC;QACF,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAClD,IAAI,CAAC,iCAAiC,CAAC,SAAS,EAAE,CACnD,CAAC;QACF,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,wCAAwC;YACxC,OAAO;QACT,CAAC;QACD,8CAA8C;QAC9C,gEAAgE;QAChE,gDAAgD;QAChD,oGAAoG;QACpG,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAClC,IAAI,CAAC,iCAAiC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAuB;QAC9C,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAuB;QAC7C,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/D,CAAC;IAEO,sBAAsB,CAAC,IAAuB;QACpD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,0BAA0B,CAAC,CAAC,CAAC;gBAChC,OAAO,IAAI,CAAC,+BAA+B,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accelerometer.js","sourceRoot":"","sources":["../../lib/accelerometer.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAA4B,IAAuB;QACjD,KAAK,CAAC,0BAA0B,CAAC,CAAC;QADxB;;;;mBAAgB,IAAI;WAAmB;IAEnD,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
export declare class TimeoutError extends Error {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Utility to time out an action after a delay.
|
|
10
|
+
*
|
|
11
|
+
* The action cannot be cancelled; it may still proceed after the timeout.
|
|
12
|
+
*/
|
|
13
|
+
export declare function withTimeout<T>(actionPromise: Promise<T>, timeout: number): Promise<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-util.js","sourceRoot":"","sources":["../../lib/async-util.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,aAAyB,EACzB,OAAe;IAEf,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC/C,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;QAC7B,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC,CAAC,CAAC;IACH,8DAA8D;IAC9D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,cAAc,CAAC,CAAe,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2023, Center for Computational Thinking and Design at Aarhus University and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { AccelerometerService } from "./accelerometer-service.js";
|
|
7
|
+
import { BoardVersion } from "./device.js";
|
|
8
|
+
import { LedService } from "./led-service.js";
|
|
9
|
+
import { Logging } from "./logging.js";
|
|
10
|
+
import { MagnetometerService } from "./magnetometer-service.js";
|
|
11
|
+
import { ServiceConnectionEventMap, TypedServiceEvent, TypedServiceEventDispatcher } from "./service-events.js";
|
|
12
|
+
import { UARTService } from "./uart-service.js";
|
|
13
|
+
export interface Service {
|
|
14
|
+
startNotifications(type: TypedServiceEvent): Promise<void>;
|
|
15
|
+
stopNotifications(type: TypedServiceEvent): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
interface ConnectCallbacks {
|
|
18
|
+
onConnecting: () => void;
|
|
19
|
+
onReconnecting: () => void;
|
|
20
|
+
onFail: () => void;
|
|
21
|
+
onSuccess: () => void;
|
|
22
|
+
}
|
|
23
|
+
export declare class BluetoothDeviceWrapper {
|
|
24
|
+
readonly device: BluetoothDevice;
|
|
25
|
+
private logging;
|
|
26
|
+
private dispatchTypedEvent;
|
|
27
|
+
private currentEvents;
|
|
28
|
+
private callbacks;
|
|
29
|
+
private duringExplicitConnectDisconnect;
|
|
30
|
+
private gattConnectPromise;
|
|
31
|
+
private disconnectPromise;
|
|
32
|
+
private connecting;
|
|
33
|
+
private isReconnect;
|
|
34
|
+
private connectReadyPromise;
|
|
35
|
+
private accelerometer;
|
|
36
|
+
private buttons;
|
|
37
|
+
private led;
|
|
38
|
+
private magnetometer;
|
|
39
|
+
private uart;
|
|
40
|
+
private serviceInfo;
|
|
41
|
+
boardVersion: BoardVersion | undefined;
|
|
42
|
+
private disconnectedRejectionErrorFactory;
|
|
43
|
+
private gattOperations;
|
|
44
|
+
constructor(device: BluetoothDevice, logging: Logging, dispatchTypedEvent: TypedServiceEventDispatcher, currentEvents: () => Array<keyof ServiceConnectionEventMap>, callbacks: ConnectCallbacks);
|
|
45
|
+
connect(): Promise<void>;
|
|
46
|
+
disconnect(): Promise<void>;
|
|
47
|
+
private disconnectInternal;
|
|
48
|
+
reconnect(): Promise<void>;
|
|
49
|
+
handleDisconnectEvent: () => Promise<void>;
|
|
50
|
+
private assertGattServer;
|
|
51
|
+
private getBoardVersion;
|
|
52
|
+
private queueGattOperation;
|
|
53
|
+
private createIfNeeded;
|
|
54
|
+
getAccelerometerService(): Promise<AccelerometerService | undefined>;
|
|
55
|
+
getLedService(): Promise<LedService | undefined>;
|
|
56
|
+
getMagnetometerService(): Promise<MagnetometerService | undefined>;
|
|
57
|
+
getUARTService(): Promise<UARTService | undefined>;
|
|
58
|
+
startNotifications(type: TypedServiceEvent): Promise<void>;
|
|
59
|
+
stopNotifications(type: TypedServiceEvent): Promise<void>;
|
|
60
|
+
private disposeServices;
|
|
61
|
+
}
|
|
62
|
+
export declare const createBluetoothDeviceWrapper: (device: BluetoothDevice, logging: Logging, dispatchTypedEvent: TypedServiceEventDispatcher, currentEvents: () => Array<keyof ServiceConnectionEventMap>, callbacks: ConnectCallbacks) => Promise<BluetoothDeviceWrapper | undefined>;
|
|
63
|
+
export {};
|
|
@@ -9,7 +9,9 @@ import { ButtonService } from "./button-service.js";
|
|
|
9
9
|
import { DeviceError } from "./device.js";
|
|
10
10
|
import { LedService } from "./led-service.js";
|
|
11
11
|
import { NullLogging } from "./logging.js";
|
|
12
|
+
import { MagnetometerService } from "./magnetometer-service.js";
|
|
12
13
|
import { PromiseQueue } from "./promise-queue.js";
|
|
14
|
+
import { UARTService } from "./uart-service.js";
|
|
13
15
|
const deviceIdToWrapper = new Map();
|
|
14
16
|
const connectTimeoutDuration = 10000;
|
|
15
17
|
function findPlatform() {
|
|
@@ -133,7 +135,7 @@ export class BluetoothDeviceWrapper {
|
|
|
133
135
|
writable: true,
|
|
134
136
|
value: false
|
|
135
137
|
});
|
|
136
|
-
Object.defineProperty(this, "
|
|
138
|
+
Object.defineProperty(this, "connectReadyPromise", {
|
|
137
139
|
enumerable: true,
|
|
138
140
|
configurable: true,
|
|
139
141
|
writable: true,
|
|
@@ -162,11 +164,31 @@ export class BluetoothDeviceWrapper {
|
|
|
162
164
|
writable: true,
|
|
163
165
|
value: new ServiceInfo(LedService.createService, [])
|
|
164
166
|
});
|
|
167
|
+
Object.defineProperty(this, "magnetometer", {
|
|
168
|
+
enumerable: true,
|
|
169
|
+
configurable: true,
|
|
170
|
+
writable: true,
|
|
171
|
+
value: new ServiceInfo(MagnetometerService.createService, [
|
|
172
|
+
"magnetometerdatachanged",
|
|
173
|
+
])
|
|
174
|
+
});
|
|
175
|
+
Object.defineProperty(this, "uart", {
|
|
176
|
+
enumerable: true,
|
|
177
|
+
configurable: true,
|
|
178
|
+
writable: true,
|
|
179
|
+
value: new ServiceInfo(UARTService.createService, ["uartdata"])
|
|
180
|
+
});
|
|
165
181
|
Object.defineProperty(this, "serviceInfo", {
|
|
166
182
|
enumerable: true,
|
|
167
183
|
configurable: true,
|
|
168
184
|
writable: true,
|
|
169
|
-
value: [
|
|
185
|
+
value: [
|
|
186
|
+
this.accelerometer,
|
|
187
|
+
this.buttons,
|
|
188
|
+
this.led,
|
|
189
|
+
this.magnetometer,
|
|
190
|
+
this.uart,
|
|
191
|
+
]
|
|
170
192
|
});
|
|
171
193
|
Object.defineProperty(this, "boardVersion", {
|
|
172
194
|
enumerable: true,
|
|
@@ -244,6 +266,13 @@ export class BluetoothDeviceWrapper {
|
|
|
244
266
|
if (this.device.gatt === undefined) {
|
|
245
267
|
throw new Error("BluetoothRemoteGATTServer for micro:bit device is undefined");
|
|
246
268
|
}
|
|
269
|
+
if (isWindowsOS) {
|
|
270
|
+
// On Windows, the micro:bit can take around 3 seconds to respond to gatt.disconnect().
|
|
271
|
+
// Attempting to connect/reconnect before the micro:bit has responded results in another
|
|
272
|
+
// gattserverdisconnected event being fired. We then fail to get primaryService on a
|
|
273
|
+
// disconnected GATT server.
|
|
274
|
+
await this.connectReadyPromise;
|
|
275
|
+
}
|
|
247
276
|
try {
|
|
248
277
|
// A previous connect might have completed in the background as a device was replugged etc.
|
|
249
278
|
await this.disconnectPromise;
|
|
@@ -339,18 +368,11 @@ export class BluetoothDeviceWrapper {
|
|
|
339
368
|
this.disposeServices();
|
|
340
369
|
this.duringExplicitConnectDisconnect--;
|
|
341
370
|
}
|
|
342
|
-
this.
|
|
371
|
+
this.connectReadyPromise = new Promise((resolve) => setTimeout(resolve, 3_500));
|
|
343
372
|
}
|
|
344
373
|
async reconnect() {
|
|
345
374
|
this.logging.log("Bluetooth reconnect");
|
|
346
375
|
this.isReconnect = true;
|
|
347
|
-
if (isWindowsOS) {
|
|
348
|
-
// On Windows, the micro:bit can take around 3 seconds to respond to gatt.disconnect().
|
|
349
|
-
// Attempting to reconnect before the micro:bit has responded results in another
|
|
350
|
-
// gattserverdisconnected event being fired. We then fail to get primaryService on a
|
|
351
|
-
// disconnected GATT server.
|
|
352
|
-
await this.reconnectReadyPromise;
|
|
353
|
-
}
|
|
354
376
|
await this.connect();
|
|
355
377
|
}
|
|
356
378
|
assertGattServer() {
|
|
@@ -395,6 +417,12 @@ export class BluetoothDeviceWrapper {
|
|
|
395
417
|
async getLedService() {
|
|
396
418
|
return this.createIfNeeded(this.led, false);
|
|
397
419
|
}
|
|
420
|
+
async getMagnetometerService() {
|
|
421
|
+
return this.createIfNeeded(this.magnetometer, false);
|
|
422
|
+
}
|
|
423
|
+
async getUARTService() {
|
|
424
|
+
return this.createIfNeeded(this.uart, false);
|
|
425
|
+
}
|
|
398
426
|
async startNotifications(type) {
|
|
399
427
|
const serviceInfo = this.serviceInfo.find((s) => s.events.includes(type));
|
|
400
428
|
if (serviceInfo) {
|
|
@@ -427,6 +455,7 @@ export const createBluetoothDeviceWrapper = async (device, logging, dispatchType
|
|
|
427
455
|
return bluetooth;
|
|
428
456
|
}
|
|
429
457
|
catch (e) {
|
|
458
|
+
logging.error("Bluetooth connect error", e);
|
|
430
459
|
return undefined;
|
|
431
460
|
}
|
|
432
461
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bluetooth-device-wrapper.js","sourceRoot":"","sources":["../../lib/bluetooth-device-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
export declare const profile: {
|
|
2
|
+
uart: {
|
|
3
|
+
id: string;
|
|
4
|
+
characteristics: {
|
|
5
|
+
tx: {
|
|
6
|
+
id: string;
|
|
7
|
+
};
|
|
8
|
+
rx: {
|
|
9
|
+
id: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
accelerometer: {
|
|
14
|
+
id: string;
|
|
15
|
+
characteristics: {
|
|
16
|
+
data: {
|
|
17
|
+
id: string;
|
|
18
|
+
};
|
|
19
|
+
period: {
|
|
20
|
+
id: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
deviceInformation: {
|
|
25
|
+
id: string;
|
|
26
|
+
characteristics: {
|
|
27
|
+
modelNumber: {
|
|
28
|
+
id: string;
|
|
29
|
+
};
|
|
30
|
+
serialNumber: {
|
|
31
|
+
id: string;
|
|
32
|
+
};
|
|
33
|
+
firmwareRevision: {
|
|
34
|
+
id: string;
|
|
35
|
+
};
|
|
36
|
+
hardwareRevision: {
|
|
37
|
+
id: string;
|
|
38
|
+
};
|
|
39
|
+
manufacturer: {
|
|
40
|
+
id: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
dfuControl: {
|
|
45
|
+
id: string;
|
|
46
|
+
characteristics: {
|
|
47
|
+
control: {
|
|
48
|
+
id: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
led: {
|
|
53
|
+
id: string;
|
|
54
|
+
characteristics: {
|
|
55
|
+
matrixState: {
|
|
56
|
+
id: string;
|
|
57
|
+
};
|
|
58
|
+
text: {
|
|
59
|
+
id: string;
|
|
60
|
+
};
|
|
61
|
+
scrollingDelay: {
|
|
62
|
+
id: string;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
ioPin: {
|
|
67
|
+
id: string;
|
|
68
|
+
characteristics: {
|
|
69
|
+
pinData: {
|
|
70
|
+
id: string;
|
|
71
|
+
};
|
|
72
|
+
pinAdConfiguration: {
|
|
73
|
+
id: string;
|
|
74
|
+
};
|
|
75
|
+
pinIoConfiguration: {
|
|
76
|
+
id: string;
|
|
77
|
+
};
|
|
78
|
+
pwmControl: {
|
|
79
|
+
id: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
button: {
|
|
84
|
+
id: string;
|
|
85
|
+
characteristics: {
|
|
86
|
+
a: {
|
|
87
|
+
id: string;
|
|
88
|
+
};
|
|
89
|
+
b: {
|
|
90
|
+
id: string;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
event: {
|
|
95
|
+
id: string;
|
|
96
|
+
characteristics: {
|
|
97
|
+
microBitRequirements: {
|
|
98
|
+
id: string;
|
|
99
|
+
};
|
|
100
|
+
microBitEvent: {
|
|
101
|
+
id: string;
|
|
102
|
+
};
|
|
103
|
+
clientRequirements: {
|
|
104
|
+
id: string;
|
|
105
|
+
};
|
|
106
|
+
clientEvent: {
|
|
107
|
+
id: string;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
magnetometer: {
|
|
112
|
+
id: string;
|
|
113
|
+
characteristics: {
|
|
114
|
+
data: {
|
|
115
|
+
id: string;
|
|
116
|
+
};
|
|
117
|
+
period: {
|
|
118
|
+
id: string;
|
|
119
|
+
};
|
|
120
|
+
bearing: {
|
|
121
|
+
id: string;
|
|
122
|
+
};
|
|
123
|
+
calibration: {
|
|
124
|
+
id: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
temperature: {
|
|
129
|
+
id: string;
|
|
130
|
+
characteristics: {
|
|
131
|
+
data: {
|
|
132
|
+
id: string;
|
|
133
|
+
};
|
|
134
|
+
period: {
|
|
135
|
+
id: string;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bluetooth-profile.js","sourceRoot":"","sources":["../../lib/bluetooth-profile.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE;QACJ,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,EAAE,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAClD,EAAE,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SACnD;KACF;IACD,aAAa,EAAE;QACb,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,IAAI,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACpD,MAAM,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SACvD;KACF;IACD,iBAAiB,EAAE;QACjB,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,WAAW,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAC3D,YAAY,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAC5D,gBAAgB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAChE,gBAAgB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAChE,YAAY,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SAC7D;KACF;IACD,UAAU,EAAE;QACV,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,OAAO,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SACxD;KACF;IACD,GAAG,EAAE;QACH,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,WAAW,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACpD,cAAc,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SAC/D;KACF;IACD,KAAK,EAAE;QACL,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,OAAO,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACvD,kBAAkB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAClE,kBAAkB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAClE,UAAU,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SAC3D;KACF;IACD,MAAM,EAAE;QACN,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,CAAC,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACjD,CAAC,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SAClD;KACF;IACD,KAAK,EAAE;QACL,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,oBAAoB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACpE,aAAa,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAC7D,kBAAkB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YAClE,WAAW,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SAC5D;KACF;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,IAAI,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACpD,MAAM,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACtD,OAAO,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACvD,WAAW,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SAC5D;KACF;IACD,WAAW,EAAE;QACX,EAAE,EAAE,sCAAsC;QAC1C,eAAe,EAAE;YACf,IAAI,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;YACpD,MAAM,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE;SACvD;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { AccelerometerData } from "./accelerometer.js";
|
|
7
|
+
import { DeviceConnection } from "./device.js";
|
|
8
|
+
import { LedMatrix } from "./led.js";
|
|
9
|
+
import { Logging } from "./logging.js";
|
|
10
|
+
import { MagnetometerData } from "./magnetometer.js";
|
|
11
|
+
import { ServiceConnectionEventMap } from "./service-events.js";
|
|
12
|
+
export interface MicrobitWebBluetoothConnectionOptions {
|
|
13
|
+
logging?: Logging;
|
|
14
|
+
}
|
|
15
|
+
export interface MicrobitWebBluetoothConnection extends DeviceConnection<ServiceConnectionEventMap> {
|
|
16
|
+
/**
|
|
17
|
+
* Sets micro:bit name filter for device requesting.
|
|
18
|
+
*
|
|
19
|
+
* @param name The name of the micro:bit.
|
|
20
|
+
*/
|
|
21
|
+
setNameFilter(name: string): void;
|
|
22
|
+
/**
|
|
23
|
+
* Gets micro:bit accelerometer data.
|
|
24
|
+
*
|
|
25
|
+
* @returns accelerometer data or undefined if there is no connection.
|
|
26
|
+
*/
|
|
27
|
+
getAccelerometerData(): Promise<AccelerometerData | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* Gets micro:bit accelerometer period.
|
|
30
|
+
*
|
|
31
|
+
* @returns accelerometer period or undefined if there is no connection.
|
|
32
|
+
*/
|
|
33
|
+
getAccelerometerPeriod(): Promise<number | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* Sets micro:bit accelerometer period.
|
|
36
|
+
*
|
|
37
|
+
* @param value The accelerometer period.
|
|
38
|
+
*/
|
|
39
|
+
setAccelerometerPeriod(value: number): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Sets micro:bit LED text.
|
|
42
|
+
*
|
|
43
|
+
* @param text The text displayed on micro:bit LED.
|
|
44
|
+
*/
|
|
45
|
+
setLedText(text: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Gets micro:bit LED scrolling delay.
|
|
48
|
+
*
|
|
49
|
+
* @returns LED scrolling delay in milliseconds.
|
|
50
|
+
*/
|
|
51
|
+
getLedScrollingDelay(): Promise<number | undefined>;
|
|
52
|
+
/**
|
|
53
|
+
* Sets micro:bit LED scrolling delay.
|
|
54
|
+
*
|
|
55
|
+
* @param delayInMillis LED scrolling delay in milliseconds.
|
|
56
|
+
*/
|
|
57
|
+
setLedScrollingDelay(delayInMillis: number): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Gets micro:bit LED matrix.
|
|
60
|
+
*
|
|
61
|
+
* @returns a boolean matrix representing the micro:bit LED display.
|
|
62
|
+
*/
|
|
63
|
+
getLedMatrix(): Promise<LedMatrix | undefined>;
|
|
64
|
+
/**
|
|
65
|
+
* Sets micro:bit LED matrix.
|
|
66
|
+
*
|
|
67
|
+
* @param matrix an boolean matrix representing the micro:bit LED display.
|
|
68
|
+
*/
|
|
69
|
+
setLedMatrix(matrix: LedMatrix): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Gets micro:bit magnetometer data.
|
|
72
|
+
*
|
|
73
|
+
* @returns magnetometer data.
|
|
74
|
+
*/
|
|
75
|
+
getMagnetometerData(): Promise<MagnetometerData | undefined>;
|
|
76
|
+
/**
|
|
77
|
+
* Gets micro:bit magnetometer bearing.
|
|
78
|
+
*
|
|
79
|
+
* @returns magnetometer bearing.
|
|
80
|
+
*/
|
|
81
|
+
getMagnetometerBearing(): Promise<number | undefined>;
|
|
82
|
+
/**
|
|
83
|
+
* Gets micro:bit magnetometer period.
|
|
84
|
+
*
|
|
85
|
+
* @returns magnetometer period.
|
|
86
|
+
*/
|
|
87
|
+
getMagnetometerPeriod(): Promise<number | undefined>;
|
|
88
|
+
/**
|
|
89
|
+
* Sets micro:bit magnetometer period.
|
|
90
|
+
*
|
|
91
|
+
* @param value magnetometer period.
|
|
92
|
+
*/
|
|
93
|
+
setMagnetometerPeriod(value: number): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Triggers micro:bit magnetometer calibration.
|
|
96
|
+
*/
|
|
97
|
+
triggerMagnetometerCalibration(): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Write UART messages.
|
|
100
|
+
*
|
|
101
|
+
* @param data UART message.
|
|
102
|
+
*/
|
|
103
|
+
uartWrite(data: Uint8Array): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* A Bluetooth connection factory.
|
|
107
|
+
*/
|
|
108
|
+
export declare const createWebBluetoothConnection: (options?: MicrobitWebBluetoothConnectionOptions) => MicrobitWebBluetoothConnection;
|
|
@@ -4,10 +4,14 @@ import { AfterRequestDevice, BeforeRequestDevice, ConnectionStatus, ConnectionSt
|
|
|
4
4
|
import { TypedEventTarget } from "./events.js";
|
|
5
5
|
import { NullLogging } from "./logging.js";
|
|
6
6
|
const requestDeviceTimeoutDuration = 30000;
|
|
7
|
+
/**
|
|
8
|
+
* A Bluetooth connection factory.
|
|
9
|
+
*/
|
|
10
|
+
export const createWebBluetoothConnection = (options) => new MicrobitWebBluetoothConnectionImpl(options);
|
|
7
11
|
/**
|
|
8
12
|
* A Bluetooth connection to a micro:bit device.
|
|
9
13
|
*/
|
|
10
|
-
|
|
14
|
+
class MicrobitWebBluetoothConnectionImpl extends TypedEventTarget {
|
|
11
15
|
constructor(options = {}) {
|
|
12
16
|
super();
|
|
13
17
|
Object.defineProperty(this, "status", {
|
|
@@ -146,9 +150,6 @@ export class MicrobitWebBluetoothConnection extends TypedEventTarget {
|
|
|
146
150
|
return;
|
|
147
151
|
}
|
|
148
152
|
// TODO: timeout unification?
|
|
149
|
-
// Connection happens inside createBluetoothDeviceWrapper.
|
|
150
|
-
// await this.connection?.connect();
|
|
151
|
-
this.setStatus(ConnectionStatus.CONNECTED);
|
|
152
153
|
}
|
|
153
154
|
setNameFilter(name) {
|
|
154
155
|
this.nameFilter = name;
|
|
@@ -239,5 +240,29 @@ export class MicrobitWebBluetoothConnection extends TypedEventTarget {
|
|
|
239
240
|
const ledService = await this.connection?.getLedService();
|
|
240
241
|
ledService?.setLedMatrix(matrix);
|
|
241
242
|
}
|
|
243
|
+
async getMagnetometerData() {
|
|
244
|
+
const magnetometerService = await this.connection?.getMagnetometerService();
|
|
245
|
+
return magnetometerService?.getData();
|
|
246
|
+
}
|
|
247
|
+
async getMagnetometerPeriod() {
|
|
248
|
+
const magnetometerService = await this.connection?.getMagnetometerService();
|
|
249
|
+
return magnetometerService?.getPeriod();
|
|
250
|
+
}
|
|
251
|
+
async setMagnetometerPeriod(value) {
|
|
252
|
+
const magnetometerService = await this.connection?.getMagnetometerService();
|
|
253
|
+
return magnetometerService?.setPeriod(value);
|
|
254
|
+
}
|
|
255
|
+
async getMagnetometerBearing() {
|
|
256
|
+
const magnetometerService = await this.connection?.getMagnetometerService();
|
|
257
|
+
return magnetometerService?.getBearing();
|
|
258
|
+
}
|
|
259
|
+
async triggerMagnetometerCalibration() {
|
|
260
|
+
const magnetometerService = await this.connection?.getMagnetometerService();
|
|
261
|
+
return magnetometerService?.triggerCalibration();
|
|
262
|
+
}
|
|
263
|
+
async uartWrite(data) {
|
|
264
|
+
const uartService = await this.connection?.getUARTService();
|
|
265
|
+
uartService?.writeData(data);
|
|
266
|
+
}
|
|
242
267
|
}
|
|
243
268
|
//# sourceMappingURL=bluetooth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bluetooth.js","sourceRoot":"","sources":["../../lib/bluetooth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { BoardVersion } from "./device.js";
|
|
7
|
+
/**
|
|
8
|
+
* Validates micro:bit board IDs.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BoardId {
|
|
11
|
+
id: number;
|
|
12
|
+
private static v1Normalized;
|
|
13
|
+
private static v2Normalized;
|
|
14
|
+
constructor(id: number);
|
|
15
|
+
toBoardVersion(): BoardVersion;
|
|
16
|
+
isV1(): boolean;
|
|
17
|
+
isV2(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Return the board ID using the default ID for the board type.
|
|
20
|
+
* Used to integrate with MicropythonFsHex.
|
|
21
|
+
*/
|
|
22
|
+
normalize(): BoardId;
|
|
23
|
+
/**
|
|
24
|
+
* toString matches the input to parse.
|
|
25
|
+
*
|
|
26
|
+
* @returns the ID as a string.
|
|
27
|
+
*/
|
|
28
|
+
toString(): string;
|
|
29
|
+
/**
|
|
30
|
+
* @param value The ID as a hex string with no 0x prefix (e.g. 9900).
|
|
31
|
+
* @returns the valid board ID
|
|
32
|
+
* @throws if the ID isn't known.
|
|
33
|
+
*/
|
|
34
|
+
static parse(value: string): BoardId;
|
|
35
|
+
static forVersion(boardVersion: BoardVersion): BoardId;
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-id.js","sourceRoot":"","sources":["../../lib/board-id.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,OAAO,OAAO;IAIlB,YAAmB,EAAU;QAAjB;;;;mBAAO,EAAE;WAAQ;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;IAClD,CAAC;IAED,IAAI;QACF,OAAO,CACL,IAAI,CAAC,EAAE,KAAK,MAAM;YAClB,IAAI,CAAC,EAAE,KAAK,MAAM;YAClB,IAAI,CAAC,EAAE,KAAK,MAAM;YAClB,IAAI,CAAC,EAAE,KAAK,MAAM,CACnB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,KAAa;QACxB,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,YAA0B;QAC1C,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,YAAY,CAAC;YAC3B,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;IACH,CAAC;;AA3Dc;;;;WAAe,IAAI,OAAO,CAAC,MAAM,CAAC;EAAtB,CAAuB;AACnC;;;;WAAe,IAAI,OAAO,CAAC,MAAM,CAAC;EAAtB,CAAuB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* (c) 2021, Micro:bit Educational Foundation and contributors
|
|
3
|
+
*
|
|
4
|
+
* SPDX-License-Identifier: MIT
|
|
5
|
+
*/
|
|
6
|
+
import { BoardId } from "./board-id.js";
|
|
7
|
+
export declare class BoardSerialInfo {
|
|
8
|
+
id: BoardId;
|
|
9
|
+
familyId: string;
|
|
10
|
+
hic: string;
|
|
11
|
+
constructor(id: BoardId, familyId: string, hic: string);
|
|
12
|
+
static parse(device: USBDevice, log: (msg: string) => void): BoardSerialInfo;
|
|
13
|
+
eq(other: BoardSerialInfo): boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-serial-info.js","sourceRoot":"","sources":["../../lib/board-serial-info.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,eAAe;IAC1B,YACS,EAAW,EACX,QAAgB,EAChB,GAAW;QAFlB;;;;mBAAO,EAAE;WAAS;QAClB;;;;mBAAO,QAAQ;WAAQ;QACvB;;;;mBAAO,GAAG;WAAQ;IACjB,CAAC;IACJ,MAAM,CAAC,KAAK,CAAC,MAAiB,EAAE,GAA0B;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACzB,GAAG,CAAC,wCAAwC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,EAAE,CAAC,KAAsB;QACvB,OAAO,CACL,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;YACpB,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;YAChC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CACvB,CAAC;IACJ,CAAC;CACF"}
|