@hangtime/grip-connect 0.10.3 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/cjs/interfaces/command.interface.d.ts +2 -2
  2. package/dist/cjs/interfaces/command.interface.d.ts.map +1 -1
  3. package/dist/cjs/interfaces/device/progressor.interface.d.ts +13 -16
  4. package/dist/cjs/interfaces/device/progressor.interface.d.ts.map +1 -1
  5. package/dist/cjs/models/device/progressor.model.d.ts +38 -16
  6. package/dist/cjs/models/device/progressor.model.d.ts.map +1 -1
  7. package/dist/cjs/models/device/progressor.model.js +141 -114
  8. package/dist/cjs/models/device/progressor.model.js.map +1 -1
  9. package/dist/cjs/models/device.model.d.ts +6 -0
  10. package/dist/cjs/models/device.model.d.ts.map +1 -1
  11. package/dist/cjs/models/device.model.js +11 -0
  12. package/dist/cjs/models/device.model.js.map +1 -1
  13. package/dist/interfaces/command.interface.d.ts +2 -2
  14. package/dist/interfaces/command.interface.d.ts.map +1 -1
  15. package/dist/interfaces/device/progressor.interface.d.ts +13 -16
  16. package/dist/interfaces/device/progressor.interface.d.ts.map +1 -1
  17. package/dist/models/device/progressor.model.d.ts +38 -16
  18. package/dist/models/device/progressor.model.d.ts.map +1 -1
  19. package/dist/models/device/progressor.model.js +141 -114
  20. package/dist/models/device/progressor.model.js.map +1 -1
  21. package/dist/models/device.model.d.ts +6 -0
  22. package/dist/models/device.model.d.ts.map +1 -1
  23. package/dist/models/device.model.js +11 -0
  24. package/dist/models/device.model.js.map +1 -1
  25. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  26. package/package.json +1 -1
  27. package/src/interfaces/command.interface.ts +2 -2
  28. package/src/interfaces/device/progressor.interface.ts +13 -16
  29. package/src/models/device/progressor.model.ts +142 -113
  30. package/src/models/device.model.ts +12 -0
@@ -93,8 +93,8 @@ export interface Commands {
93
93
  */
94
94
  GET_PROGRESSOR_ID?: string;
95
95
  /**
96
- * Reset calibration to default values of the device.
96
+ * Set calibration curve (3× u32 LE). Payload at offsets +2,+6,+10.
97
97
  */
98
- RESET_CALIBRATION?: string;
98
+ SET_CALIBRATION?: string;
99
99
  }
100
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;IAE1B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B"}
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 zero-point, ref-point, and version (3× uint32 LE) plus hex.
24
- * @returns {Promise<string | undefined>} A Promise that resolves with a display string (e.g. "hex — zero-point: X | ref-point: Y | version: Z").
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
- * Saves the current calibration settings to the device.
29
- * @returns {Promise<void>} A Promise that resolves when the command is sent.
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
  /**
@@ -35,10 +35,11 @@ export interface IProgressor extends IDevice {
35
35
  */
36
36
  sleep(): Promise<void>;
37
37
  /**
38
- * Resets the calibration to default values of the device.
39
- * @returns {Promise<void>} A Promise that resolves when the command is sent.
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.
40
41
  */
41
- resetCalibration(): Promise<void>;
42
+ setCalibration(curve: Uint8Array): Promise<void>;
42
43
  /**
43
44
  * Retrieves error information from the device.
44
45
  * @returns {Promise<string | undefined>} A Promise that resolves with the error info text.
@@ -61,15 +62,11 @@ export interface IProgressor extends IDevice {
61
62
  */
62
63
  stream(duration?: number): Promise<void>;
63
64
  /**
64
- * Adds a calibration point. Use 0 for zero point, then known weight; then saveCalibration().
65
- * @param weightKg - Weight in kg (0 or known reference &lt; 150 kg).
66
- */
67
- addCalibrationPoint(weightKg: number): Promise<void>;
68
- /**
69
- * Sends the device tare command to zero the scale (hardware tare).
70
- * For software tare over a duration, use the base tare(duration) method.
71
- * @returns {Promise<void>} A Promise that resolves when the command is sent.
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().
72
67
  */
73
- tareScale(): Promise<void>;
68
+ addCalibrationPoint(): Promise<void>;
69
+ /** True if tare() uses device hardware tare rather than software averaging. */
70
+ readonly usesHardwareTare: true;
74
71
  }
75
72
  //# sourceMappingURL=progressor.interface.d.ts.map
