brilliantsole 0.0.1

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.
Files changed (158) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +21 -0
  3. package/build/brilliantsole.cjs +5957 -0
  4. package/build/brilliantsole.cjs.map +1 -0
  5. package/build/brilliantsole.js +5448 -0
  6. package/build/brilliantsole.js.map +1 -0
  7. package/build/brilliantsole.ls.js +4872 -0
  8. package/build/brilliantsole.ls.js.map +1 -0
  9. package/build/brilliantsole.min.js +6 -0
  10. package/build/brilliantsole.min.js.map +1 -0
  11. package/build/brilliantsole.module.d.ts +908 -0
  12. package/build/brilliantsole.module.js +5412 -0
  13. package/build/brilliantsole.module.js.map +1 -0
  14. package/build/brilliantsole.module.min.d.ts +908 -0
  15. package/build/brilliantsole.module.min.js +6 -0
  16. package/build/brilliantsole.module.min.js.map +1 -0
  17. package/build/brilliantsole.node.module.d.ts +908 -0
  18. package/build/brilliantsole.node.module.js +5906 -0
  19. package/build/brilliantsole.node.module.js.map +1 -0
  20. package/build/dts/BS.d.ts +25 -0
  21. package/build/dts/Device.d.ts +136 -0
  22. package/build/dts/DeviceInformationManager.d.ts +56 -0
  23. package/build/dts/DeviceManager.d.ts +67 -0
  24. package/build/dts/FileTransferManager.d.ts +84 -0
  25. package/build/dts/FirmwareManager.d.ts +71 -0
  26. package/build/dts/InformationManager.d.ts +66 -0
  27. package/build/dts/TfliteManager.d.ts +92 -0
  28. package/build/dts/connection/BaseConnectionManager.d.ts +59 -0
  29. package/build/dts/connection/ClientConnectionManager.d.ts +23 -0
  30. package/build/dts/connection/WebSocketClientConnectionManager.d.ts +23 -0
  31. package/build/dts/connection/bluetooth/BluetoothConnectionManager.d.ts +10 -0
  32. package/build/dts/connection/bluetooth/NobleConnectionManager.d.ts +42 -0
  33. package/build/dts/connection/bluetooth/WebBluetoothConnectionManager.d.ts +20 -0
  34. package/build/dts/connection/bluetooth/bluetoothUUIDs.d.ts +14 -0
  35. package/build/dts/connection/webSocket/ClientConnectionManager.d.ts +23 -0
  36. package/build/dts/connection/webSocket/WebSocketClientConnectionManager.d.ts +23 -0
  37. package/build/dts/devicePair/DevicePair.d.ts +60 -0
  38. package/build/dts/devicePair/DevicePairPressureSensorDataManager.d.ts +25 -0
  39. package/build/dts/devicePair/DevicePairSensorDataManager.d.ts +33 -0
  40. package/build/dts/scanner/BaseScanner.d.ts +66 -0
  41. package/build/dts/scanner/NobleScanner.d.ts +17 -0
  42. package/build/dts/scanner/Scanner.d.ts +3 -0
  43. package/build/dts/sensor/BarometerSensorDataManager.d.ts +16 -0
  44. package/build/dts/sensor/MotionSensorDataManager.d.ts +69 -0
  45. package/build/dts/sensor/PressureSensorDataManager.d.ts +36 -0
  46. package/build/dts/sensor/SensorConfigurationManager.d.ts +44 -0
  47. package/build/dts/sensor/SensorDataManager.d.ts +40 -0
  48. package/build/dts/server/BaseClient.d.ts +85 -0
  49. package/build/dts/server/BaseServer.d.ts +48 -0
  50. package/build/dts/server/ServerUtils.d.ts +23 -0
  51. package/build/dts/server/udp/UDPServer.d.ts +11 -0
  52. package/build/dts/server/udp/UDPUtils.d.ts +9 -0
  53. package/build/dts/server/websocket/WebSocketClient.d.ts +17 -0
  54. package/build/dts/server/websocket/WebSocketServer.d.ts +13 -0
  55. package/build/dts/server/websocket/WebSocketUtils.d.ts +9 -0
  56. package/build/dts/utils/ArrayBufferUtils.d.ts +7 -0
  57. package/build/dts/utils/ArrayUtils.d.ts +2 -0
  58. package/build/dts/utils/CenterOfPressureHelper.d.ts +15 -0
  59. package/build/dts/utils/Console.d.ts +34 -0
  60. package/build/dts/utils/EventDispatcher.d.ts +50 -0
  61. package/build/dts/utils/EventUtils.d.ts +6 -0
  62. package/build/dts/utils/MathUtils.d.ts +21 -0
  63. package/build/dts/utils/ParseUtils.d.ts +5 -0
  64. package/build/dts/utils/RangeHelper.d.ts +8 -0
  65. package/build/dts/utils/Text.d.ts +6 -0
  66. package/build/dts/utils/Timer.d.ts +14 -0
  67. package/build/dts/utils/TypeScriptUtils.d.ts +19 -0
  68. package/build/dts/utils/cbor.d.ts +6 -0
  69. package/build/dts/utils/checksum.d.ts +3 -0
  70. package/build/dts/utils/environment.d.ts +13 -0
  71. package/build/dts/utils/mcumgr.d.ts +88 -0
  72. package/build/dts/utils/stringUtils.d.ts +2 -0
  73. package/build/dts/vibration/VibrationManager.d.ts +45 -0
  74. package/build/dts/vibration/VibrationWaveformEffects.d.ts +2 -0
  75. package/build/index.d.ts +908 -0
  76. package/build/index.node.d.ts +908 -0
  77. package/examples/3d/index.html +109 -0
  78. package/examples/3d/scene.html +57 -0
  79. package/examples/3d/script.js +419 -0
  80. package/examples/balance/index.html +138 -0
  81. package/examples/balance/script.js +243 -0
  82. package/examples/basic/index.html +327 -0
  83. package/examples/basic/script.js +1093 -0
  84. package/examples/center-of-pressure/index.html +132 -0
  85. package/examples/center-of-pressure/script.js +207 -0
  86. package/examples/device-pair/index.html +72 -0
  87. package/examples/device-pair/script.js +187 -0
  88. package/examples/edge-impulse/index.html +94 -0
  89. package/examples/edge-impulse/script.js +1033 -0
  90. package/examples/graph/index.html +83 -0
  91. package/examples/graph/script.js +469 -0
  92. package/examples/machine-learning/index.html +366 -0
  93. package/examples/machine-learning/script.js +1774 -0
  94. package/examples/pressure/index.html +145 -0
  95. package/examples/pressure/script.js +201 -0
  96. package/examples/recording/index.html +187 -0
  97. package/examples/recording/script.js +736 -0
  98. package/examples/server/index.html +266 -0
  99. package/examples/server/script.js +925 -0
  100. package/examples/utils/aframe/fingertip-button-component.js +201 -0
  101. package/examples/utils/aframe/fingertip-collider-target-component.js +102 -0
  102. package/examples/utils/aframe/fingertip-colliders-component.js +147 -0
  103. package/examples/utils/three/three.module.min.js +24846 -0
  104. package/examples/webxr/index.html +221 -0
  105. package/examples/webxr/script.js +1127 -0
  106. package/package.json +83 -0
  107. package/src/BS.ts +68 -0
  108. package/src/Device.ts +734 -0
  109. package/src/DeviceInformationManager.ts +146 -0
  110. package/src/DeviceManager.ts +354 -0
  111. package/src/FileTransferManager.ts +452 -0
  112. package/src/FirmwareManager.ts +357 -0
  113. package/src/InformationManager.ts +283 -0
  114. package/src/TfliteManager.ts +450 -0
  115. package/src/connection/BaseConnectionManager.ts +255 -0
  116. package/src/connection/ClientConnectionManager.ts +120 -0
  117. package/src/connection/bluetooth/BluetoothConnectionManager.ts +34 -0
  118. package/src/connection/bluetooth/NobleConnectionManager.ts +302 -0
  119. package/src/connection/bluetooth/WebBluetoothConnectionManager.ts +269 -0
  120. package/src/connection/bluetooth/bluetoothUUIDs.ts +218 -0
  121. package/src/devicePair/DevicePair.ts +253 -0
  122. package/src/devicePair/DevicePairPressureSensorDataManager.ts +82 -0
  123. package/src/devicePair/DevicePairSensorDataManager.ts +90 -0
  124. package/src/scanner/BaseScanner.ts +189 -0
  125. package/src/scanner/NobleScanner.ts +195 -0
  126. package/src/scanner/Scanner.ts +16 -0
  127. package/src/sensor/BarometerSensorDataManager.ts +41 -0
  128. package/src/sensor/MotionSensorDataManager.ts +151 -0
  129. package/src/sensor/PressureSensorDataManager.ts +112 -0
  130. package/src/sensor/SensorConfigurationManager.ts +177 -0
  131. package/src/sensor/SensorDataManager.ts +166 -0
  132. package/src/server/BaseClient.ts +368 -0
  133. package/src/server/BaseServer.ts +344 -0
  134. package/src/server/ServerUtils.ts +93 -0
  135. package/src/server/udp/UDPServer.ts +229 -0
  136. package/src/server/udp/UDPUtils.ts +20 -0
  137. package/src/server/websocket/WebSocketClient.ts +179 -0
  138. package/src/server/websocket/WebSocketServer.ts +184 -0
  139. package/src/server/websocket/WebSocketUtils.ts +20 -0
  140. package/src/utils/ArrayBufferUtils.ts +88 -0
  141. package/src/utils/ArrayUtils.ts +15 -0
  142. package/src/utils/CenterOfPressureHelper.ts +39 -0
  143. package/src/utils/Console.ts +156 -0
  144. package/src/utils/EventDispatcher.ts +153 -0
  145. package/src/utils/EventUtils.ts +41 -0
  146. package/src/utils/MathUtils.ts +53 -0
  147. package/src/utils/ParseUtils.ts +46 -0
  148. package/src/utils/RangeHelper.ts +38 -0
  149. package/src/utils/Text.ts +30 -0
  150. package/src/utils/Timer.ts +72 -0
  151. package/src/utils/TypeScriptUtils.ts +22 -0
  152. package/src/utils/cbor.js +429 -0
  153. package/src/utils/checksum.ts +41 -0
  154. package/src/utils/environment.ts +46 -0
  155. package/src/utils/mcumgr.js +444 -0
  156. package/src/utils/stringUtils.ts +11 -0
  157. package/src/vibration/VibrationManager.ts +308 -0
  158. package/src/vibration/VibrationWaveformEffects.ts +128 -0
