@hangtime/grip-connect 0.12.0 → 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 +11 -0
- 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 +110 -21
- package/dist/cjs/interfaces/command.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 +2 -2
- 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/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/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 +2 -2
- package/dist/cjs/models/device/progressor.model.d.ts.map +1 -1
- package/dist/cjs/models/device/progressor.model.js +3 -14
- 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 +23 -8
- 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 +110 -21
- package/dist/interfaces/command.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 +2 -2
- 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/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/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 +2 -2
- package/dist/models/device/progressor.model.d.ts.map +1 -1
- package/dist/models/device/progressor.model.js +3 -14
- 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 +22 -8
- 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 +131 -21
- 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 +2 -2
- package/src/interfaces/index.ts +4 -0
- package/src/interfaces/nordic.interface.ts +47 -0
- package/src/models/device/cts500.model.ts +702 -0
- package/src/models/device/forceboard.model.ts +3 -14
- package/src/models/device/progressor.model.ts +3 -14
- package/src/models/device.model.ts +22 -8
- package/src/models/index.ts +4 -0
- package/src/models/nordic.model.ts +468 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Device } from "../device.model.js";
|
|
2
|
+
import type { CTS500BaudRate, CTS500SamplingRate, ICTS500 } from "../../interfaces/device/cts500.interface.js";
|
|
3
|
+
/**
|
|
4
|
+
* Represents the CTS500 Climbing Training Scale, marketed as "Jlyscales CTS500".
|
|
5
|
+
* Supplier: Hunan Jinlian Cloud Information Technology Co., Ltd.
|
|
6
|
+
* {@link https://www.huaying-scales.com/}
|
|
7
|
+
* {@link https://www.alibaba.com/product-detail/Mini-Climbing-Training-Scale-CTS500-Aluminum_1601637814595.html}
|
|
8
|
+
*/
|
|
9
|
+
export declare class CTS500 extends Device implements ICTS500 {
|
|
10
|
+
private bufferedFrames;
|
|
11
|
+
private pendingFrame;
|
|
12
|
+
private requestQueue;
|
|
13
|
+
private isStreaming;
|
|
14
|
+
private commandOpcodes;
|
|
15
|
+
constructor();
|
|
16
|
+
/**
|
|
17
|
+
* Retrieves battery voltage from the device.
|
|
18
|
+
* The returned string uses two decimal places, e.g. "3.55".
|
|
19
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the battery voltage.
|
|
20
|
+
*/
|
|
21
|
+
battery: () => Promise<string | undefined>;
|
|
22
|
+
/**
|
|
23
|
+
* Retrieves firmware version from the device.
|
|
24
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the firmware version.
|
|
25
|
+
*/
|
|
26
|
+
firmware: () => Promise<string | undefined>;
|
|
27
|
+
/**
|
|
28
|
+
* Retrieves hardware version from the device.
|
|
29
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the hardware version.
|
|
30
|
+
*/
|
|
31
|
+
hardware: () => Promise<string | undefined>;
|
|
32
|
+
/**
|
|
33
|
+
* Retrieves manufacturer information from the device.
|
|
34
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the manufacturer information.
|
|
35
|
+
*/
|
|
36
|
+
manufacturer: () => Promise<string | undefined>;
|
|
37
|
+
/**
|
|
38
|
+
* Retrieves model number from the device.
|
|
39
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the model number.
|
|
40
|
+
*/
|
|
41
|
+
model: () => Promise<string | undefined>;
|
|
42
|
+
/**
|
|
43
|
+
* Sets whether the device should reset to zero on power-up.
|
|
44
|
+
* @param {boolean} enabled - Whether power-on reset should be enabled.
|
|
45
|
+
* @returns {Promise<void>} A promise that resolves when the command is acknowledged.
|
|
46
|
+
*/
|
|
47
|
+
powerOnReset: (enabled: boolean) => Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Enables or disables the device peak mode.
|
|
50
|
+
* @param {boolean} [enabled=true] - Whether peak mode should be enabled.
|
|
51
|
+
* @returns {Promise<void>} A promise that resolves when the command is acknowledged.
|
|
52
|
+
*/
|
|
53
|
+
peakMode: (enabled?: boolean) => Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Configures the device UART baud rate.
|
|
56
|
+
* @param {CTS500BaudRate} baudRate - Desired baud rate.
|
|
57
|
+
* @returns {Promise<void>} A promise that resolves when the command is acknowledged.
|
|
58
|
+
*/
|
|
59
|
+
setBaudRate: (baudRate: CTS500BaudRate) => Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Configures the device A/D sampling rate.
|
|
62
|
+
* @param {CTS500SamplingRate} samplingRate - Desired A/D sampling rate in Hz.
|
|
63
|
+
* @returns {Promise<void>} A promise that resolves when the command is acknowledged.
|
|
64
|
+
*/
|
|
65
|
+
setSamplingRate: (samplingRate: CTS500SamplingRate) => Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Retrieves serial number from the device.
|
|
68
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the serial number.
|
|
69
|
+
*/
|
|
70
|
+
serial: () => Promise<string | undefined>;
|
|
71
|
+
/**
|
|
72
|
+
* Retrieves software version from the device.
|
|
73
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the software version.
|
|
74
|
+
*/
|
|
75
|
+
software: () => Promise<string | undefined>;
|
|
76
|
+
/**
|
|
77
|
+
* Starts automatic weight uploads.
|
|
78
|
+
* @param {number} [duration=0] - Optional delay before the promise resolves.
|
|
79
|
+
* @returns {Promise<void>} A promise that resolves once upload mode has been enabled.
|
|
80
|
+
*/
|
|
81
|
+
stream: (duration?: number) => Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Stops automatic weight uploads.
|
|
84
|
+
* @returns {Promise<void>} A promise that resolves once upload mode has been disabled.
|
|
85
|
+
*/
|
|
86
|
+
stop: () => Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Reads the current temperature from the device.
|
|
89
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the temperature in Celsius.
|
|
90
|
+
*/
|
|
91
|
+
temperature: () => Promise<string | undefined>;
|
|
92
|
+
/**
|
|
93
|
+
* Uses the device's hardware tare command when connected and falls back to software tare otherwise.
|
|
94
|
+
* @param {number} [duration=5000] - Software tare duration when the device is not connected.
|
|
95
|
+
* @returns {boolean} `true` when the tare operation started successfully.
|
|
96
|
+
*/
|
|
97
|
+
tare: (duration?: number) => boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Reads the current weight from the device in kilograms.
|
|
100
|
+
* @returns {Promise<number | undefined>} A Promise that resolves with the current weight.
|
|
101
|
+
*/
|
|
102
|
+
weight: () => Promise<number | undefined>;
|
|
103
|
+
/**
|
|
104
|
+
* Updates the device hardware zero point.
|
|
105
|
+
* @returns {Promise<void>} A promise that resolves when the command is acknowledged.
|
|
106
|
+
*/
|
|
107
|
+
zero: () => Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Parses UART frames received over the MY-BT102 notify characteristic.
|
|
110
|
+
* Supports fragmented BLE notifications by buffering until a complete CTS500 frame is available.
|
|
111
|
+
*
|
|
112
|
+
* @param {DataView} value - The notification payload from the device.
|
|
113
|
+
*/
|
|
114
|
+
handleNotifications: (value: DataView) => void;
|
|
115
|
+
/**
|
|
116
|
+
* Waits for a specific frame pattern after sending a CTS500 command.
|
|
117
|
+
*/
|
|
118
|
+
private queryFrame;
|
|
119
|
+
/**
|
|
120
|
+
* Sends a command that should be acknowledged with a 6-byte echo frame.
|
|
121
|
+
*/
|
|
122
|
+
private expectAck;
|
|
123
|
+
/**
|
|
124
|
+
* Sends a configuration command that may reply with either a 6-byte echo, a typed response, or no reply after applying.
|
|
125
|
+
*/
|
|
126
|
+
private applyConfigCommand;
|
|
127
|
+
/**
|
|
128
|
+
* Resolves the currently pending frame promise if the incoming frame matches.
|
|
129
|
+
* @returns {boolean} Whether a pending request consumed the frame.
|
|
130
|
+
*/
|
|
131
|
+
private consumePendingFrame;
|
|
132
|
+
/**
|
|
133
|
+
* Clears the currently pending frame wait, if any.
|
|
134
|
+
*/
|
|
135
|
+
private clearPendingFrame;
|
|
136
|
+
/**
|
|
137
|
+
* Extracts the next valid CTS500 frame from the local notification buffer.
|
|
138
|
+
*/
|
|
139
|
+
private extractNextFrame;
|
|
140
|
+
/**
|
|
141
|
+
* Routes a validated CTS500 frame to pending requests, callbacks, and stream processing.
|
|
142
|
+
*/
|
|
143
|
+
private handleFrame;
|
|
144
|
+
/**
|
|
145
|
+
* Returns whether a frame is a 6-byte command acknowledgment echo for the given opcode.
|
|
146
|
+
*/
|
|
147
|
+
private isAckFrame;
|
|
148
|
+
/**
|
|
149
|
+
* Returns whether a frame is a typed command response (`05 80 <opcode> ... checksum`).
|
|
150
|
+
*/
|
|
151
|
+
private isCommandResponse;
|
|
152
|
+
/**
|
|
153
|
+
* Returns whether a frame contains a weight measurement payload.
|
|
154
|
+
*/
|
|
155
|
+
private isWeightFrame;
|
|
156
|
+
/**
|
|
157
|
+
* Updates rolling statistics and emits a force measurement from a CTS500 weight frame.
|
|
158
|
+
*/
|
|
159
|
+
private recordWeightMeasurement;
|
|
160
|
+
/**
|
|
161
|
+
* Validates a CTS500 frame checksum.
|
|
162
|
+
*/
|
|
163
|
+
private isValidFrame;
|
|
164
|
+
/**
|
|
165
|
+
* Registers a pending frame matcher with a timeout.
|
|
166
|
+
*/
|
|
167
|
+
private waitForFrame;
|
|
168
|
+
/**
|
|
169
|
+
* Serializes CTS500 command/response operations so query-style methods can be called in parallel by consumers.
|
|
170
|
+
*/
|
|
171
|
+
private enqueueRequest;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=cts500.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cts500.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/cts500.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,6CAA6C,CAAA;AAsD9G;;;;;GAKG;AACH,qBAAa,MAAO,SAAQ,MAAO,YAAW,OAAO;IACnD,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,cAAc,CAAoB;;IAqG1C;;;;OAIG;IACH,OAAO,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS9C;IAED;;;OAGG;IACH,QAAQ,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE/C;IAED;;;OAGG;IACH,QAAQ,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE/C;IAED;;;OAGG;IACH,YAAY,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAEnD;IAED;;;OAGG;IACH,KAAK,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE5C;IAED;;;;OAIG;IACH,YAAY,GAAU,SAAS,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC,CAErD;IAED;;;;OAIG;IACH,QAAQ,GAAU,iBAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;IAED;;;;OAIG;IACH,WAAW,GAAU,UAAU,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;IAED;;;;OAIG;IACH,eAAe,GAAU,cAAc,kBAAkB,KAAG,OAAO,CAAC,IAAI,CAAC,CAMxE;IAED;;;OAGG;IACH,MAAM,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW7C;IAED;;;OAGG;IACH,QAAQ,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE/C;IAED;;;;OAIG;IACH,MAAM,GAAU,iBAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAc3C;IAED;;;OAGG;IACH,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAI7B;IAED;;;OAGG;IACH,WAAW,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWlD;IAED;;;;OAIG;IACM,IAAI,GAAI,iBAAe,KAAG,OAAO,CAczC;IAED;;;OAGG;IACH,MAAM,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7C;IAED;;;OAGG;IACH,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED;;;;;OAKG;IACM,mBAAmB,GAAI,OAAO,QAAQ,KAAG,IAAI,CAsCrD;IAED;;OAEG;IACH,OAAO,CAAC,UAAU,CAejB;IAED;;OAEG;IACH,OAAO,CAAC,SAAS,CAKhB;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAiBzB;IAED;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAU1B;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAYxB;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAuBvB;IAED;;OAEG;IACH,OAAO,CAAC,WAAW,CAqClB;IAED;;OAEG;IACH,OAAO,CAAC,UAAU,CAUjB;IAED;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAQxB;IAED;;OAEG;IACH,OAAO,CAAC,aAAa,CAQpB;IAED;;OAEG;IACH,OAAO,CAAC,uBAAuB,CA2B9B;IAED;;OAEG;IACH,OAAO,CAAC,YAAY,CAMnB;IAED;;OAEG;IACH,OAAO,CAAC,YAAY,CA0BnB;IAED;;OAEG;IACH,OAAO,CAAC,cAAc,CAOrB;CACF"}
|