@@ -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,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjC;;;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,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpD;;;;OAIG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B"}
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,+EAA+E;IAC/E,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAA;CAChC"}
@@ -25,29 +25,51 @@ export declare class Progressor extends Device implements IProgressor {
25
25
  */
26
26
  calibration: () => Promise<string | undefined>;
27
27
  /**
28
- * Saves the current calibration to the device. Call after adding both calibration points.
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
- * Resets the calibration to default values of the device.
34
- * @returns {Promise<void>} A Promise that resolves when the command is sent.
35
- */
36
- resetCalibration: () => Promise<void>;
37
- /**
38
- * Adds a calibration point: 0x69 + 32-bit float (weight in kg), 5 bytes to the control characteristic.
39
- * Use for two-point calibration: (1) zero weight — addCalibrationPoint(0); (2) known weight — addCalibrationPoint(knownKg).
40
- * Order can be either way; writing zero first is recommended (hysteresis). Then call saveCalibration().
41
- * @param {number} weightKg - Weight in kg (use 0 for zero point, or known reference weight &lt; 150 kg).
42
- * @returns {Promise<void>} A Promise that resolves when the command is sent.
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.
43
47
  */
44
- addCalibrationPoint: (weightKg: number) => Promise<void>;
48
+ setCalibration: (curve: Uint8Array) => Promise<void>;
45
49
  /**
46
- * Sends the device tare command to zero the scale (hardware tare).
47
- * For software tare over a duration, use the base tare(duration) method.
48
- * @returns {Promise<void>} A Promise that resolves when the command is sent.
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.
49
68
  */
50
- tareScale: () => Promise<void>;
69
+ addCalibrationPoint: () => Promise<void>;
70
+ /** True if tare() uses device hardware tare rather than software averaging. */
71
+ readonly usesHardwareTare = true;
72
+ tare(duration?: number): boolean;
51
73
  /**
52
74
  * Puts the device to sleep / shutdown.
53
75
  * @returns {Promise<void>} A Promise that resolves when the command is sent.
@@ -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;;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;;;OAGG;IACH,eAAe,QAAa,OAAO,CAAC,IAAI,CAAC,CAExC;IAED;;;OAGG;IACH,gBAAgB,QAAa,OAAO,CAAC,IAAI,CAAC,CAEzC;IAED;;;;;;OAMG;IACH,mBAAmB,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAK5D;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,CA4FrD;IAED;;;OAGG;IACH,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAE7B;IAED;;;;OAIG;IACH,MAAM,GAAU,iBAAY,KAAG,OAAO,CAAC,IAAI,CAAC,CAgB3C;CACF"}
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,+EAA+E;IAC/E,QAAQ,CAAC,gBAAgB,QAAO;IAEvB,IAAI,CAAC,QAAQ,SAAO,GAAG,OAAO;IAOvC;;;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"}
@@ -31,7 +31,7 @@ var ProgressorResponses;
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["RESPONSE_LOW_PWR_WARNING"] = 4] = "RESPONSE_LOW_PWR_WARNING";
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} — zero-point: ${v1.toLocaleString()} | ref-point: ${v0.toLocaleString()} | version: ${v2} (0x${v2.toString(16)})`;
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,7 +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
- RESET_CALIBRATION: "q", // 113 (0x71)
126
+ SET_CALIBRATION: "q", // 113 (0x71)
127
127
  GET_CALIBRATION: "r", // 114 (0x72)
128
128
  },
129
129
  });
@@ -174,40 +174,64 @@ class Progressor extends device_model_js_1.Device {
174
174
  return response;
175
175
  };
176
176
  /**
177
- * Saves the current calibration to the device. Call after adding both calibration points.
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.
178
179
  * @returns {Promise<void>} A Promise that resolves when the command is sent.
179
180
  */
180
181
  this.saveCalibration = async () => {
181
182
  await this.write("progressor", "tx", this.commands.SAVE_CALIBRATION, 0);
182
183
  };
183
184
  /**
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 &lt; 150 kg).
195
- * @returns {Promise<void>} A Promise that resolves when the command is sent.
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.
196
198
  */
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);
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);
201
207
  await this.write("progressor", "tx", payload, 0);
202
208
  };
203
209
  /**
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.
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.
207
228
  */
