queclink-parser 1.9.10 → 1.9.11

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/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ #### 1.9.11 (2024-10-09)
2
+
3
+ ##### New Features
4
+
5
+ * **can:** added units of measurement ([7ff59418](https://github.com/jaayesta/queclink-parser/commit/7ff594187491dcaf8c5f2aa690218363ebbba2c6))
6
+
7
+ ##### Bug Fixes
8
+
9
+ * **can:** fix index error for externalData in ERI ([f71b874c](https://github.com/jaayesta/queclink-parser/commit/f71b874cd0c2ead80d9cdeae5be3c5408fb6c99b))
10
+
1
11
  #### 1.9.10 (2024-10-08)
2
12
 
3
13
  ##### New Features
package/example.js CHANGED
@@ -57,6 +57,8 @@ var cra = '+RESP:GTCRA,8020060402,867488060596284,GV57CG,06,1,1.0,0,222.0,117.12
57
57
  var asc = '+RESP:GTASC,8020060402,867488060595542,GV57CG,0.86,0.52,0.01,0.52,-0.86,0.01,0.01,0.00,-1.00,1,12.6,267,39.7,117.115453,31.827255,20230523055431,0460,0001,DF5C,05F7B315,01,10,20230523135432,03BC$'
58
58
  var hbe = '+RESP:GTHBE,8020060402,866775051515393,GV57CG,,2,0,1,42.5,0,42.6,117.101321,31.827725,20231221034214,0460,0001,DF5C,05F7B40B,01,1,002500040054,FFE2FFFF0051,10,19.8,20231221034215,006B$'
59
59
  var caneri = '+RESP:GTERI,6E0802,868589060350066,,00000104,28696,10,1,1,0.0,344,17.6,-71.604231,-33.043113,20241001170305,0730,0001,13F0,004E2212,01,6 ,10496.6,0000273:06:37,,,,98,210500,0,1,203FFFFF,,2,H4168131,5859.88,513,0,71,H2.4,P92.00,,,386.89,308.11,78.78,173.25,,FFFF,0000,,00,0.00,0.00,FFFFFF,62,,,,,,,,226631,181383,,386.89,79.35,,10178,,,,,,0000,0,0,,1,00,13,0,00000000,4007,,78054133C69C,1,0,20241001170312,26B5$'
60
+ var eribad = "+RESP:GTERI,6E0802,868589060669374,,00000002,28594,10,1,1,18.9,210,542.2,-70.693347,-33.537067,20241009121749,0730,0001,3341,008AF201,01,12,6.9,0000004:57:46,,,,100,220100,2,1,28FF05762863EA12,1,00B1,20241009121755,09BE$"
61
+
60
62
 
61
63
  var data = {
62
64
  "imei": 864696060046190,
@@ -88,7 +90,7 @@ var data = {
88
90
  }
89
91
 
90
92
  // console.log(queclink.parseCommand(data))
91
- const raw = new Buffer(caneri)
93
+ const raw = new Buffer(eribad)
92
94
  console.log(queclink.parse(raw))
93
95
  queclink.parse(raw)
94
96
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "queclink-parser",
3
- "version": "1.9.10",
3
+ "version": "1.9.11",
4
4
  "description": "Parse raw data from Queclink devices",
5
5
  "main": "src",
6
6
  "scripts": {
package/src/gv310lau.js CHANGED
@@ -242,12 +242,6 @@ const parse = raw => {
242
242
  const bluetoothAccessory =
243
243
  utils.nHexDigit(utils.hex2bin(parsedData[4]), 11)[2] === '1'
244
244
 
245
- const fuelSensorData = digitFuelSensor ? parsedData[index + 9] : null
246
- const ac100DevicesConnected =
247
- AC100 && digitFuelSensor
248
- ? parseInt(parsedData[index + 10], 10)
249
- : AC100 && !digitFuelSensor ? parseInt(parsedData[index + 9], 10) : 0
250
-
251
245
  // If get satellites is configured
252
246
  if (utils.includeSatellites(parsedData[19])) {
253
247
  index = 7 + 13 * number
@@ -370,6 +364,12 @@ const parse = raw => {
370
364
  : null,
371
365
  })
372
366
 
367
+ const fuelSensorData = digitFuelSensor ? parsedData[index + 9] : null
368
+ const ac100DevicesConnected =
369
+ AC100 && digitFuelSensor
370
+ ? parseInt(parsedData[index + 10], 10)
371
+ : AC100 && !digitFuelSensor ? parseInt(parsedData[index + 9], 10) : 0
372
+
373
373
  if (canData) {
374
374
  let canInfo = utils.getCanData(parsedData, index + 9)
375
375
  data = Object.assign(data, { can: canInfo })
package/src/utils.js CHANGED
@@ -601,7 +601,7 @@ const parseCanData = (data, key) => {
601
601
  case 'ignitionKey':
602
602
  return (data === '0' ? 'ignition_off' : data === '1' ? 'ignition_on' : data === '2' ? 'engine_on' : null)
603
603
  case 'totalDistance':
604
- if (data[0] === 'H') {
604
+ if (data.slice(0,1) === 'H') {
605
605
  return hToKm(data)
606
606
  } else {
607
607
  return data
@@ -666,13 +666,15 @@ const getCanData = (parsedData, ix) => {
666
666
  vin: parsedData[ix + 2] !== '' ? parsedData[ix + 2] : null,
667
667
  ignitionKey: parsedData[ix + 3] !== '' ? parseCanData(parsedData[ix + 3], 'ignitionKey') : null,
668
668
  totalDistance: parsedData[ix + 4] !== '' ? parseCanData(parsedData[ix + 4], 'totalDistance') : null,
669
+ totalDistanceUnit: parsedData[ix + 4] ? parsedData[ix + 4].slice(0,1) === 'H' ? 'Km' : 'I' : null,
669
670
  fuelUsed: parsedData[ix + 5] !== '' ? parseFloat(parsedData[ix + 5]) : null, // float
670
671
  rpm: parsedData[ix + 6] !== '' ? parseInt(parsedData[ix + 6], 10) : null, // int
671
672
  speed: parsedData[ix + 7] !== '' ? parseFloat(parsedData[ix + 7]) : null,
672
673
  engineCoolantTemp:
673
674
  parsedData[ix + 8] !== '' ? parseInt(parsedData[ix + 8], 10) : null,
674
675
  fuelConsumption: parsedData[ix + 9] !== '' ? parseCanData(parsedData[ix + 9], 'fuelConsumption') : null,
675
- fuelLevel: parsedData[ix + 10] !== '' ? parsedData[ix + 10] : null,
676
+ fuelLevel: parsedData[ix + 10] !== '' ? parseFloat(parsedData[ix + 10].slice(1)) : null,
677
+ fuelLevelUnit: parsedData[ix + 10] ? parsedData[ix + 10].slice(0,1) === 'P' ? '%' : 'L' : null,
676
678
  range: parsedData[ix + 11] !== '' ? parseCanData(parsedData[ix + 11], 'range') : null,
677
679
  acceleratorPressure:
678
680
  parsedData[ix + 12] !== '' ? parseFloat(parsedData[ix + 12]) : null,
@@ -796,6 +798,7 @@ const getCanData = (parsedData, ix) => {
796
798
  },
797
799
  adBlueLevel:
798
800
  parsedData[ix + 25] !== '' ? parseFloat(parsedData[ix + 25]) : null,
801
+ // adBlueLevelUnit: parsedData[ix + 25] ? parsedData[ix + 25].slice(0,1) === 'P' ? '%' : 'L' : null,
799
802
  axleWeight1: parsedData[ix + 26] !== '' ? parseInt(parsedData[ix + 26]) : null,
800
803
  axleWeight3: parsedData[ix + 27] !== '' ? parseInt(parsedData[ix + 27]) : null,
801
804
  axleWeight4: parsedData[ix + 28] !== '' ? parseInt(parsedData[ix + 28]) : null,