@@ -0,0 +1,59 @@
1
+ export declare const ConnectionTypes: readonly ["webBluetooth", "noble", "client"];
2
+ export type ConnectionType = (typeof ConnectionTypes)[number];
3
+ export declare const ConnectionStatuses: readonly ["notConnected", "connecting", "connected", "disconnecting"];
4
+ export type ConnectionStatus = (typeof ConnectionStatuses)[number];
5
+ export declare const ConnectionEventTypes: readonly ["notConnected", "connecting", "connected", "disconnecting", "connectionStatus", "isConnected"];
6
+ export type ConnectionEventType = (typeof ConnectionEventTypes)[number];
7
+ export interface ConnectionStatusEventMessages {
8
+ notConnected: any;
9
+ connecting: any;
10
+ connected: any;
11
+ disconnecting: any;
12
+ connectionStatus: {
13
+ connectionStatus: ConnectionStatus;
14
+ };
15
+ isConnected: {
16
+ isConnected: boolean;
17
+ };
18
+ }
19
+ export interface TxMessage {
20
+ type: TxRxMessageType;
21
+ data?: ArrayBuffer;
22
+ }
23
+ export declare const TxRxMessageTypes: readonly ["isCharging", "getBatteryCurrent", "getMtu", "getId", "getName", "setName", "getType", "setType", "getCurrentTime", "setCurrentTime", "getSensorConfiguration", "setSensorConfiguration", "getPressurePositions", "getSensorScalars", "sensorData", "triggerVibration", "getTfliteName", "setTfliteName", "getTfliteTask", "setTfliteTask", "getTfliteSampleRate", "setTfliteSampleRate", "getTfliteSensorTypes", "setTfliteSensorTypes", "tfliteIsReady", "getTfliteCaptureDelay", "setTfliteCaptureDelay", "getTfliteThreshold", "setTfliteThreshold", "getTfliteInferencingEnabled", "setTfliteInferencingEnabled", "tfliteInference", "maxFileLength", "getFileType", "setFileType", "getFileLength", "setFileLength", "getFileChecksum", "setFileChecksum", "setFileTransferCommand", "fileTransferStatus", "getFileBlock", "setFileBlock", "fileBytesTransferred"];
24
+ export type TxRxMessageType = (typeof TxRxMessageTypes)[number];
25
+ export declare const SMPMessageTypes: readonly ["smp"];
26
+ export type SMPMessageType = (typeof SMPMessageTypes)[number];
27
+ export declare const BatteryLevelMessageTypes: readonly ["batteryLevel"];
28
+ export type BatteryLevelMessageType = (typeof BatteryLevelMessageTypes)[number];
29
+ export declare const MetaConnectionMessageTypes: readonly ["rx", "tx"];
30
+ export type MetaConnectionMessageType = (typeof MetaConnectionMessageTypes)[number];
31
+ export declare const ConnectionMessageTypes: readonly ["batteryLevel", "manufacturerName", "modelNumber", "softwareRevision", "hardwareRevision", "firmwareRevision", "pnpId", "serialNumber", "rx", "tx", "isCharging", "getBatteryCurrent", "getMtu", "getId", "getName", "setName", "getType", "setType", "getCurrentTime", "setCurrentTime", "getSensorConfiguration", "setSensorConfiguration", "getPressurePositions", "getSensorScalars", "sensorData", "triggerVibration", "getTfliteName", "setTfliteName", "getTfliteTask", "setTfliteTask", "getTfliteSampleRate", "setTfliteSampleRate", "getTfliteSensorTypes", "setTfliteSensorTypes", "tfliteIsReady", "getTfliteCaptureDelay", "setTfliteCaptureDelay", "getTfliteThreshold", "setTfliteThreshold", "getTfliteInferencingEnabled", "setTfliteInferencingEnabled", "tfliteInference", "maxFileLength", "getFileType", "setFileType", "getFileLength", "setFileLength", "getFileChecksum", "setFileChecksum", "setFileTransferCommand", "fileTransferStatus", "getFileBlock", "setFileBlock", "fileBytesTransferred", "smp"];
32
+ export type ConnectionMessageType = (typeof ConnectionMessageTypes)[number];
33
+ export type ConnectionStatusCallback = (status: ConnectionStatus) => void;
34
+ export type MessageReceivedCallback = (messageType: ConnectionMessageType, dataView: DataView) => void;
35
+ declare abstract class BaseConnectionManager {
36
+ #private;
37
+ abstract get bluetoothId(): string;
38
+ onStatusUpdated?: ConnectionStatusCallback;
39
+ onMessageReceived?: MessageReceivedCallback;
40
+ protected get baseConstructor(): typeof BaseConnectionManager;
41
+ static get isSupported(): boolean;
42
+ get isSupported(): boolean;
43
+ static type: ConnectionType;
44
+ get type(): ConnectionType;
45
+ constructor();
46
+ get status(): "notConnected" | "connecting" | "connected" | "disconnecting";
47
+ protected set status(newConnectionStatus: "notConnected" | "connecting" | "connected" | "disconnecting");
48
+ get isConnected(): boolean;
49
+ connect(): Promise<void>;
50
+ get canReconnect(): boolean;
51
+ reconnect(): Promise<void>;
52
+ disconnect(): Promise<void>;
53
+ sendSmpMessage(data: ArrayBuffer): Promise<void>;
54
+ sendTxMessages(messages: TxMessage[] | undefined, sendImmediately?: boolean): Promise<void>;
55
+ mtu?: number;
56
+ sendTxData(data: ArrayBuffer): Promise<void>;
57
+ parseRxMessage(dataView: DataView): void;
58
+ }
59
+ export default BaseConnectionManager;
@@ -0,0 +1,23 @@
1
+ import BaseConnectionManager, { ConnectionType } from "./BaseConnectionManager.ts";
2
+ import { ClientDeviceMessage } from "../server/ServerUtils.ts";
3
+ export type SendClientMessageCallback = (...messages: ClientDeviceMessage[]) => void;
4
+ declare class ClientConnectionManager extends BaseConnectionManager {
5
+ #private;
6
+ static get isSupported(): boolean;
7
+ static get type(): ConnectionType;
8
+ get bluetoothId(): string;
9
+ set bluetoothId(newBluetoothId: string);
10
+ get isConnected(): boolean;
11
+ set isConnected(newIsConnected: boolean);
12
+ connect(): Promise<void>;
13
+ disconnect(): Promise<void>;
14
+ get canReconnect(): boolean;
15
+ reconnect(): Promise<void>;
16
+ sendClientMessage: SendClientMessageCallback;
17
+ sendClientConnectMessage: Function;
18
+ sendClientDisconnectMessage: Function;
19
+ sendSmpMessage(data: ArrayBuffer): Promise<void>;
20
+ sendTxData(data: ArrayBuffer): Promise<void>;
21
+ onClientMessage(dataView: DataView): void;
22
+ }
23
+ export default ClientConnectionManager;
@@ -0,0 +1,23 @@
1
+ import BaseConnectionManager, { ConnectionType } from "./BaseConnectionManager.ts";
2
+ import { ClientDeviceMessage } from "../server/ServerUtils.ts";
3
+ export type SendWebSocketMessageCallback = (...messages: ClientDeviceMessage[]) => void;
4
+ declare class WebSocketClientConnectionManager extends BaseConnectionManager {
5
+ #private;
6
+ static get isSupported(): boolean;
7
+ static get type(): ConnectionType;
8
+ get bluetoothId(): string;
9
+ set bluetoothId(newBluetoothId: string);
10
+ get isConnected(): boolean;
11
+ set isConnected(newIsConnected: boolean);
12
+ connect(): Promise<void>;
13
+ disconnect(): Promise<void>;
14
+ get canReconnect(): boolean;
15
+ reconnect(): Promise<void>;
16
+ sendWebSocketMessage: SendWebSocketMessageCallback;
17
+ sendWebSocketConnectMessage: Function;
18
+ sendWebSocketDisconnectMessage: Function;
19
+ sendSmpMessage(data: ArrayBuffer): Promise<void>;
20
+ sendTxData(data: ArrayBuffer): Promise<void>;
21
+ onWebSocketMessage(dataView: DataView): void;
22
+ }
23
+ export default WebSocketClientConnectionManager;
@@ -0,0 +1,10 @@
1
+ import BaseConnectionManager from "../BaseConnectionManager.ts";
2
+ import { BluetoothCharacteristicName } from "./bluetoothUUIDs.ts";
3
+ declare abstract class BluetoothConnectionManager extends BaseConnectionManager {
4
+ isInRange: boolean;
5
+ protected onCharacteristicValueChanged(characteristicName: BluetoothCharacteristicName, dataView: DataView): void;
6
+ protected writeCharacteristic(characteristicName: BluetoothCharacteristicName, data: ArrayBuffer): Promise<void>;
7
+ sendSmpMessage(data: ArrayBuffer): Promise<void>;
8
+ sendTxData(data: ArrayBuffer): Promise<void>;
9
+ }
10
+ export default BluetoothConnectionManager;
@@ -0,0 +1,42 @@
1
+ import BluetoothConnectionManager from "./BluetoothConnectionManager.ts";
2
+ /** NODE_START */
3
+ import type * as noble from "@abandonware/noble";
4
+ /** NODE_END */
5
+ import { BluetoothCharacteristicName, BluetoothServiceName } from "./bluetoothUUIDs.ts";
6
+ import { ConnectionType } from "../BaseConnectionManager.ts";
7
+ import NobleScanner from "../../scanner/NobleScanner.ts";
8
+ interface HasConnectionManager {
9
+ connectionManager: NobleConnectionManager | undefined;
10
+ }
11
+ export interface NoblePeripheral extends noble.Peripheral, HasConnectionManager {
12
+ scanner: NobleScanner;
13
+ }
14
+ interface NobleService extends noble.Service, HasConnectionManager {
15
+ name: BluetoothServiceName;
16
+ }
17
+ interface NobleCharacteristic extends noble.Characteristic, HasConnectionManager {
18
+ name: BluetoothCharacteristicName;
19
+ }
20
+ declare class NobleConnectionManager extends BluetoothConnectionManager {
21
+ #private;
22
+ get bluetoothId(): string;
23
+ static get isSupported(): boolean;
24
+ static get type(): ConnectionType;
25
+ get isConnected(): boolean;
26
+ connect(): Promise<void>;
27
+ disconnect(): Promise<void>;
28
+ writeCharacteristic(characteristicName: BluetoothCharacteristicName, data: ArrayBuffer): Promise<void>;
29
+ get canReconnect(): boolean;
30
+ reconnect(): Promise<void>;
31
+ get noblePeripheral(): NoblePeripheral | undefined;
32
+ set noblePeripheral(newNoblePeripheral: NoblePeripheral);
33
+ onNoblePeripheralConnect(noblePeripheral: NoblePeripheral): Promise<void>;
34
+ onNoblePeripheralDisconnect(noblePeripheral: NoblePeripheral): Promise<void>;
35
+ onNoblePeripheralRssiUpdate(noblePeripheral: NoblePeripheral, rssi: number): Promise<void>;
36
+ onNoblePeripheralServicesDiscover(noblePeripheral: NoblePeripheral, services: NobleService[]): Promise<void>;
37
+ onNobleServiceCharacteristicsDiscover(service: NobleService, characteristics: NobleCharacteristic[]): Promise<void>;
38
+ onNobleCharacteristicData(characteristic: NobleCharacteristic, data: Buffer, isNotification: boolean): void;
39
+ onNobleCharacteristicWrite(characteristic: NobleCharacteristic): void;
40
+ onNobleCharacteristicNotify(characteristic: NobleCharacteristic, isSubscribed: boolean): void;
41
+ }
42
+ export default NobleConnectionManager;
@@ -0,0 +1,20 @@
1
+ import BluetoothConnectionManager from "./BluetoothConnectionManager.ts";
2
+ import { BluetoothCharacteristicName } from "./bluetoothUUIDs.ts";
3
+ import { ConnectionType } from "../BaseConnectionManager.ts";
4
+ /** BROWSER_END */
5
+ declare class WebBluetoothConnectionManager extends BluetoothConnectionManager {
6
+ #private;
7
+ get bluetoothId(): string;
8
+ static get isSupported(): boolean;
9
+ static get type(): ConnectionType;
10
+ get device(): BluetoothDevice | undefined;
11
+ set device(newDevice: BluetoothDevice | undefined);
12
+ get server(): BluetoothRemoteGATTServer | undefined;
13
+ get isConnected(): boolean;
14
+ connect(): Promise<void>;
15
+ disconnect(): Promise<void>;
16
+ writeCharacteristic(characteristicName: BluetoothCharacteristicName, data: ArrayBuffer): Promise<void>;
17
+ get canReconnect(): boolean;
18
+ reconnect(): Promise<void>;
19
+ }
20
+ export default WebBluetoothConnectionManager;
@@ -0,0 +1,14 @@
1
+ export type BluetoothServiceName = "deviceInformation" | "battery" | "main" | "smp";
2
+ import { DeviceInformationMessageType } from "../../DeviceInformationManager.ts";
3
+ export type BluetoothCharacteristicName = DeviceInformationMessageType | "batteryLevel" | "rx" | "tx" | "smp";
4
+ export declare const serviceUUIDs: BluetoothServiceUUID[];
5
+ export declare const optionalServiceUUIDs: BluetoothServiceUUID[];
6
+ export declare const allServiceUUIDs: BluetoothServiceUUID[];
7
+ export declare function getServiceNameFromUUID(serviceUUID: BluetoothServiceUUID): BluetoothServiceName | undefined;
8
+ export declare const characteristicUUIDs: BluetoothCharacteristicUUID[];
9
+ export declare const allCharacteristicUUIDs: BluetoothCharacteristicUUID[];
10
+ export declare const characteristicNames: BluetoothCharacteristicName[];
11
+ export declare const allCharacteristicNames: BluetoothCharacteristicName[];
12
+ export declare function getCharacteristicNameFromUUID(characteristicUUID: BluetoothCharacteristicUUID): BluetoothCharacteristicName | undefined;
13
+ export declare function getCharacteristicProperties(characteristicName: BluetoothCharacteristicName): BluetoothCharacteristicProperties;
14
+ export declare const serviceDataUUID = "0000";
@@ -0,0 +1,23 @@
1
+ import BaseConnectionManager, { ConnectionType } from "../BaseConnectionManager.ts";
2
+ import { ClientDeviceMessage } from "../../server/ServerUtils.ts";
3
+ export type SendClientMessageCallback = (...messages: ClientDeviceMessage[]) => void;
4
+ declare class ClientConnectionManager extends BaseConnectionManager {
5
+ #private;
6
+ static get isSupported(): boolean;
7
+ static get type(): ConnectionType;
8
+ get bluetoothId(): string;
9
+ set bluetoothId(newBluetoothId: string);
10
+ get isConnected(): boolean;
11
+ set isConnected(newIsConnected: boolean);
12
+ connect(): Promise<void>;
13
+ disconnect(): Promise<void>;
14
+ get canReconnect(): boolean;
15
+ reconnect(): Promise<void>;
16
+ sendClientMessage: SendClientMessageCallback;
17
+ sendClientConnectMessage: Function;
18
+ sendClientDisconnectMessage: Function;
19
+ sendSmpMessage(data: ArrayBuffer): Promise<void>;
20
+ sendTxData(data: ArrayBuffer): Promise<void>;
21
+ onClientMessage(dataView: DataView): void;
22
+ }
23
+ export default ClientConnectionManager;
@@ -0,0 +1,23 @@
1
+ import BaseConnectionManager, { ConnectionType } from "../BaseConnectionManager.ts";
2
+ import { ClientDeviceMessage } from "../../server/ServerUtils.ts";
3
+ export type SendWebSocketMessageCallback = (...messages: ClientDeviceMessage[]) => void;
4
+ declare class WebSocketClientConnectionManager extends BaseConnectionManager {
5
+ #private;
6
+ static get isSupported(): boolean;
7
+ static get type(): ConnectionType;
8
+ get bluetoothId(): string;
9
+ set bluetoothId(newBluetoothId: string);
10
+ get isConnected(): boolean;
11
+ set isConnected(newIsConnected: boolean);
12
+ connect(): Promise<void>;
13
+ disconnect(): Promise<void>;
14
+ get canReconnect(): boolean;
15
+ reconnect(): Promise<void>;
16
+ sendWebSocketMessage: SendWebSocketMessageCallback;
17
+ sendWebSocketConnectMessage: Function;
18
+ sendWebSocketDisconnectMessage: Function;
19
+ sendSmpMessage(data: ArrayBuffer): Promise<void>;
20
+ sendTxData(data: ArrayBuffer): Promise<void>;
21
+ onWebSocketMessage(dataView: DataView): void;
22
+ }
23
+ export default WebSocketClientConnectionManager;
@@ -0,0 +1,60 @@
1
+ import EventDispatcher, { BoundEventListeners, Event, EventListenerMap, EventMap } from "../utils/EventDispatcher.ts";
2
+ import Device, { DeviceEventType, DeviceEventMessages } from "../Device.ts";
3
+ import { InsoleSide } from "../InformationManager.ts";
4
+ import { VibrationConfiguration } from "../vibration/VibrationManager.ts";
5
+ import { SensorConfiguration } from "../sensor/SensorConfigurationManager.ts";
6
+ import { DevicePairSensorDataEventMessages } from "./DevicePairSensorDataManager.ts";
7
+ import { AddPrefixToInterfaceKeys, ExtendInterfaceValues } from "../utils/TypeScriptUtils.ts";
8
+ interface BaseDevicePairDeviceEventMessage {
9
+ device: Device;
10
+ side: InsoleSide;
11
+ }
12
+ type DevicePairDeviceEventMessages = ExtendInterfaceValues<AddPrefixToInterfaceKeys<DeviceEventMessages, "device">, BaseDevicePairDeviceEventMessage>;
13
+ export declare const DevicePairConnectionEventTypes: readonly ["isConnected"];
14
+ export type DevicePairConnectionEventType = (typeof DevicePairConnectionEventTypes)[number];
15
+ export interface DevicePairConnectionEventMessages {
16
+ isConnected: {
17
+ isConnected: boolean;
18
+ };
19
+ }
20
+ export declare const DevicePairEventTypes: readonly ["isConnected", "pressure", "sensorData", ...("deviceOrientation" | "deviceConnected" | "deviceIsConnected" | "deviceMaxFileLength" | "deviceGetFileType" | "deviceGetFileLength" | "deviceGetFileChecksum" | "deviceFileTransferStatus" | "deviceGetFileBlock" | "deviceFileTransferProgress" | "deviceFileTransferComplete" | "deviceFileReceived" | "devicePressure" | "deviceAcceleration" | "deviceGravity" | "deviceLinearAcceleration" | "deviceGyroscope" | "deviceMagnetometer" | "deviceGameRotation" | "deviceRotation" | "deviceActivity" | "deviceStepCounter" | "deviceStepDetector" | "deviceDeviceOrientation" | "deviceBarometer" | "deviceSensorData" | "deviceGetSensorConfiguration" | "deviceGetTfliteName" | "deviceGetTfliteTask" | "deviceGetTfliteSampleRate" | "deviceGetTfliteSensorTypes" | "deviceTfliteIsReady" | "deviceGetTfliteCaptureDelay" | "deviceGetTfliteThreshold" | "deviceGetTfliteInferencingEnabled" | "deviceTfliteInference" | "deviceManufacturerName" | "deviceModelNumber" | "deviceSoftwareRevision" | "deviceHardwareRevision" | "deviceFirmwareRevision" | "devicePnpId" | "deviceSerialNumber" | "deviceDeviceInformation" | "deviceIsCharging" | "deviceGetBatteryCurrent" | "deviceGetMtu" | "deviceGetId" | "deviceGetName" | "deviceGetType" | "deviceGetCurrentTime" | "deviceNotConnected" | "deviceConnecting" | "deviceDisconnecting" | "deviceConnectionStatus" | "deviceSmp" | "deviceBatteryLevel" | "deviceFirmwareImages" | "deviceFirmwareUploadProgress" | "deviceFirmwareStatus" | "deviceConnectionMessage")[]];
21
+ export type DevicePairEventType = (typeof DevicePairEventTypes)[number];
22
+ export type DevicePairEventMessages = DevicePairConnectionEventMessages & DevicePairSensorDataEventMessages & DevicePairDeviceEventMessages;
23
+ export type DevicePairEventDispatcher = EventDispatcher<DevicePair, DevicePairEventType, DevicePairEventMessages>;
24
+ export type DevicePairEventMap = EventMap<DevicePair, DeviceEventType, DevicePairEventMessages>;
25
+ export type DevicePairEventListenerMap = EventListenerMap<DevicePair, DeviceEventType, DevicePairEventMessages>;
26
+ export type DevicePairEvent = Event<DevicePair, DeviceEventType, DevicePairEventMessages>;
27
+ export type BoundDevicePairEventListeners = BoundEventListeners<DevicePair, DeviceEventType, DevicePairEventMessages>;
28
+ declare class DevicePair {
29
+ #private;
30
+ constructor();
31
+ get sides(): readonly ["left", "right"];
32
+ get addEventListener(): <T extends "pressure" | "deviceOrientation" | "sensorData" | "isConnected" | "deviceConnected" | "deviceIsConnected" | "deviceMaxFileLength" | "deviceGetFileType" | "deviceGetFileLength" | "deviceGetFileChecksum" | "deviceFileTransferStatus" | "deviceGetFileBlock" | "deviceFileTransferProgress" | "deviceFileTransferComplete" | "deviceFileReceived" | "devicePressure" | "deviceAcceleration" | "deviceGravity" | "deviceLinearAcceleration" | "deviceGyroscope" | "deviceMagnetometer" | "deviceGameRotation" | "deviceRotation" | "deviceActivity" | "deviceStepCounter" | "deviceStepDetector" | "deviceDeviceOrientation" | "deviceBarometer" | "deviceSensorData" | "deviceGetSensorConfiguration" | "deviceGetTfliteName" | "deviceGetTfliteTask" | "deviceGetTfliteSampleRate" | "deviceGetTfliteSensorTypes" | "deviceTfliteIsReady" | "deviceGetTfliteCaptureDelay" | "deviceGetTfliteThreshold" | "deviceGetTfliteInferencingEnabled" | "deviceTfliteInference" | "deviceManufacturerName" | "deviceModelNumber" | "deviceSoftwareRevision" | "deviceHardwareRevision" | "deviceFirmwareRevision" | "devicePnpId" | "deviceSerialNumber" | "deviceDeviceInformation" | "deviceIsCharging" | "deviceGetBatteryCurrent" | "deviceGetMtu" | "deviceGetId" | "deviceGetName" | "deviceGetType" | "deviceGetCurrentTime" | "deviceNotConnected" | "deviceConnecting" | "deviceDisconnecting" | "deviceConnectionStatus" | "deviceSmp" | "deviceBatteryLevel" | "deviceFirmwareImages" | "deviceFirmwareUploadProgress" | "deviceFirmwareStatus" | "deviceConnectionMessage">(type: T, listener: (event: {
33
+ type: T;
34
+ target: DevicePair;
35
+ message: DevicePairEventMessages[T];
36
+ }) => void, options?: {
37
+ once?: boolean;
38
+ }) => void;
39
+ get removeEventListener(): <T extends "pressure" | "deviceOrientation" | "sensorData" | "isConnected" | "deviceConnected" | "deviceIsConnected" | "deviceMaxFileLength" | "deviceGetFileType" | "deviceGetFileLength" | "deviceGetFileChecksum" | "deviceFileTransferStatus" | "deviceGetFileBlock" | "deviceFileTransferProgress" | "deviceFileTransferComplete" | "deviceFileReceived" | "devicePressure" | "deviceAcceleration" | "deviceGravity" | "deviceLinearAcceleration" | "deviceGyroscope" | "deviceMagnetometer" | "deviceGameRotation" | "deviceRotation" | "deviceActivity" | "deviceStepCounter" | "deviceStepDetector" | "deviceDeviceOrientation" | "deviceBarometer" | "deviceSensorData" | "deviceGetSensorConfiguration" | "deviceGetTfliteName" | "deviceGetTfliteTask" | "deviceGetTfliteSampleRate" | "deviceGetTfliteSensorTypes" | "deviceTfliteIsReady" | "deviceGetTfliteCaptureDelay" | "deviceGetTfliteThreshold" | "deviceGetTfliteInferencingEnabled" | "deviceTfliteInference" | "deviceManufacturerName" | "deviceModelNumber" | "deviceSoftwareRevision" | "deviceHardwareRevision" | "deviceFirmwareRevision" | "devicePnpId" | "deviceSerialNumber" | "deviceDeviceInformation" | "deviceIsCharging" | "deviceGetBatteryCurrent" | "deviceGetMtu" | "deviceGetId" | "deviceGetName" | "deviceGetType" | "deviceGetCurrentTime" | "deviceNotConnected" | "deviceConnecting" | "deviceDisconnecting" | "deviceConnectionStatus" | "deviceSmp" | "deviceBatteryLevel" | "deviceFirmwareImages" | "deviceFirmwareUploadProgress" | "deviceFirmwareStatus" | "deviceConnectionMessage">(type: T, listener: (event: {
40
+ type: T;
41
+ target: DevicePair;
42
+ message: DevicePairEventMessages[T];
43
+ }) => void) => void;
44
+ get waitForEvent(): <T extends "pressure" | "deviceOrientation" | "sensorData" | "isConnected" | "deviceConnected" | "deviceIsConnected" | "deviceMaxFileLength" | "deviceGetFileType" | "deviceGetFileLength" | "deviceGetFileChecksum" | "deviceFileTransferStatus" | "deviceGetFileBlock" | "deviceFileTransferProgress" | "deviceFileTransferComplete" | "deviceFileReceived" | "devicePressure" | "deviceAcceleration" | "deviceGravity" | "deviceLinearAcceleration" | "deviceGyroscope" | "deviceMagnetometer" | "deviceGameRotation" | "deviceRotation" | "deviceActivity" | "deviceStepCounter" | "deviceStepDetector" | "deviceDeviceOrientation" | "deviceBarometer" | "deviceSensorData" | "deviceGetSensorConfiguration" | "deviceGetTfliteName" | "deviceGetTfliteTask" | "deviceGetTfliteSampleRate" | "deviceGetTfliteSensorTypes" | "deviceTfliteIsReady" | "deviceGetTfliteCaptureDelay" | "deviceGetTfliteThreshold" | "deviceGetTfliteInferencingEnabled" | "deviceTfliteInference" | "deviceManufacturerName" | "deviceModelNumber" | "deviceSoftwareRevision" | "deviceHardwareRevision" | "deviceFirmwareRevision" | "devicePnpId" | "deviceSerialNumber" | "deviceDeviceInformation" | "deviceIsCharging" | "deviceGetBatteryCurrent" | "deviceGetMtu" | "deviceGetId" | "deviceGetName" | "deviceGetType" | "deviceGetCurrentTime" | "deviceNotConnected" | "deviceConnecting" | "deviceDisconnecting" | "deviceConnectionStatus" | "deviceSmp" | "deviceBatteryLevel" | "deviceFirmwareImages" | "deviceFirmwareUploadProgress" | "deviceFirmwareStatus" | "deviceConnectionMessage">(type: T) => Promise<{
45
+ type: T;
46
+ target: DevicePair;
47
+ message: DevicePairEventMessages[T];
48
+ }>;
49
+ get left(): Device | undefined;
50
+ get right(): Device | undefined;
51
+ get isConnected(): boolean;
52
+ get isPartiallyConnected(): boolean;
53
+ get isHalfConnected(): boolean;
54
+ assignInsole(device: Device): Device | undefined;
55
+ setSensorConfiguration(sensorConfiguration: SensorConfiguration): void;
56
+ resetPressureRange(): void;
57
+ triggerVibration(vibrationConfigurations: VibrationConfiguration[], sendImmediately?: boolean): Promise<PromiseSettledResult<void | undefined>[]>;
58
+ static get shared(): DevicePair;
59
+ }
60
+ export default DevicePair;
@@ -0,0 +1,25 @@
1
+ import { PressureData } from "../sensor/PressureSensorDataManager.ts";
2
+ import { CenterOfPressure } from "../utils/CenterOfPressureHelper.ts";
3
+ import { InsoleSide } from "../InformationManager.ts";
4
+ import { DeviceEventMap } from "../Device.ts";
5
+ export type DevicePairRawPressureData = {
6
+ [insoleSide in InsoleSide]: PressureData;
7
+ };
8
+ export interface DevicePairPressureData {
9
+ rawSum: number;
10
+ normalizedSum: number;
11
+ center?: CenterOfPressure;
12
+ normalizedCenter?: CenterOfPressure;
13
+ }
14
+ export interface DevicePairPressureDataEventMessage {
15
+ pressure: DevicePairPressureData;
16
+ }
17
+ export interface DevicePairPressureDataEventMessages {
18
+ pressure: DevicePairPressureDataEventMessage;
19
+ }
20
+ declare class DevicePairPressureSensorDataManager {
21
+ #private;
22
+ resetPressureRange(): void;
23
+ onDevicePressureData(event: DeviceEventMap["pressure"]): DevicePairPressureData | undefined;
24
+ }
25
+ export default DevicePairPressureSensorDataManager;
@@ -0,0 +1,33 @@
1
+ import DevicePairPressureSensorDataManager, { DevicePairPressureDataEventMessages } from "./DevicePairPressureSensorDataManager.ts";
2
+ import { InsoleSide } from "../InformationManager.ts";
3
+ import { DeviceEventMap } from "../Device.ts";
4
+ import EventDispatcher from "../utils/EventDispatcher.ts";
5
+ import DevicePair from "./DevicePair.ts";
6
+ import { AddKeysAsPropertyToInterface, ExtendInterfaceValues, ValueOf } from "../utils/TypeScriptUtils.ts";
7
+ export declare const DevicePairSensorTypes: readonly ["pressure", "sensorData"];
8
+ export type DevicePairSensorType = (typeof DevicePairSensorTypes)[number];
9
+ export declare const DevicePairSensorDataEventTypes: readonly ["pressure", "sensorData"];
10
+ export type DevicePairSensorDataEventType = (typeof DevicePairSensorDataEventTypes)[number];
11
+ export type DevicePairSensorDataTimestamps = {
12
+ [insoleSide in InsoleSide]: number;
13
+ };
14
+ interface BaseDevicePairSensorDataEventMessage {
15
+ timestamps: DevicePairSensorDataTimestamps;
16
+ }
17
+ type BaseDevicePairSensorDataEventMessages = DevicePairPressureDataEventMessages;
18
+ type _DevicePairSensorDataEventMessages = ExtendInterfaceValues<AddKeysAsPropertyToInterface<BaseDevicePairSensorDataEventMessages, "sensorType">, BaseDevicePairSensorDataEventMessage>;
19
+ export type DevicePairSensorDataEventMessage = ValueOf<_DevicePairSensorDataEventMessages>;
20
+ interface AnyDevicePairSensorDataEventMessages {
21
+ sensorData: DevicePairSensorDataEventMessage;
22
+ }
23
+ export type DevicePairSensorDataEventMessages = _DevicePairSensorDataEventMessages & AnyDevicePairSensorDataEventMessages;
24
+ export type DevicePairSensorDataEventDispatcher = EventDispatcher<DevicePair, DevicePairSensorDataEventType, DevicePairSensorDataEventMessages>;
25
+ declare class DevicePairSensorDataManager {
26
+ #private;
27
+ eventDispatcher: DevicePairSensorDataEventDispatcher;
28
+ get dispatchEvent(): <T extends "pressure" | "sensorData">(type: T, message: DevicePairSensorDataEventMessages[T]) => void;
29
+ pressureSensorDataManager: DevicePairPressureSensorDataManager;
30
+ resetPressureRange(): void;
31
+ onDeviceSensorData(event: DeviceEventMap["sensorData"]): void;
32
+ }
33
+ export default DevicePairSensorDataManager;
@@ -0,0 +1,66 @@
1
+ import EventDispatcher, { BoundEventListeners, Event, EventMap } from "../utils/EventDispatcher.ts";
2
+ import { DeviceType } from "../InformationManager.ts";
3
+ export declare const ScannerEventTypes: readonly ["isScanningAvailable", "isScanning", "discoveredDevice", "expiredDiscoveredDevice"];
4
+ export type ScannerEventType = (typeof ScannerEventTypes)[number];
5
+ export interface DiscoveredDevice {
6
+ bluetoothId: string;
7
+ name: string;
8
+ deviceType: DeviceType;
9
+ rssi: number;
10
+ }
11
+ interface ScannerDiscoveredDeviceEventMessage {
12
+ discoveredDevice: DiscoveredDevice;
13
+ }
14
+ export interface ScannerEventMessages {
15
+ discoveredDevice: ScannerDiscoveredDeviceEventMessage;
16
+ expiredDiscoveredDevice: ScannerDiscoveredDeviceEventMessage;
17
+ isScanningAvailable: {
18
+ isScanningAvailable: boolean;
19
+ };
20
+ isScanning: {
21
+ isScanning: boolean;
22
+ };
23
+ }
24
+ export type ScannerEventDispatcher = EventDispatcher<BaseScanner, ScannerEventType, ScannerEventMessages>;
25
+ export type ScannerEventMap = EventMap<BaseScanner, ScannerEventType, ScannerEventMessages>;
26
+ export type ScannerEvent = Event<BaseScanner, ScannerEventType, ScannerEventMessages>;
27
+ export type BoundScannerEventListeners = BoundEventListeners<BaseScanner, ScannerEventType, ScannerEventMessages>;
28
+ export type DiscoveredDevicesMap = {
29
+ [deviceId: string]: DiscoveredDevice;
30
+ };
31
+ declare abstract class BaseScanner {
32
+ #private;
33
+ protected get baseConstructor(): typeof BaseScanner;
34
+ static get isSupported(): boolean;
35
+ get isSupported(): boolean;
36
+ constructor();
37
+ get addEventListener(): <T extends "isScanningAvailable" | "isScanning" | "discoveredDevice" | "expiredDiscoveredDevice">(type: T, listener: (event: {
38
+ type: T;
39
+ target: BaseScanner;
40
+ message: ScannerEventMessages[T];
41
+ }) => void, options?: {
42
+ once?: boolean;
43
+ }) => void;
44
+ protected get dispatchEvent(): <T extends "isScanningAvailable" | "isScanning" | "discoveredDevice" | "expiredDiscoveredDevice">(type: T, message: ScannerEventMessages[T]) => void;
45
+ get removeEventListener(): <T extends "isScanningAvailable" | "isScanning" | "discoveredDevice" | "expiredDiscoveredDevice">(type: T, listener: (event: {
46
+ type: T;
47
+ target: BaseScanner;
48
+ message: ScannerEventMessages[T];
49
+ }) => void) => void;
50
+ get waitForEvent(): <T extends "isScanningAvailable" | "isScanning" | "discoveredDevice" | "expiredDiscoveredDevice">(type: T) => Promise<{
51
+ type: T;
52
+ target: BaseScanner;
53
+ message: ScannerEventMessages[T];
54
+ }>;
55
+ get isScanningAvailable(): boolean;
56
+ get isScanning(): boolean;
57
+ startScan(): void;
58
+ stopScan(): void;
59
+ get discoveredDevices(): Readonly<DiscoveredDevicesMap>;
60
+ get discoveredDevicesArray(): DiscoveredDevice[];
61
+ static get DiscoveredDeviceExpirationTimeout(): number;
62
+ connectToDevice(deviceId: string): Promise<void>;
63
+ get canReset(): boolean;
64
+ reset(): void;
65
+ }
66
+ export default BaseScanner;
@@ -0,0 +1,17 @@
1
+ import BaseScanner from "./BaseScanner.ts";
2
+ /** NODE_END */
3
+ export declare const NobleStates: readonly ["unknown", "resetting", "unsupported", "unauthorized", "poweredOff", "poweredOn"];
4
+ export type NobleState = (typeof NobleStates)[number];
5
+ declare class NobleScanner extends BaseScanner {
6
+ #private;
7
+ static get isSupported(): boolean;
8
+ get isScanning(): boolean;
9
+ constructor();
10
+ get isScanningAvailable(): boolean;
11
+ startScan(): void;
12
+ stopScan(): void;
13
+ get canReset(): boolean;
14
+ reset(): void;
15
+ connectToDevice(deviceId: string): Promise<void>;
16
+ }
17
+ export default NobleScanner;
@@ -0,0 +1,3 @@
1
+ import BaseScanner from "./BaseScanner.ts";
2
+ declare let scanner: BaseScanner | undefined;
3
+ export default scanner;
@@ -0,0 +1,16 @@
1
+ export declare const BarometerSensorTypes: readonly ["barometer"];
2
+ export type BarometerSensorType = (typeof BarometerSensorTypes)[number];
3
+ export declare const ContinuousBarometerSensorTypes: readonly ["barometer"];
4
+ export type ContinuousBarometerSensorType = (typeof ContinuousBarometerSensorTypes)[number];
5
+ export interface BarometerSensorDataEventMessages {
6
+ barometer: {
7
+ barometer: number;
8
+ };
9
+ }
10
+ declare class BarometerSensorDataManager {
11
+ #private;
12
+ parseData(dataView: DataView, scalar: number): {
13
+ pressure: number;
14
+ };
15
+ }
16
+ export default BarometerSensorDataManager;
@@ -0,0 +1,69 @@
1
+ export declare const MotionSensorTypes: readonly ["acceleration", "gravity", "linearAcceleration", "gyroscope", "magnetometer", "gameRotation", "rotation", "orientation", "activity", "stepCounter", "stepDetector", "deviceOrientation"];
2
+ export type MotionSensorType = (typeof MotionSensorTypes)[number];
3
+ export declare const ContinuousMotionTypes: readonly ["acceleration", "gravity", "linearAcceleration", "gyroscope", "magnetometer", "gameRotation", "rotation"];
4
+ export type ContinuousMotionType = (typeof ContinuousMotionTypes)[number];
5
+ import { Vector3, Quaternion, Euler } from "../utils/MathUtils.ts";
6
+ import { ValueOf } from "../utils/TypeScriptUtils.ts";
7
+ export declare const Vector2Size: number;
8
+ export declare const Vector3Size: number;
9
+ export declare const QuaternionSize: number;
10
+ export declare const ActivityTypes: readonly ["still", "walking", "running", "bicycle", "vehicle", "tilting"];
11
+ export type ActivityType = (typeof ActivityTypes)[number];
12
+ export interface Activity {
13
+ still: boolean;
14
+ walking: boolean;
15
+ running: boolean;
16
+ bicycle: boolean;
17
+ vehicle: boolean;
18
+ tilting: boolean;
19
+ }
20
+ export declare const DeviceOrientations: readonly ["portraitUpright", "landscapeLeft", "portraitUpsideDown", "landscapeRight", "unknown"];
21
+ export type DeviceOrientation = (typeof DeviceOrientations)[number];
22
+ export interface MotionSensorDataEventMessages {
23
+ acceleration: {
24
+ acceleration: Vector3;
25
+ };
26
+ gravity: {
27
+ gravity: Vector3;
28
+ };
29
+ linearAcceleration: {
30
+ linearAcceleration: Vector3;
31
+ };
32
+ gyroscope: {
33
+ gyroscope: Vector3;
34
+ };
35
+ magnetometer: {
36
+ magnetometer: Vector3;
37
+ };
38
+ gameRotation: {
39
+ gameRotation: Quaternion;
40
+ };
41
+ rotation: {
42
+ rotation: Quaternion;
43
+ };
44
+ orientation: {
45
+ orientation: Euler;
46
+ };
47
+ stepDetector: {
48
+ stepDetector: Object;
49
+ };
50
+ stepCounter: {
51
+ stepCounter: number;
52
+ };
53
+ activity: {
54
+ activity: Activity;
55
+ };
56
+ deviceOrientation: {
57
+ deviceOrientation: DeviceOrientation;
58
+ };
59
+ }
60
+ export type MotionSensorDataEventMessage = ValueOf<MotionSensorDataEventMessages>;
61
+ declare class MotionSensorDataManager {
62
+ parseVector3(dataView: DataView, scalar: number): Vector3;
63
+ parseQuaternion(dataView: DataView, scalar: number): Quaternion;
64
+ parseEuler(dataView: DataView, scalar: number): Euler;
65
+ parseStepCounter(dataView: DataView): number;
66
+ parseActivity(dataView: DataView): Activity;
67
+ parseDeviceOrientation(dataView: DataView): "portraitUpright" | "landscapeLeft" | "portraitUpsideDown" | "landscapeRight" | "unknown";
68
+ }
69
+ export default MotionSensorDataManager;
@@ -0,0 +1,36 @@
1
+ export declare const PressureSensorTypes: readonly ["pressure"];
2
+ export type PressureSensorType = (typeof PressureSensorTypes)[number];
3
+ export declare const ContinuousPressureSensorTypes: readonly ["pressure"];
4
+ export type ContinuousPressureSensorType = (typeof ContinuousPressureSensorTypes)[number];
5
+ import { Vector2 } from "../utils/MathUtils.ts";
6
+ export type PressureSensorPosition = Vector2;
7
+ import { CenterOfPressure } from "../utils/CenterOfPressureHelper.ts";
8
+ export interface PressureSensorValue {
9
+ position: PressureSensorPosition;
10
+ rawValue: number;
11
+ scaledValue: number;
12
+ normalizedValue: number;
13
+ weightedValue: number;
14
+ }
15
+ export interface PressureData {
16
+ sensors: PressureSensorValue[];
17
+ scaledSum: number;
18
+ normalizedSum: number;
19
+ center?: CenterOfPressure;
20
+ normalizedCenter?: CenterOfPressure;
21
+ }
22
+ export interface PressureDataEventMessages {
23
+ pressure: {
24
+ pressure: PressureData;
25
+ };
26
+ }
27
+ export declare const DefaultNumberOfPressureSensors = 8;
28
+ declare class PressureSensorDataManager {
29
+ #private;
30
+ get positions(): Vector2[];
31
+ get numberOfSensors(): number;
32
+ parsePositions(dataView: DataView): void;
33
+ resetRange(): void;
34
+ parseData(dataView: DataView, scalar: number): PressureData;
35
+ }
36
+ export default PressureSensorDataManager;