incyclist-devices 2.3.15 → 2.3.16

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.
@@ -217,10 +217,16 @@ class BleFitnessMachineDevice extends sensor_1.TBleSensor {
217
217
  const OpCode = data.readUInt8(0);
218
218
  switch (OpCode) {
219
219
  case 8:
220
- this.data.targetPower = data.readInt16LE(1);
220
+ if (data.length >= 3)
221
+ this.data.targetPower = data.readInt16LE(1);
222
+ else
223
+ this.logEvent({ message: 'warning', fn: 'parseFitnessMachineStatus()', warning: 'invalid message - message too short', data: data.toString('hex') });
221
224
  break;
222
225
  case 6:
223
- this.data.targetInclination = data.readInt16LE(1) / 10;
226
+ if (data.length >= 3)
227
+ this.data.targetInclination = data.readInt16LE(1) / 10;
228
+ else
229
+ this.logEvent({ message: 'warning', fn: 'parseFitnessMachineStatus()', warning: 'invalid message - message too short', data: data.toString('hex') });
224
230
  break;
225
231
  case 4:
226
232
  this.data.status = "STARTED";
@@ -230,7 +236,7 @@ class BleFitnessMachineDevice extends sensor_1.TBleSensor {
230
236
  this.data.status = "STOPPED";
231
237
  break;
232
238
  case 20:
233
- {
239
+ if (data.length >= 2) {
234
240
  const spinDownStatus = data.readUInt8(1);
235
241
  switch (spinDownStatus) {
236
242
  case 1:
@@ -248,10 +254,14 @@ class BleFitnessMachineDevice extends sensor_1.TBleSensor {
248
254
  default: break;
249
255
  }
250
256
  }
257
+ else {
258
+ this.logEvent({ message: 'warning', fn: 'parseFitnessMachineStatus()', warning: 'invalid message - message too short', data: data.toString('hex') });
259
+ }
260
+ break;
251
261
  }
252
262
  }
253
263
  catch (err) {
254
- this.logEvent({ message: 'error', fn: 'parseFitnessMachineStatus()', error: err.message | err, stack: err.stack });
264
+ this.logEvent({ message: 'error', fn: 'parseFitnessMachineStatus()', error: err.message, data: data.toString('hex'), stack: err.stack });
255
265
  }
256
266
  return Object.assign(Object.assign({}, this.data), { raw: `2ada:${data.toString('hex')}` });
257
267
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "incyclist-devices",
3
- "version": "2.3.15",
3
+ "version": "2.3.16",
4
4
  "dependencies": {
5
5
  "@serialport/bindings-interface": "^1.2.2",
6
6
  "@serialport/parser-byte-length": "^9.0.1",