@hangtime/grip-connect 0.10.2 → 0.10.4
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/dist/cjs/interfaces/command.interface.d.ts +4 -0
- package/dist/cjs/interfaces/command.interface.d.ts.map +1 -1
- package/dist/cjs/interfaces/device/progressor.interface.d.ts +13 -7
- package/dist/cjs/interfaces/device/progressor.interface.d.ts.map +1 -1
- package/dist/cjs/models/device/progressor.model.d.ts +37 -7
- package/dist/cjs/models/device/progressor.model.d.ts.map +1 -1
- package/dist/cjs/models/device/progressor.model.js +140 -95
- package/dist/cjs/models/device/progressor.model.js.map +1 -1
- package/dist/interfaces/command.interface.d.ts +4 -0
- package/dist/interfaces/command.interface.d.ts.map +1 -1
- package/dist/interfaces/device/progressor.interface.d.ts +13 -7
- package/dist/interfaces/device/progressor.interface.d.ts.map +1 -1
- package/dist/models/device/progressor.model.d.ts +37 -7
- package/dist/models/device/progressor.model.d.ts.map +1 -1
- package/dist/models/device/progressor.model.js +140 -95
- package/dist/models/device/progressor.model.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/interfaces/command.interface.ts +5 -0
- package/src/interfaces/device/progressor.interface.ts +14 -7
- package/src/models/device/progressor.model.ts +142 -93
|
@@ -92,5 +92,9 @@ export interface Commands {
|
|
|
92
92
|
* Get the Progressor ID.
|
|
93
93
|
*/
|
|
94
94
|
GET_PROGRESSOR_ID?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Set calibration curve (3× u32 LE). Payload at offsets +2,+6,+10.
|
|
97
|
+
*/
|
|
98
|
+
SET_CALIBRATION?: string;
|
|
95
99
|
}
|
|
96
100
|
//# sourceMappingURL=command.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/command.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IAGvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAInB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAIxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAIzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAEnC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"command.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/command.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IAGvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAInB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAIxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAIzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAEnC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB"}
|
|
@@ -20,13 +20,13 @@ export interface IProgressor extends IDevice {
|
|
|
20
20
|
progressorId(): Promise<string | undefined>;
|
|
21
21
|
/**
|
|
22
22
|
* Retrieves calibration curve from the device (opcode 0x72). Payload is 12 opaque bytes;
|
|
23
|
-
* parsed for display as
|
|
24
|
-
* @returns {Promise<string | undefined>} A Promise that resolves with a display string (e.g. "hex —
|
|
23
|
+
* parsed for display as hex plus 3× uint32 LE.
|
|
24
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with a display string (e.g. "hex — 1: X | 2: Y | 3: Z").
|
|
25
25
|
*/
|
|
26
26
|
calibration(): Promise<string | undefined>;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
28
|
+
* Computes calibration curve from stored points and saves to flash.
|
|
29
|
+
* Call after addCalibrationPoint() for zero and reference. Normal flow: i → i → j.
|
|
30
30
|
*/
|
|
31
31
|
saveCalibration(): Promise<void>;
|
|
32
32
|
/**
|
|
@@ -34,6 +34,12 @@ export interface IProgressor extends IDevice {
|
|
|
34
34
|
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
35
35
|
*/
|
|
36
36
|
sleep(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Set a new calibration curve.
|
|
39
|
+
* @warning Expert only. This will overwrite the current calibration curve.
|
|
40
|
+
* @param curve - The 12-byte calibration curve to set.
|
|
41
|
+
*/
|
|
42
|
+
setCalibration(curve: Uint8Array): Promise<void>;
|
|
37
43
|
/**
|
|
38
44
|
* Retrieves error information from the device.
|
|
39
45
|
* @returns {Promise<string | undefined>} A Promise that resolves with the error info text.
|
|
@@ -56,10 +62,10 @@ export interface IProgressor extends IDevice {
|
|
|
56
62
|
*/
|
|
57
63
|
stream(duration?: number): Promise<void>;
|
|
58
64
|
/**
|
|
59
|
-
* Adds a calibration point
|
|
60
|
-
*
|
|
65
|
+
* Adds a calibration point by capturing the current live ADC reading.
|
|
66
|
+
* Call with no load for zero point, then with known weight; then saveCalibration().
|
|
61
67
|
*/
|
|
62
|
-
addCalibrationPoint(
|
|
68
|
+
addCalibrationPoint(): Promise<void>;
|
|
63
69
|
/**
|
|
64
70
|
* Sends the device tare command to zero the scale (hardware tare).
|
|
65
71
|
* For software tare over a duration, use the base tare(duration) method.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressor.interface.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/device/progressor.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEtC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEvC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE3C;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE1C;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhC;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAExC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/B;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExC;;;OAGG;IACH,mBAAmB,
|
|
1
|
+
{"version":3,"file":"progressor.interface.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/device/progressor.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEtC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEvC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE3C;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE1C;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhC;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhD;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAExC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/B;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExC;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpC;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B"}
|
|
@@ -25,18 +25,48 @@ export declare class Progressor extends Device implements IProgressor {
|
|
|
25
25
|
*/
|
|
26
26
|
calibration: () => Promise<string | undefined>;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Computes calibration curve from stored points and saves to flash (opcode 0x6A).
|
|
29
|
+
* Requires addCalibrationPoint() for zero and reference. Normal flow: i → i → j.
|
|
29
30
|
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
30
31
|
*/
|
|
31
32
|
saveCalibration: () => Promise<void>;
|
|
32
33
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
34
|
+
* Opcode 0x71 ('q'): write calibration curve directly (raw overwrite).
|
|
35
|
+
*
|
|
36
|
+
* Payload layout (14 bytes):
|
|
37
|
+
* - [0] opcode ('q' = 0x71)
|
|
38
|
+
* - [1] reserved (ignored by firmware)
|
|
39
|
+
* - [2..13] 12-byte calibration curve (3× u32 LE read at offsets +2, +6, +10)
|
|
40
|
+
*
|
|
41
|
+
* Notes:
|
|
42
|
+
* - This command does not compute anything; it overwrites stored calibration data.
|
|
43
|
+
* - Sending only the opcode (no 12-byte curve) is not a supported "reset" mode.
|
|
44
|
+
*
|
|
45
|
+
* @param curve - Raw 12-byte calibration curve (required).
|
|
46
|
+
* @returns Promise that resolves when the command is sent.
|
|
47
|
+
*/
|
|
48
|
+
setCalibration: (curve: Uint8Array) => Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Captures a calibration point from the *current live measurement*.
|
|
51
|
+
*
|
|
52
|
+
* Command: 0x69 ('i') written to the control characteristic.
|
|
53
|
+
*
|
|
54
|
+
* The firmware does **not** parse a float payload for this command. It simply snapshots the
|
|
55
|
+
* current raw ADC/force reading and stores it as the next calibration point (typically
|
|
56
|
+
* used as the zero point and the reference point for two-point calibration).
|
|
57
|
+
*
|
|
58
|
+
* Typical two-point calibration flow:
|
|
59
|
+
* 1) Ensure the device is stable with **no load** attached → send addCalibrationPoint() (zero point)
|
|
60
|
+
* 2) Attach a **known weight** and wait until stable → send addCalibrationPoint() (reference point)
|
|
61
|
+
* 3) Call saveCalibration() ('j') to compute + persist the curve
|
|
62
|
+
*
|
|
63
|
+
* Notes:
|
|
64
|
+
* - Order usually doesn’t matter, but capturing the zero point first is common practice.
|
|
65
|
+
* - Any extra payload bytes are ignored by the firmware for this command.
|
|
66
|
+
*
|
|
67
|
+
* @returns {Promise<void>} Resolves when the command is sent.
|
|
38
68
|
*/
|
|
39
|
-
addCalibrationPoint: (
|
|
69
|
+
addCalibrationPoint: () => Promise<void>;
|
|
40
70
|
/**
|
|
41
71
|
* Sends the device tare command to zero the scale (hardware tare).
|
|
42
72
|
* For software tare over a duration, use the base tare(duration) method.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressor.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAA;AAkFlF,qBAAa,UAAW,SAAQ,MAAO,YAAW,WAAW;IAC3D,iFAAiF;IACjF,OAAO,CAAC,sBAAsB,CAAe;;
|
|
1
|
+
{"version":3,"file":"progressor.model.d.ts","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAA;AAkFlF,qBAAa,UAAW,SAAQ,MAAO,YAAW,WAAW;IAC3D,iFAAiF;IACjF,OAAO,CAAC,sBAAsB,CAAe;;IAyD7C;;;OAGG;IACH,OAAO,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM9C;IAED;;;OAGG;IACH,QAAQ,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAM/C;IAED;;;OAGG;IACH,YAAY,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAMnD;IAED;;;OAGG;IACH,WAAW,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAMlD;IAED;;;;OAIG;IACH,eAAe,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAED;;;;;;;;;;;;;;OAcG;IACH,cAAc,GAAU,OAAO,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC,CAWxD;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,mBAAmB,QAAa,OAAO,CAAC,IAAI,CAAC,CAG5C;IAED;;;;OAIG;IACH,SAAS,QAAa,OAAO,CAAC,IAAI,CAAC,CAElC;IAED;;;OAGG;IACH,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAG9B;IAED;;;OAGG;IACH,SAAS,QAAa,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAMhD;IAED;;;OAGG;IACH,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAEvC;IAED;;;;;;OAMG;IACM,mBAAmB,GAAI,OAAO,QAAQ,KAAG,IAAI,CAwFrD;IAED;;;OAGG;IACH,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED;;;;OAIG;IACH,MAAM,GAAU,iBAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAgB3C;CACF"}
|
|
@@ -11,27 +11,27 @@ 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_POWER_WARNING"] = 4] = "RESPONSE_LOW_POWER_WARNING";
|
|
35
35
|
})(ProgressorResponses || (ProgressorResponses = {}));
|
|
36
36
|
/**
|
|
37
37
|
* Represents a Tindeq Progressor device.
|
|
@@ -71,7 +71,7 @@ function parseCalibrationCurvePayload(payload) {
|
|
|
71
71
|
return hex;
|
|
72
72
|
const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
|
|
73
73
|
const [v0, v1, v2] = [0, 4, 8].map((o) => view.getUint32(o, true));
|
|
74
|
-
return `${hex} —
|
|
74
|
+
return `${hex} — 1: ${v1.toLocaleString()} | 2: ${v0.toLocaleString()} | 3: ${v2}`;
|
|
75
75
|
}
|
|
76
76
|
class Progressor extends device_model_js_1.Device {
|
|
77
77
|
constructor() {
|
|
@@ -123,6 +123,7 @@ class Progressor extends device_model_js_1.Device {
|
|
|
123
123
|
SLEEP: "n", // 110 (0x6e)
|
|
124
124
|
GET_BATTERY_VOLTAGE: "o", // 111 (0x6f)
|
|
125
125
|
GET_PROGRESSOR_ID: "p", // 112 (0x70)
|
|
126
|
+
SET_CALIBRATION: "q", // 113 (0x71)
|
|
126
127
|
GET_CALIBRATION: "r", // 114 (0x72)
|
|
127
128
|
},
|
|
128
129
|
});
|
|
@@ -173,23 +174,60 @@ class Progressor extends device_model_js_1.Device {
|
|
|
173
174
|
return response;
|
|
174
175
|
};
|
|
175
176
|
/**
|
|
176
|
-
*
|
|
177
|
+
* Computes calibration curve from stored points and saves to flash (opcode 0x6A).
|
|
178
|
+
* Requires addCalibrationPoint() for zero and reference. Normal flow: i → i → j.
|
|
177
179
|
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
178
180
|
*/
|
|
179
181
|
this.saveCalibration = async () => {
|
|
180
182
|
await this.write("progressor", "tx", this.commands.SAVE_CALIBRATION, 0);
|
|
181
183
|
};
|
|
182
184
|
/**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
185
|
+
* Opcode 0x71 ('q'): write calibration curve directly (raw overwrite).
|
|
186
|
+
*
|
|
187
|
+
* Payload layout (14 bytes):
|
|
188
|
+
* - [0] opcode ('q' = 0x71)
|
|
189
|
+
* - [1] reserved (ignored by firmware)
|
|
190
|
+
* - [2..13] 12-byte calibration curve (3× u32 LE read at offsets +2, +6, +10)
|
|
191
|
+
*
|
|
192
|
+
* Notes:
|
|
193
|
+
* - This command does not compute anything; it overwrites stored calibration data.
|
|
194
|
+
* - Sending only the opcode (no 12-byte curve) is not a supported "reset" mode.
|
|
195
|
+
*
|
|
196
|
+
* @param curve - Raw 12-byte calibration curve (required).
|
|
197
|
+
* @returns Promise that resolves when the command is sent.
|
|
198
|
+
*/
|
|
199
|
+
this.setCalibration = async (curve) => {
|
|
200
|
+
if (curve.length !== 12)
|
|
201
|
+
throw new Error("Curve must be 12 bytes");
|
|
202
|
+
const opcode = this.commands.SET_CALIBRATION.charCodeAt(0); // 0x71
|
|
203
|
+
const payload = new Uint8Array(14);
|
|
204
|
+
payload[0] = opcode;
|
|
205
|
+
payload[1] = 0; // reserved/ignored
|
|
206
|
+
payload.set(curve, 2);
|
|
207
|
+
await this.write("progressor", "tx", payload, 0);
|
|
208
|
+
};
|
|
209
|
+
/**
|
|
210
|
+
* Captures a calibration point from the *current live measurement*.
|
|
211
|
+
*
|
|
212
|
+
* Command: 0x69 ('i') written to the control characteristic.
|
|
213
|
+
*
|
|
214
|
+
* The firmware does **not** parse a float payload for this command. It simply snapshots the
|
|
215
|
+
* current raw ADC/force reading and stores it as the next calibration point (typically
|
|
216
|
+
* used as the zero point and the reference point for two-point calibration).
|
|
217
|
+
*
|
|
218
|
+
* Typical two-point calibration flow:
|
|
219
|
+
* 1) Ensure the device is stable with **no load** attached → send addCalibrationPoint() (zero point)
|
|
220
|
+
* 2) Attach a **known weight** and wait until stable → send addCalibrationPoint() (reference point)
|
|
221
|
+
* 3) Call saveCalibration() ('j') to compute + persist the curve
|
|
222
|
+
*
|
|
223
|
+
* Notes:
|
|
224
|
+
* - Order usually doesn’t matter, but capturing the zero point first is common practice.
|
|
225
|
+
* - Any extra payload bytes are ignored by the firmware for this command.
|
|
226
|
+
*
|
|
227
|
+
* @returns {Promise<void>} Resolves when the command is sent.
|
|
188
228
|
*/
|
|
189
|
-
this.addCalibrationPoint = async (
|
|
190
|
-
const payload = new Uint8Array(
|
|
191
|
-
payload[0] = this.commands.ADD_CALIBRATION_POINT.charCodeAt(0); // 0x69
|
|
192
|
-
new DataView(payload.buffer).setFloat32(1, weightKg, true);
|
|
229
|
+
this.addCalibrationPoint = async () => {
|
|
230
|
+
const payload = new Uint8Array([this.commands.ADD_CALIBRATION_POINT.charCodeAt(0)]); // 0x69
|
|
193
231
|
await this.write("progressor", "tx", payload, 0);
|
|
194
232
|
};
|
|
195
233
|
/**
|
|
@@ -235,86 +273,93 @@ class Progressor extends device_model_js_1.Device {
|
|
|
235
273
|
*/
|
|
236
274
|
this.handleNotifications = (value) => {
|
|
237
275
|
var _a;
|
|
238
|
-
if (value)
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
302
|
-
else if (this.writeLast === this.commands.GET_CALIBRATION) {
|
|
303
|
-
output = parseCalibrationCurvePayload(payload);
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
// Unknown command response: return raw hex
|
|
307
|
-
output = toHex(payload);
|
|
308
|
-
}
|
|
309
|
-
this.writeCallback(output);
|
|
310
|
-
}
|
|
311
|
-
else if (kind === ProgressorResponses.LOW_BATTERY_WARNING) {
|
|
312
|
-
console.warn("⚠️ Low power detected. Please consider connecting to a power source.");
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
throw new Error(`Unknown message kind detected: ${kind}`);
|
|
316
|
-
}
|
|
276
|
+
if (!(value === null || value === void 0 ? void 0 : value.buffer))
|
|
277
|
+
return;
|
|
278
|
+
// Update timestamp
|
|
279
|
+
this.updateTimestamp();
|
|
280
|
+
const receivedTime = Date.now();
|
|
281
|
+
// Read the first byte of the buffer to determine the kind of message
|
|
282
|
+
const kind = value.getUint8(0);
|
|
283
|
+
const payloadLength = value.getUint8(1);
|
|
284
|
+
const bytes = new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
|
|
285
|
+
const payload = bytes.slice(2, 2 + payloadLength);
|
|
286
|
+
// Check if the message is a weight measurement
|
|
287
|
+
if (kind === ProgressorResponses.RESPONSE_WEIGHT_MEASUREMENT) {
|
|
288
|
+
if (payloadLength % 8 !== 0)
|
|
289
|
+
return;
|
|
290
|
+
const samplesPerPacket = payloadLength / 8;
|
|
291
|
+
this.currentSamplesPerPacket = samplesPerPacket;
|
|
292
|
+
this.recordPacketReceived();
|
|
293
|
+
for (let i = 0; i < samplesPerPacket; i++) {
|
|
294
|
+
const offset = 2 + i * 8;
|
|
295
|
+
const weight = value.getFloat32(offset, true);
|
|
296
|
+
const timestampUs = value.getUint32(offset + 4, true);
|
|
297
|
+
if (Number.isNaN(weight))
|
|
298
|
+
continue;
|
|
299
|
+
const numericData = weight - this.applyTare(weight);
|
|
300
|
+
const currentMassTotal = Math.max(-1000, Number(numericData));
|
|
301
|
+
// Update session stats before building packet
|
|
302
|
+
this.peak = Math.max(this.peak, Number(numericData));
|
|
303
|
+
this.min = Math.min(this.min, Math.max(-1000, Number(numericData)));
|
|
304
|
+
this.sum += currentMassTotal;
|
|
305
|
+
this.dataPointCount++;
|
|
306
|
+
this.mean = this.sum / this.dataPointCount;
|
|
307
|
+
this.downloadPackets.push(this.buildDownloadPacket(currentMassTotal, [weight], {
|
|
308
|
+
timestamp: receivedTime,
|
|
309
|
+
sampleIndex: timestampUs,
|
|
310
|
+
}));
|
|
311
|
+
this.activityCheck(numericData);
|
|
312
|
+
// Hz from device timestamps: keep only samples in last 1s
|
|
313
|
+
this.recentSampleTimestamps.push(timestampUs);
|
|
314
|
+
const latestUs = (_a = this.recentSampleTimestamps[this.recentSampleTimestamps.length - 1]) !== null && _a !== void 0 ? _a : 0;
|
|
315
|
+
this.recentSampleTimestamps = this.recentSampleTimestamps.filter((ts) => latestUs - ts <= ONE_SECOND_US);
|
|
316
|
+
const samplingRateHz = this.recentSampleTimestamps.length;
|
|
317
|
+
const payload = this.buildForceMeasurement(currentMassTotal);
|
|
318
|
+
if (payload.performance)
|
|
319
|
+
payload.performance.samplingRateHz = samplingRateHz;
|
|
320
|
+
this.notifyCallback(payload);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
// Command response
|
|
324
|
+
else if (kind === ProgressorResponses.RESPONSE_COMMAND) {
|
|
325
|
+
if (!this.writeLast)
|
|
326
|
+
return;
|
|
327
|
+
let output = "";
|
|
328
|
+
if (this.writeLast === this.commands.GET_BATTERY_VOLTAGE) {
|
|
329
|
+
output = new DataView(payload.buffer, payload.byteOffset, payload.byteLength).getUint32(0, true).toString();
|
|
330
|
+
}
|
|
331
|
+
else if (this.writeLast === this.commands.GET_FIRMWARE_VERSION) {
|
|
332
|
+
output = new TextDecoder().decode(payload);
|
|
333
|
+
}
|
|
334
|
+
else if (this.writeLast === this.commands.GET_ERROR_INFORMATION) {
|
|
335
|
+
output = new TextDecoder().decode(payload);
|
|
336
|
+
}
|
|
337
|
+
else if (this.writeLast === this.commands.GET_PROGRESSOR_ID) {
|
|
338
|
+
output = parseProgressorIdPayload(payload);
|
|
317
339
|
}
|
|
340
|
+
else if (this.writeLast === this.commands.GET_CALIBRATION) {
|
|
341
|
+
output = parseCalibrationCurvePayload(payload);
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
// Unknown command response: return raw hex
|
|
345
|
+
output = toHex(payload);
|
|
346
|
+
}
|
|
347
|
+
this.writeCallback(output);
|
|
348
|
+
}
|
|
349
|
+
// RFD peak response
|
|
350
|
+
else if (kind === ProgressorResponses.RESPONSE_RFD_PEAK) {
|
|
351
|
+
console.warn("⚠️ RFD peak is currently unsupported.");
|
|
352
|
+
}
|
|
353
|
+
// RFD peak series response
|
|
354
|
+
else if (kind === ProgressorResponses.RESPONSE_RFD_PEAK_SERIES) {
|
|
355
|
+
console.warn("⚠️ RFD peak series is currently unsupported.");
|
|
356
|
+
}
|
|
357
|
+
// Low power warning response
|
|
358
|
+
else if (kind === ProgressorResponses.RESPONSE_LOW_POWER_WARNING) {
|
|
359
|
+
console.warn("⚠️ Low power detected. Please consider connecting to a power source.");
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
throw new Error(`Unknown message kind detected: ${kind}`);
|
|
318
363
|
}
|
|
319
364
|
};
|
|
320
365
|
/**
|
|
@@ -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,iFAAc,CAAA;IAEd;;;OAGG;IACH,+EAAa,CAAA;IAEb;;;OAGG;IACH,6FAAoB,CAAA;IAEpB;;;OAGG;IACH,2FAAmB,CAAA;AACrB,CAAC,EA9BI,mBAAmB,KAAnB,mBAAmB,QA8BvB;AAED;;;GAGG;AACH,4FAA4F;AAC5F,MAAM,aAAa,GAAG,OAAS,CAAA;AAE/B;;;;GAIG;AACH,SAAS,KAAK,CAAC,OAAmB,EAAE,SAAS,GAAG,GAAG;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,SAAS,CAAC,CAAA;AACpB,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,OAAmB;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAA;IAClB,OAAO,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAS,4BAA4B,CAAC,OAAmB;IACvD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;IAE1B,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,GAAG,CAAA;IAErC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACjF,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAElE,OAAO,GAAG,GAAG,kBAAkB,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAA;AAClI,CAAC;AAED,MAAa,UAAW,SAAQ,wBAAM;IAIpC;QACE,KAAK,CAAC;YACJ,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;YACvC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,EAAE,EAAE,YAAY;oBAChB,IAAI,EAAE,sCAAsC;oBAC5C,eAAe,EAAE;wBACf;4BACE,IAAI,EAAE,QAAQ;4BACd,EAAE,EAAE,IAAI;4BACR,IAAI,EAAE,sCAAsC;yBAC7C;wBACD;4BACE,IAAI,EAAE,OAAO;4BACb,EAAE,EAAE,IAAI;4BACR,IAAI,EAAE,sCAAsC;yBAC7C;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,6CAA6C;oBACnD,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,sCAAsC;oBAC5C,eAAe,EAAE;wBACf;4BACE,IAAI,EAAE,gBAAgB;4BACtB,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,sCAAsC;yBAC7C;qBACF;iBACF;aACF;YACD,wEAAwE;YACxE,QAAQ,EAAE;gBACR,UAAU,EAAE,GAAG,EAAE,aAAa;gBAC9B,iBAAiB,EAAE,GAAG,EAAE,aAAa;gBACrC,gBAAgB,EAAE,GAAG,EAAE,aAAa;gBACpC,mBAAmB,EAAE,GAAG,EAAE,aAAa;gBACvC,0BAA0B,EAAE,GAAG,EAAE,aAAa;gBAC9C,qBAAqB,EAAE,GAAG,EAAE,aAAa;gBACzC,gBAAgB,EAAE,GAAG,EAAE,aAAa;gBACpC,oBAAoB,EAAE,GAAG,EAAE,aAAa;gBACxC,qBAAqB,EAAE,GAAG,EAAE,aAAa;gBACzC,qBAAqB,EAAE,GAAG,EAAE,aAAa;gBACzC,KAAK,EAAE,GAAG,EAAE,aAAa;gBACzB,mBAAmB,EAAE,GAAG,EAAE,aAAa;gBACvC,iBAAiB,EAAE,GAAG,EAAE,aAAa;gBACrC,eAAe,EAAE,GAAG,EAAE,aAAa;aACpC;SACF,CAAC,CAAA;QAtDJ,iFAAiF;QACzE,2BAAsB,GAAa,EAAE,CAAA;QAwD7C;;;WAGG;QACH,YAAO,GAAG,KAAK,IAAiC,EAAE;YAChD,IAAI,QAAQ,GAAuB,SAAS,CAAA;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;gBACpF,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;QAED;;;WAGG;QACH,aAAQ,GAAG,KAAK,IAAiC,EAAE;YACjD,IAAI,QAAQ,GAAuB,SAAS,CAAA;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;gBACrF,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;QAED;;;WAGG;QACH,iBAAY,GAAG,KAAK,IAAiC,EAAE;YACrD,IAAI,QAAQ,GAAuB,SAAS,CAAA;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;gBAClF,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;QAED;;;WAGG;QACH,gBAAW,GAAG,KAAK,IAAiC,EAAE;YACpD,IAAI,QAAQ,GAAuB,SAAS,CAAA;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChF,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;QAED;;;WAGG;QACH,oBAAe,GAAG,KAAK,IAAmB,EAAE;YAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;QACzE,CAAC,CAAA;QAED;;;;;;WAMG;QACH,wBAAmB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;YAC9D,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;YACjC,OAAO,CAAC,CAAC,CAAC,GAAI,IAAI,CAAC,QAAQ,CAAC,qBAAgC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAC,OAAO;YAClF,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YAC1D,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC,CAAA;QAED;;;;WAIG;QACH,cAAS,GAAG,KAAK,IAAmB,EAAE;YACpC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;QACnE,CAAC,CAAA;QAED;;;WAGG;QACH,UAAK,GAAG,KAAK,IAAmB,EAAE;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAA;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACtF,CAAC,CAAA;QAED;;;WAGG;QACH,cAAS,GAAG,KAAK,IAAiC,EAAE;YAClD,IAAI,QAAQ,GAAuB,SAAS,CAAA;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;gBACtF,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC,CAAC,CAAA;YACF,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;QAED;;;WAGG;QACH,mBAAc,GAAG,KAAK,IAAmB,EAAE;YACzC,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;QAC9E,CAAC,CAAA;QAED;;;;;;WAMG;QACM,wBAAmB,GAAG,CAAC,KAAe,EAAQ,EAAE;;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,mBAAmB;gBACnB,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,YAAY,GAAW,IAAI,CAAC,GAAG,EAAE,CAAA;oBACvC,qEAAqE;oBACrE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;oBAC7B,+CAA+C;oBAC/C,IAAI,IAAI,KAAK,mBAAmB,CAAC,cAAc,EAAE,CAAC;wBAChD,sFAAsF;wBACtF,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAA;wBAC1C,IAAI,aAAa,GAAG,CAAC,KAAK,CAAC;4BAAE,OAAM;wBACnC,MAAM,gBAAgB,GAAG,aAAa,GAAG,CAAC,CAAA;wBAC1C,IAAI,CAAC,uBAAuB,GAAG,gBAAgB,CAAA;wBAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAA;wBAE3B,4HAA4H;wBAC5H,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;4BACxB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;4BAC7C,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;4BACrD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gCACnB,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;gCACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;gCAE7D,8CAA8C;gCAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;gCACpD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gCACnE,IAAI,CAAC,GAAG,IAAI,gBAAgB,CAAA;gCAC5B,IAAI,CAAC,cAAc,EAAE,CAAA;gCACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAA;gCAE1C,IAAI,CAAC,eAAe,CAAC,IAAI,CACvB,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE;oCACnD,SAAS,EAAE,YAAY;oCACvB,WAAW,EAAE,WAAW;iCACzB,CAAC,CACH,CAAA;gCACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;gCAE/B,0DAA0D;gCAC1D,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gCAC7C,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,CAAC,CAAA;gCACzF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,IAAI,aAAa,CAAC,CAAA;gCACxG,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAA;gCAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAA;gCAC5D,IAAI,OAAO,CAAC,WAAW;oCAAE,OAAO,CAAC,WAAW,CAAC,cAAc,GAAG,cAAc,CAAA;gCAC5E,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;4BAC9B,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,IAAI,IAAI,KAAK,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;wBACzD,IAAI,CAAC,IAAI,CAAC,SAAS;4BAAE,OAAM;wBAE3B,IAAI,MAAM,GAAG,EAAE,CAAA;wBACf,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;wBAErD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;4BACzD,MAAM,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAA;wBACtE,CAAC;6BAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;4BACjE,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;wBAC5C,CAAC;6BAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;4BAClE,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;wBAC5C,CAAC;6BAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;4BAC9D,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAA;wBAC5C,CAAC;6BAAM,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;4BAC5D,MAAM,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAA;wBAChD,CAAC;6BAAM,CAAC;4BACN,2CAA2C;4BAC3C,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;wBACzB,CAAC;wBACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;oBAC5B,CAAC;yBAAM,IAAI,IAAI,KAAK,mBAAmB,CAAC,mBAAmB,EAAE,CAAC;wBAC5D,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;oBACtF,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAA;oBAC3D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED;;;WAGG;QACH,SAAI,GAAG,KAAK,IAAmB,EAAE;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;QACzE,CAAC,CAAA;QAED;;;;WAIG;QACH,WAAM,GAAG,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAiB,EAAE;YAC7C,iEAAiE;YACjE,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;YAC/B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAA;YACpC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;YACb,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;YACZ,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;YACvB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAA;YACnC,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC1B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAA;YAChC,uBAAuB;YACvB,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAC/E,oCAAoC;YACpC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YACnB,CAAC;QACH,CAAC,CAAA;IApOD,CAAC;CAqOF;AA7RD,gCA6RC"}
|
|
1
|
+
{"version":3,"file":"progressor.model.js","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,5 +92,9 @@ export interface Commands {
|
|
|
92
92
|
* Get the Progressor ID.
|
|
93
93
|
*/
|
|
94
94
|
GET_PROGRESSOR_ID?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Set calibration curve (3× u32 LE). Payload at offsets +2,+6,+10.
|
|
97
|
+
*/
|
|
98
|
+
SET_CALIBRATION?: string;
|
|
95
99
|
}
|
|
96
100
|
//# sourceMappingURL=command.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/command.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IAGvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAInB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAIxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAIzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAEnC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"command.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/command.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IAGvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAInB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAIxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAIzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAA;IAEnC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB"}
|
|
@@ -20,13 +20,13 @@ export interface IProgressor extends IDevice {
|
|
|
20
20
|
progressorId(): Promise<string | undefined>;
|
|
21
21
|
/**
|
|
22
22
|
* Retrieves calibration curve from the device (opcode 0x72). Payload is 12 opaque bytes;
|
|
23
|
-
* parsed for display as
|
|
24
|
-
* @returns {Promise<string | undefined>} A Promise that resolves with a display string (e.g. "hex —
|
|
23
|
+
* parsed for display as hex plus 3× uint32 LE.
|
|
24
|
+
* @returns {Promise<string | undefined>} A Promise that resolves with a display string (e.g. "hex — 1: X | 2: Y | 3: Z").
|
|
25
25
|
*/
|
|
26
26
|
calibration(): Promise<string | undefined>;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
28
|
+
* Computes calibration curve from stored points and saves to flash.
|
|
29
|
+
* Call after addCalibrationPoint() for zero and reference. Normal flow: i → i → j.
|
|
30
30
|
*/
|
|
31
31
|
saveCalibration(): Promise<void>;
|
|
32
32
|
/**
|
|
@@ -34,6 +34,12 @@ export interface IProgressor extends IDevice {
|
|
|
34
34
|
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
35
35
|
*/
|
|
36
36
|
sleep(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Set a new calibration curve.
|
|
39
|
+
* @warning Expert only. This will overwrite the current calibration curve.
|
|
40
|
+
* @param curve - The 12-byte calibration curve to set.
|
|
41
|
+
*/
|
|
42
|
+
setCalibration(curve: Uint8Array): Promise<void>;
|
|
37
43
|
/**
|
|
38
44
|
* Retrieves error information from the device.
|
|
39
45
|
* @returns {Promise<string | undefined>} A Promise that resolves with the error info text.
|
|
@@ -56,10 +62,10 @@ export interface IProgressor extends IDevice {
|
|
|
56
62
|
*/
|
|
57
63
|
stream(duration?: number): Promise<void>;
|
|
58
64
|
/**
|
|
59
|
-
* Adds a calibration point
|
|
60
|
-
*
|
|
65
|
+
* Adds a calibration point by capturing the current live ADC reading.
|
|
66
|
+
* Call with no load for zero point, then with known weight; then saveCalibration().
|
|
61
67
|
*/
|
|
62
|
-
addCalibrationPoint(
|
|
68
|
+
addCalibrationPoint(): Promise<void>;
|
|
63
69
|
/**
|
|
64
70
|
* Sends the device tare command to zero the scale (hardware tare).
|
|
65
71
|
* For software tare over a duration, use the base tare(duration) method.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressor.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device/progressor.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEtC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEvC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE3C;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE1C;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhC;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAExC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/B;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExC;;;OAGG;IACH,mBAAmB,
|
|
1
|
+
{"version":3,"file":"progressor.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/device/progressor.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAErD;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEtC;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAEvC;;;OAGG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE3C;;;;OAIG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAE1C;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhC;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhD;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;IAExC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/B;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAErB;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAExC;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpC;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B"}
|
|
@@ -25,18 +25,48 @@ export declare class Progressor extends Device implements IProgressor {
|
|
|
25
25
|
*/
|
|
26
26
|
calibration: () => Promise<string | undefined>;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* Computes calibration curve from stored points and saves to flash (opcode 0x6A).
|
|
29
|
+
* Requires addCalibrationPoint() for zero and reference. Normal flow: i → i → j.
|
|
29
30
|
* @returns {Promise<void>} A Promise that resolves when the command is sent.
|
|
30
31
|
*/
|
|
31
32
|
saveCalibration: () => Promise<void>;
|
|
32
33
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
34
|
+
* Opcode 0x71 ('q'): write calibration curve directly (raw overwrite).
|
|
35
|
+
*
|
|
36
|
+
* Payload layout (14 bytes):
|
|
37
|
+
* - [0] opcode ('q' = 0x71)
|
|
38
|
+
* - [1] reserved (ignored by firmware)
|
|
39
|
+
* - [2..13] 12-byte calibration curve (3× u32 LE read at offsets +2, +6, +10)
|
|
40
|
+
*
|
|
41
|
+
* Notes:
|
|
42
|
+
* - This command does not compute anything; it overwrites stored calibration data.
|
|
43
|
+
* - Sending only the opcode (no 12-byte curve) is not a supported "reset" mode.
|
|
44
|
+
*
|
|
45
|
+
* @param curve - Raw 12-byte calibration curve (required).
|
|
46
|
+
* @returns Promise that resolves when the command is sent.
|
|
47
|
+
*/
|
|
48
|
+
setCalibration: (curve: Uint8Array) => Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Captures a calibration point from the *current live measurement*.
|
|
51
|
+
*
|
|
52
|
+
* Command: 0x69 ('i') written to the control characteristic.
|
|
53
|
+
*
|
|
54
|
+
* The firmware does **not** parse a float payload for this command. It simply snapshots the
|
|
55
|
+
* current raw ADC/force reading and stores it as the next calibration point (typically
|
|
56
|
+
* used as the zero point and the reference point for two-point calibration).
|
|
57
|
+
*
|
|
58
|
+
* Typical two-point calibration flow:
|
|
59
|
+
* 1) Ensure the device is stable with **no load** attached → send addCalibrationPoint() (zero point)
|
|
60
|
+
* 2) Attach a **known weight** and wait until stable → send addCalibrationPoint() (reference point)
|
|
61
|
+
* 3) Call saveCalibration() ('j') to compute + persist the curve
|
|
62
|
+
*
|
|
63
|
+
* Notes:
|
|
64
|
+
* - Order usually doesn’t matter, but capturing the zero point first is common practice.
|
|
65
|
+
* - Any extra payload bytes are ignored by the firmware for this command.
|
|
66
|
+
*
|
|
67
|
+
* @returns {Promise<void>} Resolves when the command is sent.
|
|
38
68
|
*/
|
|
39
|
-
addCalibrationPoint: (
|
|
69
|
+
addCalibrationPoint: () => Promise<void>;
|
|
40
70
|
/**
|
|
41
71
|
* Sends the device tare command to zero the scale (hardware tare).
|
|
42
72
|
* For software tare over a duration, use the base tare(duration) method.
|