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 +10 -0
- package/example.js +3 -1
- package/package.json +1 -1
- package/src/gv310lau.js +6 -6
- package/src/utils.js +5 -2
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(
|
|
93
|
+
const raw = new Buffer(eribad)
|
|
92
94
|
console.log(queclink.parse(raw))
|
|
93
95
|
queclink.parse(raw)
|
|
94
96
|
|
package/package.json
CHANGED
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
|
|
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,
|