@hangtime/grip-connect 0.10.9 → 0.13.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/README.md +14 -3
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/command.interface.d.ts +120 -20
- package/dist/cjs/interfaces/command.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/device/climbro.interface.d.ts +25 -0
- package/dist/cjs/interfaces/device/climbro.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/device/cts500.interface.d.ts +96 -0
- package/dist/cjs/interfaces/device/cts500.interface.d.ts.map +1 -0
- package/dist/cjs/interfaces/device/cts500.interface.js +3 -0
- package/dist/cjs/interfaces/device/cts500.interface.js.map +1 -0
- package/dist/cjs/interfaces/device/forceboard.interface.d.ts +2 -2
- package/dist/cjs/interfaces/device/forceboard.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/device/progressor.interface.d.ts +17 -7
- package/dist/cjs/interfaces/device/progressor.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/index.d.ts +2 -0
- package/dist/cjs/interfaces/index.d.ts.map +1 -1
- package/dist/cjs/interfaces/nordic.interface.d.ts +47 -0
- package/dist/cjs/interfaces/nordic.interface.d.ts.map +1 -0
- package/dist/cjs/interfaces/nordic.interface.js +3 -0
- package/dist/cjs/interfaces/nordic.interface.js.map +1 -0
- package/dist/cjs/models/device/climbro.model.d.ts +25 -0
- package/dist/cjs/models/device/climbro.model.d.ts.map +1 -1
- package/dist/cjs/models/device/climbro.model.js +93 -1
- package/dist/cjs/models/device/climbro.model.js.map +1 -1
- package/dist/cjs/models/device/cts500.model.d.ts +173 -0
- package/dist/cjs/models/device/cts500.model.d.ts.map +1 -0
- package/dist/cjs/models/device/cts500.model.js +588 -0
- package/dist/cjs/models/device/cts500.model.js.map +1 -0
- package/dist/cjs/models/device/entralpi.model.d.ts.map +1 -1
- package/dist/cjs/models/device/entralpi.model.js +3 -5
- package/dist/cjs/models/device/entralpi.model.js.map +1 -1
- package/dist/cjs/models/device/forceboard.model.d.ts +2 -2
- package/dist/cjs/models/device/forceboard.model.d.ts.map +1 -1
- package/dist/cjs/models/device/forceboard.model.js +3 -14
- package/dist/cjs/models/device/forceboard.model.js.map +1 -1
- package/dist/cjs/models/device/progressor.model.d.ts +25 -12
- package/dist/cjs/models/device/progressor.model.d.ts.map +1 -1
- package/dist/cjs/models/device/progressor.model.js +82 -31
- package/dist/cjs/models/device/progressor.model.js.map +1 -1
- package/dist/cjs/models/device.model.d.ts +7 -0
- package/dist/cjs/models/device.model.d.ts.map +1 -1
- package/dist/cjs/models/device.model.js +52 -32
- package/dist/cjs/models/device.model.js.map +1 -1
- package/dist/cjs/models/index.d.ts +2 -0
- package/dist/cjs/models/index.d.ts.map +1 -1
- package/dist/cjs/models/index.js +6 -1
- package/dist/cjs/models/index.js.map +1 -1
- package/dist/cjs/models/nordic.model.d.ts +128 -0
- package/dist/cjs/models/nordic.model.d.ts.map +1 -0
- package/dist/cjs/models/nordic.model.js +405 -0
- package/dist/cjs/models/nordic.model.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/command.interface.d.ts +120 -20
- package/dist/interfaces/command.interface.d.ts.map +1 -1
- package/dist/interfaces/device/climbro.interface.d.ts +25 -0
- package/dist/interfaces/device/climbro.interface.d.ts.map +1 -1
- package/dist/interfaces/device/cts500.interface.d.ts +96 -0
- package/dist/interfaces/device/cts500.interface.d.ts.map +1 -0
- package/dist/interfaces/device/cts500.interface.js +2 -0
- package/dist/interfaces/device/cts500.interface.js.map +1 -0
- package/dist/interfaces/device/forceboard.interface.d.ts +2 -2
- package/dist/interfaces/device/forceboard.interface.d.ts.map +1 -1
- package/dist/interfaces/device/progressor.interface.d.ts +17 -7
- package/dist/interfaces/device/progressor.interface.d.ts.map +1 -1
- package/dist/interfaces/index.d.ts +2 -0
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/nordic.interface.d.ts +47 -0
- package/dist/interfaces/nordic.interface.d.ts.map +1 -0
- package/dist/interfaces/nordic.interface.js +2 -0
- package/dist/interfaces/nordic.interface.js.map +1 -0
- package/dist/models/device/climbro.model.d.ts +25 -0
- package/dist/models/device/climbro.model.d.ts.map +1 -1
- package/dist/models/device/climbro.model.js +93 -1
- package/dist/models/device/climbro.model.js.map +1 -1
- package/dist/models/device/cts500.model.d.ts +173 -0
- package/dist/models/device/cts500.model.d.ts.map +1 -0
- package/dist/models/device/cts500.model.js +584 -0
- package/dist/models/device/cts500.model.js.map +1 -0
- package/dist/models/device/entralpi.model.d.ts.map +1 -1
- package/dist/models/device/entralpi.model.js +3 -5
- package/dist/models/device/entralpi.model.js.map +1 -1
- package/dist/models/device/forceboard.model.d.ts +2 -2
- package/dist/models/device/forceboard.model.d.ts.map +1 -1
- package/dist/models/device/forceboard.model.js +3 -14
- package/dist/models/device/forceboard.model.js.map +1 -1
- package/dist/models/device/progressor.model.d.ts +25 -12
- package/dist/models/device/progressor.model.d.ts.map +1 -1
- package/dist/models/device/progressor.model.js +82 -31
- package/dist/models/device/progressor.model.js.map +1 -1
- package/dist/models/device.model.d.ts +7 -0
- package/dist/models/device.model.d.ts.map +1 -1
- package/dist/models/device.model.js +51 -32
- package/dist/models/device.model.js.map +1 -1
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +2 -0
- package/dist/models/index.js.map +1 -1
- package/dist/models/nordic.model.d.ts +128 -0
- package/dist/models/nordic.model.d.ts.map +1 -0
- package/dist/models/nordic.model.js +393 -0
- package/dist/models/nordic.model.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/src/index.ts +2 -0
- package/src/interfaces/command.interface.ts +143 -20
- package/src/interfaces/device/climbro.interface.ts +30 -0
- package/src/interfaces/device/cts500.interface.ts +113 -0
- package/src/interfaces/device/forceboard.interface.ts +2 -2
- package/src/interfaces/device/progressor.interface.ts +19 -7
- package/src/interfaces/index.ts +4 -0
- package/src/interfaces/nordic.interface.ts +47 -0
- package/src/models/device/climbro.model.ts +98 -1
- package/src/models/device/cts500.model.ts +702 -0
- package/src/models/device/entralpi.model.ts +3 -5
- package/src/models/device/forceboard.model.ts +3 -14
- package/src/models/device/progressor.model.ts +86 -31
- package/src/models/device.model.ts +60 -32
- package/src/models/index.ts +4 -0
- package/src/models/nordic.model.ts +468 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type { IDevice } from "../device.interface.js"
|
|
2
|
+
|
|
3
|
+
export type CTS500BaudRate = 9600 | 19200 | 38400 | 57600 | 115200
|
|
4
|
+
|
|
5
|
+
export type CTS500SamplingRate = 10 | 20 | 40 | 80 | 160 | 320
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Interface representing the CTS500 device, extending the base Device interface.
|
|
9
|
+
*/
|
|
10
|
+
export interface ICTS500 extends IDevice {
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves battery voltage from the device.
|
|
13
|
+
* The returned string is the voltage in volts with two decimal places.
|
|
14
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the battery voltage.
|
|
15
|
+
*/
|
|
16
|
+
battery(): Promise<string | undefined>
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves firmware version from the device.
|
|
20
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the firmware version.
|
|
21
|
+
*/
|
|
22
|
+
firmware(): Promise<string | undefined>
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Retrieves hardware version from the device.
|
|
26
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the hardware version.
|
|
27
|
+
*/
|
|
28
|
+
hardware(): Promise<string | undefined>
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Retrieves manufacturer information from the device.
|
|
32
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the manufacturer information.
|
|
33
|
+
*/
|
|
34
|
+
manufacturer(): Promise<string | undefined>
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Retrieves model number from the device.
|
|
38
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the model number.
|
|
39
|
+
*/
|
|
40
|
+
model(): Promise<string | undefined>
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Retrieves serial number from the device.
|
|
44
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the serial number.
|
|
45
|
+
*/
|
|
46
|
+
serial(): Promise<string | undefined>
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Retrieves software version from the device.
|
|
50
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the software version.
|
|
51
|
+
*/
|
|
52
|
+
software(): Promise<string | undefined>
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Sets whether the device should reset to zero on power-up.
|
|
56
|
+
* @param {boolean} enabled - Whether to reset to zero on power-up.
|
|
57
|
+
* @returns {Promise<void>} A Promise that resolves when the command has been acknowledged.
|
|
58
|
+
*/
|
|
59
|
+
powerOnReset(enabled: boolean): Promise<void>
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Enables or disables peak mode.
|
|
63
|
+
* @param {boolean} enabled - Whether peak mode should be enabled.
|
|
64
|
+
* @returns {Promise<void>} A Promise that resolves when the command has been acknowledged.
|
|
65
|
+
*/
|
|
66
|
+
peakMode(enabled?: boolean): Promise<void>
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Configures the transparent UART baud rate on the device.
|
|
70
|
+
* @param {CTS500BaudRate} baudRate - Desired baud rate.
|
|
71
|
+
* @returns {Promise<void>} A Promise that resolves when the command has been acknowledged.
|
|
72
|
+
*/
|
|
73
|
+
setBaudRate(baudRate: CTS500BaudRate): Promise<void>
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Configures the device A/D sampling rate.
|
|
77
|
+
* @param {CTS500SamplingRate} samplingRate - Desired A/D sampling rate in Hz.
|
|
78
|
+
* @returns {Promise<void>} A Promise that resolves when the command has been acknowledged.
|
|
79
|
+
*/
|
|
80
|
+
setSamplingRate(samplingRate: CTS500SamplingRate): Promise<void>
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Starts automatic weight uploads over the notify characteristic.
|
|
84
|
+
* @param {number} [duration=0] - Optional delay before the promise resolves.
|
|
85
|
+
* @returns {Promise<void>} A Promise that resolves once automatic upload has been enabled.
|
|
86
|
+
*/
|
|
87
|
+
stream(duration?: number): Promise<void>
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Stops automatic weight uploads over the notify characteristic.
|
|
91
|
+
* @returns {Promise<void>} A Promise that resolves once automatic upload has been disabled.
|
|
92
|
+
*/
|
|
93
|
+
stop(): Promise<void>
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Retrieves the current temperature reading from the device.
|
|
97
|
+
* The returned string is the temperature in Celsius.
|
|
98
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the temperature.
|
|
99
|
+
*/
|
|
100
|
+
temperature(): Promise<string | undefined>
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Retrieves the current weight from the device in kilograms.
|
|
104
|
+
* @returns {Promise<number | undefined>} A Promise that resolves with the current weight.
|
|
105
|
+
*/
|
|
106
|
+
weight(): Promise<number | undefined>
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Updates the hardware zero point.
|
|
110
|
+
* @returns {Promise<void>} A Promise that resolves when the command has been acknowledged.
|
|
111
|
+
*/
|
|
112
|
+
zero(): Promise<void>
|
|
113
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { INordicDfuDevice } from "../nordic.interface.js"
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Interface representing the PitchSix ForceBoard device, extending the base Device interface.
|
|
5
5
|
*/
|
|
6
|
-
export interface IForceBoard extends
|
|
6
|
+
export interface IForceBoard extends INordicDfuDevice {
|
|
7
7
|
/**
|
|
8
8
|
* Retrieves battery or voltage information from the device.
|
|
9
9
|
* @returns {Promise<string | undefined>} A Promise that resolves with the battery or voltage information.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { INordicDfuDevice } from "../nordic.interface.js"
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Interface representing the Tindeq Progressor device, extending the base Device interface.
|
|
5
5
|
*/
|
|
6
|
-
export interface IProgressor extends
|
|
6
|
+
export interface IProgressor extends INordicDfuDevice {
|
|
7
7
|
/**
|
|
8
8
|
* Retrieves battery or voltage information from the device.
|
|
9
9
|
* @returns {Promise<string | undefined>} A Promise that resolves with the battery or voltage information.
|
|
@@ -23,12 +23,18 @@ export interface IProgressor extends IDevice {
|
|
|
23
23
|
progressorId(): Promise<string | undefined>
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* Retrieves calibration
|
|
27
|
-
*
|
|
28
|
-
*
|
|
26
|
+
* Retrieves the linear calibration block from the device (opcode 0x72).
|
|
27
|
+
* Parsed for display as raw hex plus 3× float32 LE coefficients:
|
|
28
|
+
* slope, intercept, and trim. Firmware uses: value = raw * slope + intercept + trim.
|
|
29
29
|
*/
|
|
30
30
|
calibration(): Promise<string | undefined>
|
|
31
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Retrieves the hidden 15-entry piecewise calibration table.
|
|
34
|
+
* Returns newline-separated decoded records in export order.
|
|
35
|
+
*/
|
|
36
|
+
calibrationTable(): Promise<string | undefined>
|
|
37
|
+
|
|
32
38
|
/**
|
|
33
39
|
* Computes calibration curve from stored points and saves to flash.
|
|
34
40
|
* Call after addCalibrationPoint() for zero and reference. Normal flow: i → i → j.
|
|
@@ -42,9 +48,15 @@ export interface IProgressor extends IDevice {
|
|
|
42
48
|
sleep(): Promise<void>
|
|
43
49
|
|
|
44
50
|
/**
|
|
45
|
-
*
|
|
51
|
+
* Reboots the device immediately.
|
|
52
|
+
* Intended for diagnostic flows. Sends the firmware's required reboot-confirmation payload.
|
|
53
|
+
*/
|
|
54
|
+
reboot(): Promise<void>
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Set a new calibration block.
|
|
46
58
|
* @warning Expert only. This will overwrite the current calibration curve.
|
|
47
|
-
* @param curve - The 12-byte calibration
|
|
59
|
+
* @param curve - The 12-byte calibration block to set (3× float32 LE: slope, intercept, trim).
|
|
48
60
|
*/
|
|
49
61
|
setCalibration(curve: Uint8Array): Promise<void>
|
|
50
62
|
|
package/src/interfaces/index.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export type { IClimbro } from "./device/climbro.interface.js"
|
|
2
2
|
|
|
3
|
+
export type { ICTS500 } from "./device/cts500.interface.js"
|
|
4
|
+
|
|
3
5
|
export type { IEntralpi } from "./device/entralpi.interface.js"
|
|
4
6
|
|
|
5
7
|
export type { IForceBoard } from "./device/forceboard.interface.js"
|
|
@@ -10,6 +12,8 @@ export type { IMotherboard } from "./device/motherboard.interface.js"
|
|
|
10
12
|
|
|
11
13
|
export type { ImySmartBoard } from "./device/mysmartboard.interface.js"
|
|
12
14
|
|
|
15
|
+
export type { INordicDfuDevice } from "./nordic.interface.js"
|
|
16
|
+
|
|
13
17
|
export type { IProgressor } from "./device/progressor.interface.js"
|
|
14
18
|
|
|
15
19
|
export type { ISmartBoardPro } from "./device/smartboard-pro.interface.js"
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { IDevice } from "./device.interface.js"
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Shared Nordic Secure DFU functionality for devices that expose the FE59 DFU service.
|
|
5
|
+
*/
|
|
6
|
+
export interface INordicDfuDevice extends IDevice {
|
|
7
|
+
/**
|
|
8
|
+
* Switches the device from application mode into the Nordic DFU bootloader.
|
|
9
|
+
*/
|
|
10
|
+
dfuSwitch(): Promise<void>
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Sends a raw Nordic Secure DFU control operation and resolves with the response payload bytes.
|
|
14
|
+
* Call after dfuSwitch() has reconnected to the DFU bootloader.
|
|
15
|
+
*/
|
|
16
|
+
dfuControl(operation: Uint8Array, payload?: ArrayBuffer): Promise<Uint8Array>
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Sends Nordic Secure DFU SELECT for command or data objects and returns the bootloader state.
|
|
20
|
+
*/
|
|
21
|
+
dfuSelect(objectType: "command" | "data"): Promise<{ maxSize: number; offset: number; crc: number }>
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Sends Nordic Secure DFU CREATE for command or data objects.
|
|
25
|
+
*/
|
|
26
|
+
dfuCreate(objectType: "command" | "data", size: number): Promise<void>
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Writes raw bytes to the Nordic Secure DFU packet characteristic.
|
|
30
|
+
*/
|
|
31
|
+
dfuWritePacket(data: Uint8Array | ArrayBuffer): Promise<void>
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Sends Nordic Secure DFU CALCULATE_CHECKSUM and returns the bootloader state.
|
|
35
|
+
*/
|
|
36
|
+
dfuChecksum(): Promise<{ offset: number; crc: number }>
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Sends Nordic Secure DFU EXECUTE for the currently created object.
|
|
40
|
+
*/
|
|
41
|
+
dfuExecute(): Promise<void>
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Runs a complete Nordic Secure DFU upload: switch to bootloader, send init packet, then send firmware.
|
|
45
|
+
*/
|
|
46
|
+
dfuUpload(initPacket: Uint8Array | ArrayBuffer, firmware: Uint8Array | ArrayBuffer): Promise<void>
|
|
47
|
+
}
|
|
@@ -57,10 +57,67 @@ export class Climbro extends Device implements IClimbro {
|
|
|
57
57
|
uuid: "49535343-fe7d-4ae5-8fa9-9fafd205e455",
|
|
58
58
|
characteristics: [
|
|
59
59
|
{
|
|
60
|
-
name: "
|
|
60
|
+
name: "UART Tramsmit (we set as rx)",
|
|
61
61
|
id: "rx",
|
|
62
62
|
uuid: "49535343-1e4d-4bd9-ba61-23c647249616",
|
|
63
63
|
},
|
|
64
|
+
{
|
|
65
|
+
name: "UART Receive (we set as tx)",
|
|
66
|
+
id: "tx",
|
|
67
|
+
uuid: "49535343-8841-43f4-a8d4-ecbe34729bb3",
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: "Transparent Control Point",
|
|
71
|
+
id: "tcp",
|
|
72
|
+
uuid: "49535343-4c8a-39b3-2f49-511cff073b7e",
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "Device Information",
|
|
78
|
+
id: "device",
|
|
79
|
+
uuid: "0000180a-0000-1000-8000-00805f9b34fb",
|
|
80
|
+
characteristics: [
|
|
81
|
+
{
|
|
82
|
+
name: "System ID",
|
|
83
|
+
id: "system",
|
|
84
|
+
uuid: "00002a23-0000-1000-8000-00805f9b34fb",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "Model Number String",
|
|
88
|
+
id: "model", // RN487x
|
|
89
|
+
uuid: "00002a24-0000-1000-8000-00805f9b34fb",
|
|
90
|
+
},
|
|
91
|
+
// {
|
|
92
|
+
// name: "Serial Number String (Blocked)",
|
|
93
|
+
// id: "serial",
|
|
94
|
+
// uuid: "00002a25-0000-1000-8000-00805f9b34fb",
|
|
95
|
+
// },
|
|
96
|
+
{
|
|
97
|
+
name: "Firmware Revision String",
|
|
98
|
+
id: "firmware",
|
|
99
|
+
uuid: "00002a26-0000-1000-8000-00805f9b34fb",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: "Hardware Revision String",
|
|
103
|
+
id: "hardware", // 5505 102_BLDK3
|
|
104
|
+
uuid: "00002a27-0000-1000-8000-00805f9b34fb",
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: "Software Revision String",
|
|
108
|
+
id: "software", // 1.30
|
|
109
|
+
uuid: "00002a28-0000-1000-8000-00805f9b34fb",
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: "Manufacturer Name String",
|
|
113
|
+
id: "manufacturer", // Microchip
|
|
114
|
+
uuid: "00002a29-0000-1000-8000-00805f9b34fb",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
name: "IEEE 11073-20601 Regulatory Certification Data List",
|
|
118
|
+
id: "certification",
|
|
119
|
+
uuid: "00002a2a-0000-1000-8000-00805f9b34fb",
|
|
120
|
+
},
|
|
64
121
|
],
|
|
65
122
|
},
|
|
66
123
|
],
|
|
@@ -76,6 +133,46 @@ export class Climbro extends Device implements IClimbro {
|
|
|
76
133
|
return this.batteryLevel.toString()
|
|
77
134
|
}
|
|
78
135
|
|
|
136
|
+
/**
|
|
137
|
+
* Retrieves hardware version from the device.
|
|
138
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the hardware version.
|
|
139
|
+
*/
|
|
140
|
+
hardware = async (): Promise<string | undefined> => {
|
|
141
|
+
return await this.read("device", "hardware", 250)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Retrieves manufacturer information from the device.
|
|
146
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the manufacturer information.
|
|
147
|
+
*/
|
|
148
|
+
manufacturer = async (): Promise<string | undefined> => {
|
|
149
|
+
return await this.read("device", "manufacturer", 250)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Retrieves model number from the device.
|
|
154
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the model number.
|
|
155
|
+
*/
|
|
156
|
+
model = async (): Promise<string | undefined> => {
|
|
157
|
+
return await this.read("device", "model", 250)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Retrieves software version from the device.
|
|
162
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the software version.
|
|
163
|
+
*/
|
|
164
|
+
software = async (): Promise<string | undefined> => {
|
|
165
|
+
return await this.read("device", "software", 250)
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Retrieves system id from the device.
|
|
170
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the system id.
|
|
171
|
+
*/
|
|
172
|
+
system = async (): Promise<string | undefined> => {
|
|
173
|
+
return await this.read("device", "system", 250)
|
|
174
|
+
}
|
|
175
|
+
|
|
79
176
|
/**
|
|
80
177
|
* Handles data received from the device, processes force measurements and battery data
|
|
81
178
|
* according to the Climbro protocol.
|