@hangtime/grip-connect 0.10.1 → 0.10.3
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 +1 -1
- package/dist/cjs/index.d.ts +1 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/callback.interface.d.ts +19 -12
- package/dist/cjs/interfaces/callback.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/command.interface.d.ts +14 -6
- package/dist/cjs/interfaces/command.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/device/progressor.interface.d.ts +47 -0
- package/dist/cjs/interfaces/device/progressor.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/device.interface.d.ts +1 -1
- package/dist/cjs/interfaces/download.interface.d.ts +8 -11
- package/dist/cjs/interfaces/download.interface.d.ts.map +1 -1
- package/dist/cjs/models/device/climbro.model.d.ts.map +1 -1
- package/dist/cjs/models/device/climbro.model.js +34 -16
- package/dist/cjs/models/device/climbro.model.js.map +1 -1
- package/dist/cjs/models/device/entralpi.model.d.ts.map +1 -1
- package/dist/cjs/models/device/entralpi.model.js +11 -14
- package/dist/cjs/models/device/entralpi.model.js.map +1 -1
- package/dist/cjs/models/device/forceboard.model.d.ts.map +1 -1
- package/dist/cjs/models/device/forceboard.model.js +12 -17
- package/dist/cjs/models/device/forceboard.model.js.map +1 -1
- package/dist/cjs/models/device/motherboard.model.d.ts.map +1 -1
- package/dist/cjs/models/device/motherboard.model.js +28 -20
- package/dist/cjs/models/device/motherboard.model.js.map +1 -1
- package/dist/cjs/models/device/pb-700bt.model.d.ts.map +1 -1
- package/dist/cjs/models/device/pb-700bt.model.js +11 -14
- package/dist/cjs/models/device/pb-700bt.model.js.map +1 -1
- package/dist/cjs/models/device/progressor.model.d.ts +52 -5
- package/dist/cjs/models/device/progressor.model.d.ts.map +1 -1
- package/dist/cjs/models/device/progressor.model.js +211 -57
- package/dist/cjs/models/device/progressor.model.js.map +1 -1
- package/dist/cjs/models/device/smartboard-pro.model.d.ts.map +1 -1
- package/dist/cjs/models/device/smartboard-pro.model.js +11 -16
- package/dist/cjs/models/device/smartboard-pro.model.js.map +1 -1
- package/dist/cjs/models/device/wh-c06.model.d.ts.map +1 -1
- package/dist/cjs/models/device/wh-c06.model.js +11 -14
- package/dist/cjs/models/device/wh-c06.model.js.map +1 -1
- package/dist/cjs/models/device.model.d.ts +64 -3
- package/dist/cjs/models/device.model.d.ts.map +1 -1
- package/dist/cjs/models/device.model.js +142 -37
- package/dist/cjs/models/device.model.js.map +1 -1
- package/dist/cjs/utils.d.ts +1 -1
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +29 -6
- package/dist/cjs/utils.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/callback.interface.d.ts +19 -12
- package/dist/interfaces/callback.interface.d.ts.map +1 -1
- package/dist/interfaces/command.interface.d.ts +14 -6
- package/dist/interfaces/command.interface.d.ts.map +1 -1
- package/dist/interfaces/device/progressor.interface.d.ts +47 -0
- package/dist/interfaces/device/progressor.interface.d.ts.map +1 -1
- package/dist/interfaces/device.interface.d.ts +1 -1
- package/dist/interfaces/download.interface.d.ts +8 -11
- package/dist/interfaces/download.interface.d.ts.map +1 -1
- package/dist/models/device/climbro.model.d.ts.map +1 -1
- package/dist/models/device/climbro.model.js +34 -16
- package/dist/models/device/climbro.model.js.map +1 -1
- package/dist/models/device/entralpi.model.d.ts.map +1 -1
- package/dist/models/device/entralpi.model.js +11 -14
- package/dist/models/device/entralpi.model.js.map +1 -1
- package/dist/models/device/forceboard.model.d.ts.map +1 -1
- package/dist/models/device/forceboard.model.js +12 -17
- package/dist/models/device/forceboard.model.js.map +1 -1
- package/dist/models/device/motherboard.model.d.ts.map +1 -1
- package/dist/models/device/motherboard.model.js +28 -20
- package/dist/models/device/motherboard.model.js.map +1 -1
- package/dist/models/device/pb-700bt.model.d.ts.map +1 -1
- package/dist/models/device/pb-700bt.model.js +11 -14
- package/dist/models/device/pb-700bt.model.js.map +1 -1
- package/dist/models/device/progressor.model.d.ts +52 -5
- package/dist/models/device/progressor.model.d.ts.map +1 -1
- package/dist/models/device/progressor.model.js +210 -57
- package/dist/models/device/progressor.model.js.map +1 -1
- package/dist/models/device/smartboard-pro.model.d.ts.map +1 -1
- package/dist/models/device/smartboard-pro.model.js +11 -16
- package/dist/models/device/smartboard-pro.model.js.map +1 -1
- package/dist/models/device/wh-c06.model.d.ts.map +1 -1
- package/dist/models/device/wh-c06.model.js +11 -14
- package/dist/models/device/wh-c06.model.js.map +1 -1
- package/dist/models/device.model.d.ts +64 -3
- package/dist/models/device.model.d.ts.map +1 -1
- package/dist/models/device.model.js +146 -37
- package/dist/models/device.model.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +29 -6
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -3
- package/src/interfaces/callback.interface.ts +21 -12
- package/src/interfaces/command.interface.ts +16 -6
- package/src/interfaces/device/progressor.interface.ts +56 -0
- package/src/interfaces/device.interface.ts +1 -1
- package/src/interfaces/download.interface.ts +9 -11
- package/src/models/device/climbro.model.ts +38 -20
- package/src/models/device/entralpi.model.ts +15 -17
- package/src/models/device/forceboard.model.ts +15 -19
- package/src/models/device/motherboard.model.ts +38 -26
- package/src/models/device/pb-700bt.model.ts +14 -16
- package/src/models/device/progressor.model.ts +227 -58
- package/src/models/device/smartboard-pro.model.ts +14 -19
- package/src/models/device/wh-c06.model.ts +14 -17
- package/src/models/device.model.ts +181 -41
- package/src/utils.ts +31 -6
|
@@ -11,32 +11,68 @@ var ProgressorResponses;
|
|
|
11
11
|
* Response received after sending a command to the device.
|
|
12
12
|
* This could include acknowledgment or specific data related to the command sent.
|
|
13
13
|
*/
|
|
14
|
-
ProgressorResponses[ProgressorResponses["
|
|
14
|
+
ProgressorResponses[ProgressorResponses["RESPONSE_COMMAND"] = 0] = "RESPONSE_COMMAND";
|
|
15
15
|
/**
|
|
16
16
|
* Data representing a weight measurement from the device.
|
|
17
17
|
* Typically used for tracking load or force applied.
|
|
18
18
|
*/
|
|
19
|
-
ProgressorResponses[ProgressorResponses["
|
|
19
|
+
ProgressorResponses[ProgressorResponses["RESPONSE_WEIGHT_MEASUREMENT"] = 1] = "RESPONSE_WEIGHT_MEASUREMENT";
|
|
20
20
|
/**
|
|
21
21
|
* Peak rate of force development (RFD) measurement.
|
|
22
22
|
* This measures how quickly the force is applied over time.
|
|
23
23
|
*/
|
|
24
|
-
ProgressorResponses[ProgressorResponses["
|
|
24
|
+
ProgressorResponses[ProgressorResponses["RESPONSE_RFD_PEAK"] = 2] = "RESPONSE_RFD_PEAK";
|
|
25
25
|
/**
|
|
26
26
|
* Series of peak rate of force development (RFD) measurements.
|
|
27
27
|
* This could be used for analyzing force trends over multiple data points.
|
|
28
28
|
*/
|
|
29
|
-
ProgressorResponses[ProgressorResponses["
|
|
29
|
+
ProgressorResponses[ProgressorResponses["RESPONSE_RFD_PEAK_SERIES"] = 3] = "RESPONSE_RFD_PEAK_SERIES";
|
|
30
30
|
/**
|
|
31
31
|
* Low battery warning from the device.
|
|
32
32
|
* Indicates that the battery level is below a critical threshold.
|
|
33
33
|
*/
|
|
34
|
-
ProgressorResponses[ProgressorResponses["
|
|
34
|
+
ProgressorResponses[ProgressorResponses["RESPONSE_LOW_PWR_WARNING"] = 4] = "RESPONSE_LOW_PWR_WARNING";
|
|
35
35
|
})(ProgressorResponses || (ProgressorResponses = {}));
|
|
36
36
|
/**
|
|
37
37
|
* Represents a Tindeq Progressor device.
|
|
38
38
|
* {@link https://tindeq.com}
|
|
39
39
|
*/
|
|
40
|
+
/** One second in microseconds (device timestamp unit). Used for Hz = samples in last 1s. */
|
|
41
|
+
const ONE_SECOND_US = 1000000;
|
|
42
|
+
/**
|
|
43
|
+
* Format bytes as hex string.
|
|
44
|
+
* @param payload - Bytes to format
|
|
45
|
+
* @param separator - String between bytes (default " ")
|
|
46
|
+
*/
|
|
47
|
+
function toHex(payload, separator = " ") {
|
|
48
|
+
return Array.from(payload)
|
|
49
|
+
.map((b) => b.toString(16).padStart(2, "0"))
|
|
50
|
+
.join(separator);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Parse ProgressorId response: u64 little-endian, device may omit trailing zero bytes.
|
|
54
|
+
* Format as hex string MSB-first to match the official app.
|
|
55
|
+
*/
|
|
56
|
+
function parseProgressorIdPayload(payload) {
|
|
57
|
+
if (payload.length === 0)
|
|
58
|
+
return "";
|
|
59
|
+
const reversed = Uint8Array.from(payload);
|
|
60
|
+
reversed.reverse();
|
|
61
|
+
return toHex(reversed, "").toUpperCase();
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Parse calibration curve: 12 opaque bytes (CalibrationCurve = [u8; 12]).
|
|
65
|
+
* Progressor two-point calibration stores two raw ADC readings (zero + reference)
|
|
66
|
+
* and a third value (version/reserved). Exact layout is device-specific.
|
|
67
|
+
*/
|
|
68
|
+
function parseCalibrationCurvePayload(payload) {
|
|
69
|
+
const hex = toHex(payload);
|
|
70
|
+
if (payload.length !== 12)
|
|
71
|
+
return hex;
|
|
72
|
+
const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
73
|
+
const [v0, v1, v2] = [0, 4, 8].map((o) => view.getUint32(o, true));
|
|
74
|
+
return `${hex} — zero-point: ${v1.toLocaleString()} | ref-point: ${v0.toLocaleString()} | version: ${v2} (0x${v2.toString(16)})`;
|
|
75
|
+
}
|
|
40
76
|
class Progressor extends device_model_js_1.Device {
|
|
41
77
|
constructor() {
|
|
42
78
|
super({
|
|
@@ -72,43 +108,132 @@ class Progressor extends device_model_js_1.Device {
|
|
|
72
108
|
],
|
|
73
109
|
},
|
|
74
110
|
],
|
|
111
|
+
// Tindeq API: opcode = single byte (ASCII char code = decimal 100–114;)
|
|
75
112
|
commands: {
|
|
76
|
-
TARE_SCALE: "d", // 0x64
|
|
77
|
-
START_WEIGHT_MEAS: "e", // 0x65
|
|
78
|
-
STOP_WEIGHT_MEAS: "f", // 0x66
|
|
79
|
-
START_PEAK_RFD_MEAS: "g", //
|
|
80
|
-
START_PEAK_RFD_MEAS_SERIES: "h", //
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
SLEEP: "n", // 0x6e
|
|
87
|
-
|
|
113
|
+
TARE_SCALE: "d", // 100 (0x64)
|
|
114
|
+
START_WEIGHT_MEAS: "e", // 101 (0x65)
|
|
115
|
+
STOP_WEIGHT_MEAS: "f", // 102 (0x66)
|
|
116
|
+
START_PEAK_RFD_MEAS: "g", // 103 (0x67)
|
|
117
|
+
START_PEAK_RFD_MEAS_SERIES: "h", // 104 (0x68)
|
|
118
|
+
ADD_CALIBRATION_POINT: "i", // 105 (0x69)
|
|
119
|
+
SAVE_CALIBRATION: "j", // 106 (0x6a)
|
|
120
|
+
GET_FIRMWARE_VERSION: "k", // 107 (0x6b)
|
|
121
|
+
GET_ERROR_INFORMATION: "l", // 108 (0x6c)
|
|
122
|
+
CLR_ERROR_INFORMATION: "m", // 109 (0x6d)
|
|
123
|
+
SLEEP: "n", // 110 (0x6e)
|
|
124
|
+
GET_BATTERY_VOLTAGE: "o", // 111 (0x6f)
|
|
125
|
+
GET_PROGRESSOR_ID: "p", // 112 (0x70)
|
|
126
|
+
RESET_CALIBRATION: "q", // 113 (0x71)
|
|
127
|
+
GET_CALIBRATION: "r", // 114 (0x72)
|
|
88
128
|
},
|
|
89
129
|
});
|
|
130
|
+
/** Device timestamps (µs) of recent samples (samples in last 1s device time). */
|
|
131
|
+
this.recentSampleTimestamps = [];
|
|
90
132
|
/**
|
|
91
133
|
* Retrieves battery or voltage information from the device.
|
|
92
134
|
* @returns {Promise<string | undefined>} A Promise that resolves with the battery or voltage information,
|
|
93
135
|
*/
|
|
94
136
|
this.battery = async () => {
|
|
95
137
|
let response = undefined;
|
|
96
|
-
await this.write("progressor", "tx", this.commands.
|
|
138
|
+
await this.write("progressor", "tx", this.commands.GET_BATTERY_VOLTAGE, 250, (data) => {
|
|
97
139
|
response = data;
|
|
98
140
|
});
|
|
99
141
|
return response;
|
|
100
142
|
};
|
|
101
143
|
/**
|
|
102
|
-
* Retrieves firmware version from the device.
|
|
144
|
+
* Retrieves firmware version from the device (GetAppVersion, opcode 0x6B).
|
|
103
145
|
* @returns {Promise<string>} A Promise that resolves with the firmware version,
|
|
104
146
|
*/
|
|
105
147
|
this.firmware = async () => {
|
|
106
148
|
let response = undefined;
|
|
107
|
-
await this.write("progressor", "tx", this.commands.
|
|
149
|
+
await this.write("progressor", "tx", this.commands.GET_FIRMWARE_VERSION, 250, (data) => {
|
|
150
|
+
response = data;
|
|
151
|
+
});
|
|
152
|
+
return response;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Retrieves the Progressor ID from the device (opcode 0x70).
|
|
156
|
+
* @returns {Promise<string>} A Promise that resolves with the raw response (hex of payload).
|
|
157
|
+
*/
|
|
158
|
+
this.progressorId = async () => {
|
|
159
|
+
let response = undefined;
|
|
160
|
+
await this.write("progressor", "tx", this.commands.GET_PROGRESSOR_ID, 250, (data) => {
|
|
161
|
+
response = data;
|
|
162
|
+
});
|
|
163
|
+
return response;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Retrieves calibration values from the device.
|
|
167
|
+
* @returns {Promise<string>} A Promise that resolves with the raw response (hex of payload).
|
|
168
|
+
*/
|
|
169
|
+
this.calibration = async () => {
|
|
170
|
+
let response = undefined;
|
|
171
|
+
await this.write("progressor", "tx", this.commands.GET_CALIBRATION, 250, (data) => {
|
|
172
|
+
response = data;
|
|
173
|
+
});
|
|
174
|
+
return response;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Saves the current calibration to the device. Call after adding both calibration points.
|
|
178
|
+
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
179
|
+
*/
|
|
180
|
+
this.saveCalibration = async () => {
|
|
181
|
+
await this.write("progressor", "tx", this.commands.SAVE_CALIBRATION, 0);
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Resets the calibration to default values of the device.
|
|
185
|
+
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
186
|
+
*/
|
|
187
|
+
this.resetCalibration = async () => {
|
|
188
|
+
await this.write("progressor", "tx", this.commands.RESET_CALIBRATION, 0);
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Adds a calibration point: 0x69 + 32-bit float (weight in kg), 5 bytes to the control characteristic.
|
|
192
|
+
* Use for two-point calibration: (1) zero weight — addCalibrationPoint(0); (2) known weight — addCalibrationPoint(knownKg).
|
|
193
|
+
* Order can be either way; writing zero first is recommended (hysteresis). Then call saveCalibration().
|
|
194
|
+
* @param {number} weightKg - Weight in kg (use 0 for zero point, or known reference weight < 150 kg).
|
|
195
|
+
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
196
|
+
*/
|
|
197
|
+
this.addCalibrationPoint = async (weightKg) => {
|
|
198
|
+
const payload = new Uint8Array(5);
|
|
199
|
+
payload[0] = this.commands.ADD_CALIBRATION_POINT.charCodeAt(0); // 0x69
|
|
200
|
+
new DataView(payload.buffer).setFloat32(1, weightKg, true);
|
|
201
|
+
await this.write("progressor", "tx", payload, 0);
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Sends the device tare command to zero the scale (hardware tare).
|
|
205
|
+
* For software tare over a duration, use the base tare(duration) method.
|
|
206
|
+
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
207
|
+
*/
|
|
208
|
+
this.tareScale = async () => {
|
|
209
|
+
await this.write("progressor", "tx", this.commands.TARE_SCALE, 0);
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Puts the device to sleep / shutdown.
|
|
213
|
+
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
214
|
+
*/
|
|
215
|
+
this.sleep = async () => {
|
|
216
|
+
const cmd = this.commands.SLEEP;
|
|
217
|
+
await this.write("progressor", "tx", typeof cmd === "string" ? cmd : String(cmd), 0);
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Retrieves error information from the device.
|
|
221
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with the error info text.
|
|
222
|
+
*/
|
|
223
|
+
this.errorInfo = async () => {
|
|
224
|
+
let response = undefined;
|
|
225
|
+
await this.write("progressor", "tx", this.commands.GET_ERROR_INFORMATION, 250, (data) => {
|
|
108
226
|
response = data;
|
|
109
227
|
});
|
|
110
228
|
return response;
|
|
111
229
|
};
|
|
230
|
+
/**
|
|
231
|
+
* Clears error information on the device.
|
|
232
|
+
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
233
|
+
*/
|
|
234
|
+
this.clearErrorInfo = async () => {
|
|
235
|
+
await this.write("progressor", "tx", this.commands.CLR_ERROR_INFORMATION, 0);
|
|
236
|
+
};
|
|
112
237
|
/**
|
|
113
238
|
* Handles data received from the device, processes weight measurements,
|
|
114
239
|
* and updates mass data including maximum and average values.
|
|
@@ -117,6 +242,7 @@ class Progressor extends device_model_js_1.Device {
|
|
|
117
242
|
* @param {DataView} value - The notification event.
|
|
118
243
|
*/
|
|
119
244
|
this.handleNotifications = (value) => {
|
|
245
|
+
var _a;
|
|
120
246
|
if (value) {
|
|
121
247
|
// Update timestamp
|
|
122
248
|
this.updateTimestamp();
|
|
@@ -125,61 +251,82 @@ class Progressor extends device_model_js_1.Device {
|
|
|
125
251
|
// Read the first byte of the buffer to determine the kind of message
|
|
126
252
|
const kind = value.getInt8(0);
|
|
127
253
|
// Check if the message is a weight measurement
|
|
128
|
-
if (kind === ProgressorResponses.
|
|
129
|
-
//
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
254
|
+
if (kind === ProgressorResponses.RESPONSE_WEIGHT_MEASUREMENT) {
|
|
255
|
+
// Payload = bytes from index 2 (skip byte 0 = message type, byte 1 = reserved/length)
|
|
256
|
+
const payloadLength = value.byteLength - 2;
|
|
257
|
+
if (payloadLength % 8 !== 0)
|
|
258
|
+
return;
|
|
259
|
+
const samplesPerPacket = payloadLength / 8;
|
|
260
|
+
this.currentSamplesPerPacket = samplesPerPacket;
|
|
261
|
+
this.recordPacketReceived();
|
|
262
|
+
// for (i = 0; i < samplesPerPacket; i++) { offset = i*8; weight = getFloat32(offset); timestampUs = getUint32(offset+4); }
|
|
263
|
+
for (let i = 0; i < samplesPerPacket; i++) {
|
|
264
|
+
const offset = 2 + i * 8;
|
|
134
265
|
const weight = value.getFloat32(offset, true);
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
// Read a 32-bit integer (4 bytes) for the seconds, using little-endian
|
|
138
|
-
const seconds = value.getInt32(offset, true);
|
|
139
|
-
// Move the offset by 4 bytes
|
|
140
|
-
offset += 4;
|
|
141
|
-
// Check if both weight and seconds are valid numbers
|
|
142
|
-
if (!isNaN(weight) && !isNaN(seconds)) {
|
|
143
|
-
// Tare correction
|
|
266
|
+
const timestampUs = value.getUint32(offset + 4, true);
|
|
267
|
+
if (!isNaN(weight)) {
|
|
144
268
|
const numericData = weight - this.applyTare(weight);
|
|
145
|
-
// Add data to downloadable Array
|
|
146
|
-
this.downloadPackets.push({
|
|
147
|
-
received: receivedTime,
|
|
148
|
-
sampleNum: seconds,
|
|
149
|
-
battRaw: 0,
|
|
150
|
-
samples: [weight],
|
|
151
|
-
masses: [numericData],
|
|
152
|
-
});
|
|
153
|
-
// Check for max weight
|
|
154
|
-
this.peak = Math.max(this.peak, Number(numericData));
|
|
155
|
-
// Update running sum and count
|
|
156
269
|
const currentMassTotal = Math.max(-1000, Number(numericData));
|
|
270
|
+
// Update session stats before building packet
|
|
271
|
+
this.peak = Math.max(this.peak, Number(numericData));
|
|
272
|
+
this.min = Math.min(this.min, Math.max(-1000, Number(numericData)));
|
|
157
273
|
this.sum += currentMassTotal;
|
|
158
274
|
this.dataPointCount++;
|
|
159
|
-
// Calculate the average dynamically
|
|
160
275
|
this.mean = this.sum / this.dataPointCount;
|
|
161
|
-
|
|
276
|
+
this.downloadPackets.push(this.buildDownloadPacket(currentMassTotal, [weight], {
|
|
277
|
+
timestamp: receivedTime,
|
|
278
|
+
sampleIndex: timestampUs,
|
|
279
|
+
}));
|
|
162
280
|
this.activityCheck(numericData);
|
|
163
|
-
|
|
281
|
+
// Hz from device timestamps: keep only samples in last 1s
|
|
282
|
+
this.recentSampleTimestamps.push(timestampUs);
|
|
283
|
+
const latestUs = (_a = this.recentSampleTimestamps[this.recentSampleTimestamps.length - 1]) !== null && _a !== void 0 ? _a : 0;
|
|
284
|
+
this.recentSampleTimestamps = this.recentSampleTimestamps.filter((ts) => latestUs - ts <= ONE_SECOND_US);
|
|
285
|
+
const samplingRateHz = this.recentSampleTimestamps.length;
|
|
286
|
+
const payload = this.buildForceMeasurement(currentMassTotal);
|
|
287
|
+
if (payload.performance)
|
|
288
|
+
payload.performance.samplingRateHz = samplingRateHz;
|
|
289
|
+
this.notifyCallback(payload);
|
|
164
290
|
}
|
|
165
291
|
}
|
|
166
292
|
}
|
|
167
|
-
|
|
293
|
+
// Command response
|
|
294
|
+
else if (kind === ProgressorResponses.RESPONSE_COMMAND) {
|
|
168
295
|
if (!this.writeLast)
|
|
169
296
|
return;
|
|
170
297
|
let output = "";
|
|
171
|
-
|
|
298
|
+
const payload = new Uint8Array(value.buffer).slice(2);
|
|
299
|
+
if (this.writeLast === this.commands.GET_BATTERY_VOLTAGE) {
|
|
172
300
|
output = new DataView(value.buffer, 2).getUint32(0, true).toString();
|
|
173
301
|
}
|
|
174
|
-
else if (this.writeLast === this.commands.
|
|
175
|
-
output = new TextDecoder().decode(
|
|
302
|
+
else if (this.writeLast === this.commands.GET_FIRMWARE_VERSION) {
|
|
303
|
+
output = new TextDecoder().decode(payload);
|
|
304
|
+
}
|
|
305
|
+
else if (this.writeLast === this.commands.GET_ERROR_INFORMATION) {
|
|
306
|
+
output = new TextDecoder().decode(payload);
|
|
307
|
+
}
|
|
308
|
+
else if (this.writeLast === this.commands.GET_PROGRESSOR_ID) {
|
|
309
|
+
output = parseProgressorIdPayload(payload);
|
|
176
310
|
}
|
|
177
|
-
else if (this.writeLast === this.commands.
|
|
178
|
-
output =
|
|
311
|
+
else if (this.writeLast === this.commands.GET_CALIBRATION) {
|
|
312
|
+
output = parseCalibrationCurvePayload(payload);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
// Unknown command response: return raw hex
|
|
316
|
+
output = toHex(payload);
|
|
179
317
|
}
|
|
180
318
|
this.writeCallback(output);
|
|
181
319
|
}
|
|
182
|
-
|
|
320
|
+
// RFD peak response
|
|
321
|
+
else if (kind === ProgressorResponses.RESPONSE_RFD_PEAK) {
|
|
322
|
+
console.warn("⚠️ RFD peak is currently unsupported.");
|
|
323
|
+
}
|
|
324
|
+
// RFD peak series response
|
|
325
|
+
else if (kind === ProgressorResponses.RESPONSE_RFD_PEAK_SERIES) {
|
|
326
|
+
console.warn("⚠️ RFD peak series is currently unsupported.");
|
|
327
|
+
}
|
|
328
|
+
// Low power warning response
|
|
329
|
+
else if (kind === ProgressorResponses.RESPONSE_LOW_PWR_WARNING) {
|
|
183
330
|
console.warn("⚠️ Low power detected. Please consider connecting to a power source.");
|
|
184
331
|
}
|
|
185
332
|
else {
|
|
@@ -201,8 +348,15 @@ class Progressor extends device_model_js_1.Device {
|
|
|
201
348
|
* @returns {Promise<void>} A promise that resolves when the streaming operation is completed.
|
|
202
349
|
*/
|
|
203
350
|
this.stream = async (duration = 0) => {
|
|
204
|
-
// Reset download packets
|
|
351
|
+
// Reset download packets and session stats for fresh measurement
|
|
205
352
|
this.downloadPackets.length = 0;
|
|
353
|
+
this.peak = Number.NEGATIVE_INFINITY;
|
|
354
|
+
this.mean = 0;
|
|
355
|
+
this.sum = 0;
|
|
356
|
+
this.dataPointCount = 0;
|
|
357
|
+
this.min = Number.POSITIVE_INFINITY;
|
|
358
|
+
this.resetPacketTracking();
|
|
359
|
+
this.recentSampleTimestamps = [];
|
|
206
360
|
// Start streaming data
|
|
207
361
|
await this.write("progressor", "tx", this.commands.START_WEIGHT_MEAS, duration);
|
|
208
362
|
// Stop streaming if duration is set
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressor.model.js","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":";;;AAAA,wDAA2C;AAG3C;;GAEG;AACH,IAAK,mBA8BJ;AA9BD,WAAK,mBAAmB;IACtB;;;OAGG;IACH,qFAAgB,CAAA;IAEhB;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"progressor.model.js","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartboard-pro.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/smartboard-pro.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAA;AAEzF;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;;IA6CjE;;;;;;OAMG;IACM,mBAAmB,GAAI,OAAO,QAAQ,KAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"smartboard-pro.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/smartboard-pro.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAA;AAEzF;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;;IA6CjE;;;;;;OAMG;IACM,mBAAmB,GAAI,OAAO,QAAQ,KAAG,IAAI,CAqDrD;CACF"}
|
|
@@ -59,7 +59,6 @@ class SmartBoardPro extends device_model_js_1.Device {
|
|
|
59
59
|
*/
|
|
60
60
|
this.handleNotifications = (value) => {
|
|
61
61
|
if (value) {
|
|
62
|
-
// Update timestamp
|
|
63
62
|
this.updateTimestamp();
|
|
64
63
|
if (value.buffer) {
|
|
65
64
|
const length = value.byteLength / 2;
|
|
@@ -68,40 +67,36 @@ class SmartBoardPro extends device_model_js_1.Device {
|
|
|
68
67
|
const offset = i * 2;
|
|
69
68
|
if (offset + 1 < value.byteLength) {
|
|
70
69
|
const intValue = value.getInt16(offset, true);
|
|
71
|
-
// For debugging purposes
|
|
72
70
|
console.log(intValue);
|
|
73
71
|
dataArray.push(intValue);
|
|
74
72
|
}
|
|
75
73
|
}
|
|
76
74
|
if (dataArray.length === 0)
|
|
77
75
|
return;
|
|
76
|
+
this.currentSamplesPerPacket = dataArray.length;
|
|
77
|
+
this.recordPacketReceived();
|
|
78
78
|
const receivedTime = Date.now();
|
|
79
|
-
// Process each data point
|
|
80
79
|
for (const receivedData of dataArray) {
|
|
81
80
|
// Skip invalid values
|
|
82
81
|
if (!Number.isFinite(receivedData))
|
|
83
82
|
continue;
|
|
84
83
|
const numericData = receivedData - this.applyTare(receivedData);
|
|
85
|
-
// Add data to downloadable Array
|
|
86
|
-
this.downloadPackets.push({
|
|
87
|
-
received: receivedTime,
|
|
88
|
-
sampleNum: this.dataPointCount,
|
|
89
|
-
battRaw: 0,
|
|
90
|
-
samples: [numericData],
|
|
91
|
-
masses: [numericData],
|
|
92
|
-
});
|
|
93
|
-
// Update peak
|
|
94
|
-
this.peak = Math.max(this.peak, numericData);
|
|
95
|
-
// Update running sum and count
|
|
96
84
|
const currentMassTotal = Math.max(-1000, numericData);
|
|
85
|
+
// Update session stats before building packet
|
|
86
|
+
this.peak = Math.max(this.peak, numericData);
|
|
87
|
+
this.min = Math.min(this.min, Math.max(-1000, numericData));
|
|
97
88
|
this.sum += currentMassTotal;
|
|
98
89
|
this.dataPointCount++;
|
|
99
|
-
// Calculate the average dynamically
|
|
100
90
|
this.mean = this.sum / this.dataPointCount;
|
|
91
|
+
// Add data to downloadable Array
|
|
92
|
+
this.downloadPackets.push(this.buildDownloadPacket(currentMassTotal, [numericData], {
|
|
93
|
+
timestamp: receivedTime,
|
|
94
|
+
sampleIndex: this.dataPointCount,
|
|
95
|
+
}));
|
|
101
96
|
// Check if device is being used
|
|
102
97
|
this.activityCheck(numericData);
|
|
103
98
|
// Notify with weight data
|
|
104
|
-
this.notifyCallback(this.buildForceMeasurement(
|
|
99
|
+
this.notifyCallback(this.buildForceMeasurement(currentMassTotal));
|
|
105
100
|
}
|
|
106
101
|
}
|
|
107
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartboard-pro.model.js","sourceRoot":"","sources":["../../../../src/models/device/smartboard-pro.model.ts"],"names":[],"mappings":";;;AAAA,wDAA2C;AAG3C;;;;GAIG;AACH,MAAa,aAAc,SAAQ,wBAAM;IACvC;QACE,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YACjC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,sCAAsC;oBAC5C,eAAe,EAAE;wBACf;4BACE,IAAI,EAAE,EAAE;4BACR,EAAE,EAAE,EAAE;4BACN,IAAI,EAAE,sCAAsC;yBAC7C;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,EAAE,EAAE,YAAY;oBAChB,IAAI,EAAE,sCAAsC;oBAC5C,eAAe,EAAE;wBACf;4BACE,IAAI,EAAE,wBAAwB;4BAC9B,EAAE,EAAE,IAAI;4BACR,IAAI,EAAE,sCAAsC;yBAC7C;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,mBAAmB;oBACzB,EAAE,EAAE,WAAW;oBACf,IAAI,EAAE,sCAAsC;oBAC5C,eAAe,EAAE;wBACf;4BACE,IAAI,EAAE,iBAAiB;4BACvB,EAAE,EAAE,SAAS;4BACb,IAAI,EAAE,sCAAsC;yBAC7C;qBACF;iBACF;aACF;SACF,CAAC,CAAA;QAGJ;;;;;;WAMG;QACM,wBAAmB,GAAG,CAAC,KAAe,EAAQ,EAAE;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,
|
|
1
|
+
{"version":3,"file":"smartboard-pro.model.js","sourceRoot":"","sources":["../../../../src/models/device/smartboard-pro.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wh-c06.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/wh-c06.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AAEzE;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,MAAO,YAAW,MAAM;IACjD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAa;IAEjD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAc;IAEpD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAA6C;IAEzE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAa;;IA0BtD;;;;OAIG;IACM,OAAO,GACd,YAAW,MAAM,IAAkD,EACnE,UAAS,CAAC,KAAK,EAAE,KAAK,KAAK,IAAsC,KAChE,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"wh-c06.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/wh-c06.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAA;AAEzE;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,MAAO,YAAW,MAAM;IACjD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAa;IAEjD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAc;IAEpD;;;;OAIG;IACH,OAAO,CAAC,oBAAoB,CAA6C;IAEzE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAa;;IA0BtD;;;;OAIG;IACM,OAAO,GACd,YAAW,MAAM,IAAkD,EACnE,UAAS,CAAC,KAAK,EAAE,KAAK,KAAK,IAAsC,KAChE,OAAO,CAAC,IAAI,CAAC,CA8Ef;IAED;;;;OAIG;IACM,WAAW,QAAO,OAAO,CAEjC;IAED;;OAEG;IACH,OAAO,CAAC,yBAAyB,CAkBhC;CACF"}
|
|
@@ -68,33 +68,30 @@ class WHC06 extends device_model_js_1.Device {
|
|
|
68
68
|
this.bluetooth.addEventListener("advertisementreceived", (event) => {
|
|
69
69
|
const data = event.manufacturerData.get(WHC06.manufacturerId);
|
|
70
70
|
if (data) {
|
|
71
|
-
|
|
71
|
+
this.currentSamplesPerPacket = 1;
|
|
72
|
+
this.recordPacketReceived();
|
|
72
73
|
const weight = (data.getUint8(WHC06.weightOffset) << 8) | data.getUint8(WHC06.weightOffset + 1);
|
|
73
74
|
// const stable = (data.getUint8(STABLE_OFFSET) & 0xf0) >> 4
|
|
74
75
|
// const unit = data.getUint8(STABLE_OFFSET) & 0x0f
|
|
75
76
|
const receivedTime = Date.now();
|
|
76
77
|
const receivedData = weight / 100;
|
|
77
78
|
const numericData = receivedData - this.applyTare(receivedData) * -1;
|
|
78
|
-
// Add data to downloadable Array
|
|
79
|
-
this.downloadPackets.push({
|
|
80
|
-
received: receivedTime,
|
|
81
|
-
sampleNum: this.dataPointCount,
|
|
82
|
-
battRaw: 0,
|
|
83
|
-
samples: [numericData],
|
|
84
|
-
masses: [numericData],
|
|
85
|
-
});
|
|
86
|
-
// Update peak
|
|
87
|
-
this.peak = Math.max(this.peak, numericData);
|
|
88
|
-
// Update running sum and count
|
|
89
79
|
const currentMassTotal = Math.max(-1000, numericData);
|
|
80
|
+
// Update session stats before building packet
|
|
81
|
+
this.peak = Math.max(this.peak, numericData);
|
|
82
|
+
this.min = Math.min(this.min, Math.max(-1000, numericData));
|
|
90
83
|
this.sum += currentMassTotal;
|
|
91
84
|
this.dataPointCount++;
|
|
92
|
-
// Calculate the average dynamically
|
|
93
85
|
this.mean = this.sum / this.dataPointCount;
|
|
86
|
+
// Add data to downloadable Array
|
|
87
|
+
this.downloadPackets.push(this.buildDownloadPacket(currentMassTotal, [numericData], {
|
|
88
|
+
timestamp: receivedTime,
|
|
89
|
+
sampleIndex: this.dataPointCount,
|
|
90
|
+
}));
|
|
94
91
|
// Check if device is being used
|
|
95
92
|
this.activityCheck(numericData);
|
|
96
93
|
// Notify with weight data
|
|
97
|
-
this.notifyCallback(this.buildForceMeasurement(
|
|
94
|
+
this.notifyCallback(this.buildForceMeasurement(currentMassTotal));
|
|
98
95
|
}
|
|
99
96
|
// Reset "still advertising" counter
|
|
100
97
|
this.resetAdvertisementTimeout();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wh-c06.model.js","sourceRoot":"","sources":["../../../../src/models/device/wh-c06.model.ts"],"names":[],"mappings":";;;AAAA,wDAA2C;AAG3C;;;;;GAKG;AACH,MAAa,KAAM,SAAQ,wBAAM;IAkC/B,MAAM;IACN,0FAA0F;IAC1F,oBAAoB;IACpB,aAAa;IACb,eAAe;IACf,eAAe;IACf,MAAM;IACN,oDAAoD;IACpD;QACE,KAAK,CAAC;YACJ,OAAO,EAAE;gBACP;oBACE,iBAAiB;oBACjB,gBAAgB,EAAE;wBAChB;4BACE,iBAAiB,EAAE,MAAM,EAAE,MAAM;yBAClC;qBACF;iBACF;aACF;YACD,QAAQ,EAAE,EAAE;SACb,CAAC,CAAA;QApCJ;;;;WAIG;QACK,yBAAoB,GAAyC,IAAI,CAAA;QAEzE;;;;;WAKG;QACc,6BAAwB,GAAW,EAAE,CAAA;QA0BtD;;;;WAIG;QACM,YAAO,GAAG,KAAK,EACtB,YAAwB,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EACnE,UAAkC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAClD,EAAE;YACjB,IAAI,CAAC;gBACH,gLAAgL;gBAChL,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CACnD,CAAC,MAAM,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,MAAM,CAAC,gBAAgB,0CAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAI,EAAE,CAAA,EAAA,CACjF,CAAA;gBAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBAE3C,IAAI,CAAC,SAAS,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC;oBAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,wBAAwB;iBACzB,CAAC,CAAA;gBAEF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;gBACzD,CAAC;gBACD,mBAAmB;gBACnB,IAAI,CAAC,eAAe,EAAE,CAAA;gBAEtB,0EAA0E;gBAC1E,SAAS,EAAE,CAAA;gBAEX,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjE,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;oBAC7D,IAAI,IAAI,EAAE,CAAC;wBACT,uBAAuB;
|
|
1
|
+
{"version":3,"file":"wh-c06.model.js","sourceRoot":"","sources":["../../../../src/models/device/wh-c06.model.ts"],"names":[],"mappings":"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"}
|