208
- this.tareScale = async () => {
209
- await this.write("progressor", "tx", this.commands.TARE_SCALE, 0);
229
+ this.addCalibrationPoint = async () => {
230
+ const payload = new Uint8Array([this.commands.ADD_CALIBRATION_POINT.charCodeAt(0)]); // 0x69
231
+ await this.write("progressor", "tx", payload, 0);
210
232
  };
233
+ /** True if tare() uses device hardware tare rather than software averaging. */
234
+ this.usesHardwareTare = true;
211
235
  /**
212
236
  * Puts the device to sleep / shutdown.
213
237
  * @returns {Promise<void>} A Promise that resolves when the command is sent.
@@ -243,97 +267,94 @@ class Progressor extends device_model_js_1.Device {
243
267
  */
244
268
  this.handleNotifications = (value) => {
245
269
  var _a;
246
- if (value) {
247
- // Update timestamp
248
- this.updateTimestamp();
249
- if (value.buffer) {
250
- const receivedTime = Date.now();
251
- // Read the first byte of the buffer to determine the kind of message
252
- const kind = value.getInt8(0);
253
- // Check if the message is a weight measurement
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;
265
- const weight = value.getFloat32(offset, true);
266
- const timestampUs = value.getUint32(offset + 4, true);
267
- if (!isNaN(weight)) {
268
- const numericData = weight - this.applyTare(weight);
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)));
273
- this.sum += currentMassTotal;
274
- this.dataPointCount++;
275
- this.mean = this.sum / this.dataPointCount;
276
- this.downloadPackets.push(this.buildDownloadPacket(currentMassTotal, [weight], {
277
- timestamp: receivedTime,
278
- sampleIndex: timestampUs,
279
- }));
280
- this.activityCheck(numericData);
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);
290
- }
291
- }
292
- }
293
- // Command response
294
- else if (kind === ProgressorResponses.RESPONSE_COMMAND) {
295
- if (!this.writeLast)
296
- return;
297
- let output = "";
298
- const payload = new Uint8Array(value.buffer).slice(2);
299
- if (this.writeLast === this.commands.GET_BATTERY_VOLTAGE) {
300
- output = new DataView(value.buffer, 2).getUint32(0, true).toString();
301
- }
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);
310
- }
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);
317
- }
318
- this.writeCallback(output);
319
- }
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) {
330
- console.warn("⚠️ Low power detected. Please consider connecting to a power source.");
331
- }
332
- else {
333
- throw new Error(`Unknown message kind detected: ${kind}`);
334
- }
270
+ if (!(value === null || value === void 0 ? void 0 : value.buffer))
271
+ return;
272
+ // Update timestamp
273
+ this.updateTimestamp();
274
+ const receivedTime = Date.now();
275
+ // Read the first byte of the buffer to determine the kind of message
276
+ const kind = value.getUint8(0);
277
+ const payloadLength = value.getUint8(1);
278
+ const bytes = new Uint8Array(value.buffer, value.byteOffset, value.byteLength);
279
+ const payload = bytes.slice(2, 2 + payloadLength);
280
+ // Check if the message is a weight measurement
281
+ if (kind === ProgressorResponses.RESPONSE_WEIGHT_MEASUREMENT) {
282
+ if (payloadLength % 8 !== 0)
283
+ return;
284
+ const samplesPerPacket = payloadLength / 8;
285
+ this.currentSamplesPerPacket = samplesPerPacket;
286
+ this.recordPacketReceived();
287
+ for (let i = 0; i < samplesPerPacket; i++) {
288
+ const offset = 2 + i * 8;
289
+ const weight = value.getFloat32(offset, true);
290
+ const timestampUs = value.getUint32(offset + 4, true);
291
+ if (Number.isNaN(weight))
292
+ continue;
293
+ const numericData = weight - this.applyTare(weight);
294
+ const currentMassTotal = Math.max(-1000, Number(numericData));
295
+ // Update session stats before building packet
296
+ this.peak = Math.max(this.peak, Number(numericData));
297
+ this.min = Math.min(this.min, Math.max(-1000, Number(numericData)));
298
+ this.sum += currentMassTotal;
299
+ this.dataPointCount++;
300
+ this.mean = this.sum / this.dataPointCount;
301
+ this.downloadPackets.push(this.buildDownloadPacket(currentMassTotal, [weight], {
302
+ timestamp: receivedTime,
303
+ sampleIndex: timestampUs,
304
+ }));
305
+ this.activityCheck(numericData);
306
+ // Hz from device timestamps: keep only samples in last 1s
307
+ this.recentSampleTimestamps.push(timestampUs);
308
+ const latestUs = (_a = this.recentSampleTimestamps[this.recentSampleTimestamps.length - 1]) !== null && _a !== void 0 ? _a : 0;
309
+ this.recentSampleTimestamps = this.recentSampleTimestamps.filter((ts) => latestUs - ts <= ONE_SECOND_US);
310
+ const samplingRateHz = this.recentSampleTimestamps.length;
311
+ const payload = this.buildForceMeasurement(currentMassTotal);
312
+ if (payload.performance)
313
+ payload.performance.samplingRateHz = samplingRateHz;
314
+ this.notifyCallback(payload);
335
315
  }
336
316
  }
317
+ // Command response
318
+ else if (kind === ProgressorResponses.RESPONSE_COMMAND) {
319
+ if (!this.writeLast)
320
+ return;
321
+ let output = "";
322
+ if (this.writeLast === this.commands.GET_BATTERY_VOLTAGE) {
323
+ output = new DataView(payload.buffer, payload.byteOffset, payload.byteLength).getUint32(0, true).toString();
324
+ }
325
+ else if (this.writeLast === this.commands.GET_FIRMWARE_VERSION) {
326
+ output = new TextDecoder().decode(payload);
327
+ }
328
+ else if (this.writeLast === this.commands.GET_ERROR_INFORMATION) {
329
+ output = new TextDecoder().decode(payload);
330
+ }
331
+ else if (this.writeLast === this.commands.GET_PROGRESSOR_ID) {
332
+ output = parseProgressorIdPayload(payload);
333
+ }
334
+ else if (this.writeLast === this.commands.GET_CALIBRATION) {
335
+ output = parseCalibrationCurvePayload(payload);
336
+ }
337
+ else {
338
+ // Unknown command response: return raw hex
339
+ output = toHex(payload);
340
+ }
341
+ this.writeCallback(output);
342
+ }
343
+ // RFD peak response
344
+ else if (kind === ProgressorResponses.RESPONSE_RFD_PEAK) {
345
+ console.warn("⚠️ RFD peak is currently unsupported.");
346
+ }
347
+ // RFD peak series response
348
+ else if (kind === ProgressorResponses.RESPONSE_RFD_PEAK_SERIES) {
349
+ console.warn("⚠️ RFD peak series is currently unsupported.");
350
+ }
351
+ // Low power warning response
352
+ else if (kind === ProgressorResponses.RESPONSE_LOW_POWER_WARNING) {
353
+ console.warn("⚠️ Low power detected. Please consider connecting to a power source.");
354
+ }
355
+ else {
356
+ throw new Error(`Unknown message kind detected: ${kind}`);
357
+ }
337
358
  };
338
359
  /**
339
360
  * Stops the data stream on the specified device.
@@ -365,6 +386,12 @@ class Progressor extends device_model_js_1.Device {
365
386
  }
366
387
  };
367
388
  }
389
+ tare(duration = 5000) {
390
+ void duration; // Accepted for API compatibility; hardware tare ignores it
391
+ this.clearTareOffset();
392
+ void this.write("progressor", "tx", this.commands.TARE_SCALE, 0);
393
+ return true;
394
+ }
368
395
  }
369
396
  exports.Progressor = Progressor;
370
397
  //# sourceMappingURL=progressor.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progressor.model.js","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progressor.model.js","sourceRoot":"","sources":["../../../../src/models/device/progressor.model.ts"],"names":[],"mappings":"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"}
@@ -494,6 +494,12 @@ export declare abstract class Device extends BaseModel implements IDevice {
494
494
  * }
495
495
  */
496
496
  tare(duration?: number): boolean;
497
+ /**
498
+ * Clears the software tare offset and related state.
499
+ * Used by devices that implement hardware tare so applyTare does not double-adjust.
500
+ * @protected
501
+ */
502
+ protected clearTareOffset(): void;
497
503
  /**
498
504
  * Apply tare calibration to the provided sample.
499
505
  * @param {number} sample - The sample to calibrate.
@@ -1 +1 @@
1
- {"version":3,"file":"device.model.d.ts","sourceRoot":"","sources":["../../../src/models/device.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.model.d.ts","sourceRoot":"","sources":["../../../src/models/device.model.ts"],"names":[],"mappings":"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"}
@@ -863,6 +863,17 @@ class Device extends base_model_js_1.BaseModel {
863
863
  this.tareStartTime = Date.now();
864
864
  return true;
865
865
  }
866
+ /**
867
+ * Clears the software tare offset and related state.
868
+ * Used by devices that implement hardware tare so applyTare does not double-adjust.
869
+ * @protected
870
+ */
871
+ clearTareOffset() {
872
+ this.tareCurrent = 0;
873
+ this.tareActive = false;
874
+ this.tareStartTime = null;
875
+ this.tareSamples = [];
876
+ }
866
877
  /**
867
878
  * Apply tare calibration to the provided sample.
868
879
  * @param {number} sample - The sample to calibrate.