queclink-parser 1.9.12 → 1.9.13
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 +20 -0
- package/example.js +88 -81
- package/package.json +1 -1
- package/src/gv310lau.js +79 -30
- package/src/gv58lau.js +818 -1049
- package/src/index.js +3 -1
- package/src/messages/es.json +1 -0
- package/src/utils.js +25 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
#### 1.9.13 (2024-11-27)
|
|
2
|
+
|
|
3
|
+
##### New Features
|
|
4
|
+
|
|
5
|
+
* **dos:** se agrega comando para salidas digitales GV58LAU y GV57CG ([d0cf801b](https://github.com/jaayesta/queclink-parser/commit/d0cf801bd0bdc90da29c94d7341b72249b0d006d))
|
|
6
|
+
* **gv310lau:** se agrega Hdop, Vdop y Ddop ([23fa674c](https://github.com/jaayesta/queclink-parser/commit/23fa674c1c6cb41a9f6bc978d69ec58a7e5b3a83))
|
|
7
|
+
|
|
8
|
+
##### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **options:**
|
|
11
|
+
* se incluye llamada a nuevos verificadores de <position append mask> ([c9277a89](https://github.com/jaayesta/queclink-parser/commit/c9277a89e9bcb8aa87315d4a70310a088d1da6a1))
|
|
12
|
+
* se modifica la lógica para <position append mask> ([2e493c2a](https://github.com/jaayesta/queclink-parser/commit/2e493c2a0b21a971027fa44a4f94dbea5e733795))
|
|
13
|
+
* **canbus:** medida de adblueLevel ([ae0e6c4b](https://github.com/jaayesta/queclink-parser/commit/ae0e6c4bbfada75f30eb87cad7b9b68335c0a6aa))
|
|
14
|
+
* **mcc:** se agrega default ([346ddbd4](https://github.com/jaayesta/queclink-parser/commit/346ddbd4a9a42e53aae7a7ee30564d4be1fd42da))
|
|
15
|
+
* **input:** cambio de indice binario. ([b10bc367](https://github.com/jaayesta/queclink-parser/commit/b10bc367987af77c5fed2e1c0b51c7832dba0901))
|
|
16
|
+
|
|
17
|
+
##### Tests
|
|
18
|
+
|
|
19
|
+
* **gv58lau:** pruebas ([1ad0a8c0](https://github.com/jaayesta/queclink-parser/commit/1ad0a8c04e3c6297eae8840f58992e375310cb9b))
|
|
20
|
+
|
|
1
21
|
#### 1.9.12 (2024-10-14)
|
|
2
22
|
|
|
3
23
|
##### New Features
|
package/example.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
const queclink = require('.');
|
|
2
2
|
|
|
3
|
-
var tow = '+RESP:GTTOW,
|
|
4
|
-
var dis = '+RESP:GTDIS,
|
|
3
|
+
var tow = '+RESP:GTTOW,8020040703,866314060000229,GV58LAU,,00,1,1,0.0,0,136.4,117.129290,31.840318,20231207085329,0460,0000,550B,085BE2AA,01,10,0.0,20231207085330,006A$'
|
|
4
|
+
var dis = '+RESP:GTDIS,8020040703,866314060000229,GV58LAU,,10,1,1,0.0,0,119.1,117.129559,31.839368,20231207085255,0460,0000,550B,085BE2AA,01,11,0.0,20231207085256,0068$'
|
|
5
5
|
var iob = '+RESP:GTIOB,8020060402,867488060596284,GV57CG,,10,1,1,0.0,182,85.3,117.129200,31.839163,20230523025618,0460,0001,DF5C,05FE6667,01,6,0.4,20230522192619,0218$'
|
|
6
|
-
var spd = '+RESP:GTSPD,
|
|
7
|
-
var sos = '+RESP:GTSOS,
|
|
6
|
+
var spd = '+RESP:GTSPD,8020040703,866314060000229,GV58LAU,,01,1,2,0.0,0,171.2,117.130121,31.838945,20231207085516,0460,0000,550B,085BE2AA,01,11,0.0,20231207085517,0078$'
|
|
7
|
+
var sos = '+RESP:GTSOS,8020040703,866314060000229,GV58LAU,,10,1,1,0.0,0,87.8,117.129751,31.838892,20231207085541,0460,0000,550B,085BE2AA,01,11,0.0,20231207085542,007A$'
|
|
8
8
|
var rtl = '+RESP:GTRTL,8020060402,867488060596284,GV57CG,,00,1,2,263.8,351,67.3,117.129029,31.840100,20230524034844,0460,0001,DF5C,05FE6667,01,6,0.0,20230524034845,01C8$'
|
|
9
9
|
var dog = '+RESP:GTDOG,8020060402,867488060596284,GV57CG,,63,1,2,0.0,171,104.6,117.129097,31.839252,20230524035637,0460,0001,DF5C,05FE6667,01,10,0.3,20230524035638,01E5$'
|
|
10
10
|
var igl = '+RESP:GTIGL,8020060402,867488060596284,GV57CG,,01,1,1,0.0,0,48.6,117.129292,31.839412,20230524035846,0460,0001,DF5C,05FE6667,01,10,0.4,20230524035847,0201$'
|
|
11
11
|
var vgl = '+RESP:GTVGL,8020060402,867488060596284,GV57CG,,50,1,1,0.0,0,81.6,117.129297,31.839118,20230519072153,0460,0001,DF5C,05FE6667,01,1,0.7,20230519072154,03B9$'
|
|
12
12
|
var hbm = '+RESP:GTHBM,8020060402,866775051515393,GV57CG,,01,1,1,20.9,266,49.8,117.104300,31.822967,20231221034050,0460,0001,DF5C,05A3F70B,01,1,19.0,20231221034051,005D$'
|
|
13
|
-
var fri = '+RESP:GTFRI,
|
|
13
|
+
var fri = '+RESP:GTFRI,8020040703,864696060004173,GV58LAU,11985,10,1,1,0.0,0,118.5,117.129306,31.839197,20230808033438,0460,0001,DF5C,05FE6667,03,15,0,123.5,00123:04:44,,,,100,210000,,,,20230808033438,01B3$'
|
|
14
14
|
var eri = '+RESP:GTERI,8020060402,867488060672911,GV57CG,00008000,11975,10,1,1,0.0,0,119.9,117.129559,31.839319,20231207025940,0460,0000,550B,085BE2AA,03,6,0,11.5,,0,,,100,210300,,4,8,20231207025940,5686$'
|
|
15
15
|
var esp = '+RESP:GTEPS,8020060402,135790246811220,GV57CG,13500,00,1,1,4.3,92,70.0,121.354335,31.222073,20090214013254,0460,0000,18d8,6141,01,15,2000.0,20090214093254,11F0$'
|
|
16
16
|
var ais = '+RESP:GTAIS,8020060402,135790246811220,GV57CG,1980,11,1,1,4.3,92,70.0,121.354335,31.222073,20090214013254,0460,0000,18d8,6141,01,15,2000.0,20090214093254,11F0$'
|
|
@@ -30,34 +30,42 @@ var scs = '+RESP:GTSCS,8020060402,865585040006649,GV57CG,2,-0.06,0.88,-0.48,-0.9
|
|
|
30
30
|
var pna = '+RESP:GTPNA,8020060402,135790246811220,GV57CG,20230524052727,11F0$'
|
|
31
31
|
var pfa = '+RESP:GTPFA,8020060402,135790246811220,GV57CG,20230524052727,11F0$'
|
|
32
32
|
var pdp = '+RESP:GTPDP,8020060402,135790246811220,GV57CG,20230524052727,11F0$'
|
|
33
|
-
var mpn = '+RESP:GTMPN,
|
|
33
|
+
var mpn = '+RESP:GTMPN,8020040703,135790246811220,GV58LAU,0,4.3,92,70.0,121.354335,31.222073,20230214013254,0460,0000,18d8,6141,05,1,220100,20230214093254,11F0$'
|
|
34
34
|
var mpf = '+RESP:GTMPF,8020060402,867488060596284,GV57CG,1,0.8,0,75.4,117.129447,31.839062,20230524052829,0460,0001,DF5C,05FE6667,01,15,20230524052831,02BF$'
|
|
35
35
|
var btc = '+RESP:GTBTC,8020060402,867488060596284,GV57CG,1,0.0,0,48.8,117.129191,31.839340,20230524051506,0460,0001,DF5C,05FE6667,01,13,20230524051507,0277$'
|
|
36
36
|
var drm = '+RESP:GTDRM,8020060402,867488060596284,GV57CG,1,0.2,0,98.3,117.129404,31.839095,20230524052844,0460,0001,DF5C,05FE6667,01,15,20230524052846,02C3$'
|
|
37
37
|
var jdr = '+RESP:GTJDR,8020060402,867488060596250,GV57CG,2,0,0.0,0,29.7,117.129806,31.838006,20230412075358,0460,0000,691D,6141,01,7,20230412075457,0214$'
|
|
38
|
-
var jds = '+RESP:GTJDS,
|
|
38
|
+
var jds = '+RESP:GTJDS,8020040703,135790246811220,GV58LAU,1,3,0,4.3,92,70.0,121.354335,31.222073,20230214013254,0460,0000,18d8,6141,0D,1,220100,0.00,1.00,2.00,20230214093254,11F0$'
|
|
39
39
|
var stc = '+RESP:GTSTC,8020060402,867488060596284,GV57CG,,3,0.0,0,112.7,117.129268,31.838801,20230524023737,0460,0001,DF5C,027A4F1F,01,9,20230523190737,0131$'
|
|
40
40
|
var bpl = '+RESP:GTBPL,8020060402,867488060596722,GV57CG,3.63,4,2.3,0,54.8,117.128785,31.839313,20230522052652,0460,0001,DF5C,027A4F1F,01,1,20230522052654,413B$'
|
|
41
|
-
var stt = '+RESP:GTSTT,
|
|
42
|
-
var ign = '+RESP:GTIGN,
|
|
41
|
+
var stt = '+RESP:GTSTT,8020040703,135790246811220,GV58LAU,16,0,4.3,92,70.0,121.354335,31.222073,20230214013254,0460,0000,18d8,6141,05,1,220100,20230214093254,11F0$'
|
|
42
|
+
var ign = '+RESP:GTIGN,8020040703,135790246811220,GV58LAU,1200,0,4.3,92,70.0,121.354335,31.222073,20230214013254,0460,0000,18d8,6141,05,1,220100,12345:12:34,2000.0,20230214093254,11F0$'
|
|
43
43
|
var vgn = '+RESP:GTVGN,8020060402,867488060595385,GV57CG,00,5,14653,4,2.1,0,38.1,117.129642,31.838044,20230524051923,0460,0000,550B,B7B1,01,3,12345:12:34,0.0,20230524051924,002E$'
|
|
44
44
|
var igf = '+RESP:GTIGF,8020060402,867488060596284,GV57CG,418,1,0.0,0,85.4,117.129377,31.839155,20230524053545,0460,0001,DF5C,05FE6667,01,15,00012:25:35,0.2,20230524053547,02DA$'
|
|
45
45
|
var vgf = '+RESP:GTVGF,8020060402,867488060595385,GV57CG,00,5,10127,3,1.1,0,75.8,117.129668,31.838718,20230524052215,0460,0000,550B,B7B1,01,11,12345:12:34,0.0,20230524052216,0034$'
|
|
46
|
-
var idf = '+RESP:GTIDF,
|
|
47
|
-
var gss = '+RESP:GTGSS,
|
|
46
|
+
var idf = '+RESP:GTIDF,8020040703,135790246811220,GV58LAU,22,300,0,4.3,92,70.0,121.354335,31.222073,20230214013254,0460,0000,18d8,6141,05,1,220100,2000.0,20230214093254,11F0$'
|
|
47
|
+
var gss = '+RESP:GTGSS,8020040703,135790246811220,GV58LAU,1,9,11,,0,4.3,92,70.0,121.354335,31.222073,20230214013254,0460,0000,18d8,6141,05,1,220100,20230214093254,11F0$'
|
|
48
48
|
var str = '+RESP:GTSTR,8020060402,867488060596284,GV57CG,,,1,1.8,0,81.2,117.129328,31.839300,20230524053825,0460,0001,DF5C,05FE6667,01,15,0.0,20230524053827,02F9$'
|
|
49
49
|
var stp = '+RESP:GTSTP,8020060402,867488060596284,GV57CG,,,1,0.0,0,90.4,117.129304,31.839352,20230524053856,0460,0001,DF5C,05FE6667,01,15,0.0,20230524053856,02FB$'
|
|
50
50
|
var lsp = '+RESP:GTLSP,8020060402,867488060596284,GV57CG,,,1,0.0,0,86.2,117.129261,31.839339,20230524054055,0460,0001,DF5C,05FE6667,01,15,0.0,20230524054056,0306$'
|
|
51
|
-
var idn = '+RESP:GTIDN,
|
|
52
|
-
var dos = '+RESP:GTDOS,
|
|
51
|
+
var idn = '+RESP:GTIDN,8020040703,865084030960726,GV58LAU,,,0,0.0,0,66.6,117.129012,31.839195,20190411035336,0460,0000,550B,B969,05,1,220100,0.0,20190411115338,03F3$'
|
|
52
|
+
var dos = '+RESP:GTDOS,8020040703,867488060673364,GV58LAU,1,2,1,0.0,0,99.8,117.129228,31.839323,20230616080921,0460,0001,DF5C,05FE6667,05,1,220100,20230616080922,40CE$'
|
|
53
53
|
var rmd = '+RESP:GTRMD,8020060402,867488060596284,GV57CG,3,0,2.0,0,180.6,117.129144,31.838861,20230524032220,0460,0001,DF5C,027A4F1F,01,7,20230524032224,017D$'
|
|
54
54
|
var pnr = '+RESP:GTPNR,8020060402,863835020303983,GV57CG,0,,,,,20150407094557,0633$'
|
|
55
55
|
var pfr = '+RESP:GTPFR,8020060402,863835020303983,GV57CG,0,,,,,20150407094557,0633$'
|
|
56
56
|
var cra = '+RESP:GTCRA,8020060402,867488060596284,GV57CG,06,1,1.0,0,222.0,117.129815,31.839434,20230523062909,0460,0001,DF5C,027A4F1F,01,3,20230523160010,0B67$'
|
|
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
|
+
var dat = '+RESP:GTDAT,8020040703,135790246811220,GV58LAU,3,,,1645026150,0,0.5,0,29.4,121.390923,31.164295,20111222022935,0460,0000,1806,2142,01,1,,,,,20111222022938,001A$'
|
|
60
|
+
var bcs = '+RESP:GTBCS,8020040703,867995030096625,GV58LAU,,0,0.0,0,58.4,117.129522,31.839343,20190426054910,0460,0000,550B,B969,05,1,220100,0D03,BT-1,78054100CE22,0,1,6654B1767842,,,,,20190426054911,0B44$'
|
|
61
|
+
var can = '+RESP:GTCAN,8020040703,866314061482707,,10,0,E03FFFFF,,,H0,,,,,,,,,,,,,,,,,,,,FFFFFF,,,,,,,,,,,,,,,,,,,,,,,,,,,1,0.0,0,1501.0,-99.192304,18.932028,20241122171647,0334,0020,0232,029C3E18,01,12,20241122171648,06CD$'
|
|
62
|
+
var ida = '+RESP:GTIDA,8020040703,862170013895931,GV58LAU,,D2C4FBC5,1,1,1,0.8,0,22.2,117.198630,31.845229,20120802121626,0460,0000,5663,2BB9,01,15,0.0,,,,,20120802121627,008E$'
|
|
63
|
+
var baa = '+RESP:GTBAA,8020040703,867995030131778,GV58LAU,00,6,0,00,001F,TD_100109,FD6D3DE6D704,1,350,17,0,0,0,0,20151210084039,0.00,00,0,0,0,2,0,FFFE0005FF04,5A5A00,00,000A,000B,000A,000A,000B,0,105.6,0,54.8,117.129384,31.839299,20191119013822,0460,0000,550B,B1E2,05,1,220100,20191119013823,03F8$'
|
|
64
|
+
var baaa = '+RESP:GTBAA,8020040703,866314061808901,,00,13,0,15,4007,,FFFFFFFFFFFF,0,1,0,0,,,,,,,0730,0003,EA6F,00070B20,0D,0,220100,0.00,0.00,0.00,20241124061933,4BAF$'
|
|
59
65
|
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
66
|
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$"
|
|
67
|
+
var test = "+RESP:GTSOS,8020040703,866314061808901,,,10,1,0,,,,,,,0730,0003,EA6F,00070B0C,09,6,0.00,2.00,0.00,4.9,20241121064349,080F$"
|
|
68
|
+
|
|
61
69
|
|
|
62
70
|
|
|
63
71
|
var data = {
|
|
@@ -66,7 +74,7 @@ var data = {
|
|
|
66
74
|
"instruction": "1_on",
|
|
67
75
|
"action": "Cortar Corriente",
|
|
68
76
|
"device": "queclink",
|
|
69
|
-
"password": "
|
|
77
|
+
"password": "gv58lau",
|
|
70
78
|
"device_serie": "GV",
|
|
71
79
|
"previousOutput": {
|
|
72
80
|
"1": false,
|
|
@@ -90,73 +98,72 @@ var data = {
|
|
|
90
98
|
}
|
|
91
99
|
|
|
92
100
|
// console.log(queclink.parseCommand(data))
|
|
93
|
-
const raw = new Buffer(
|
|
94
|
-
|
|
95
|
-
|
|
101
|
+
const raw = new Buffer(baaa)
|
|
102
|
+
console.log(JSON.stringify(queclink.parse(raw), null, 2))
|
|
103
|
+
queclink.parse(raw)
|
|
96
104
|
|
|
97
|
-
data = queclink.parse(raw)
|
|
98
|
-
// console.log(data)
|
|
99
|
-
if (data.can) {
|
|
100
|
-
const {
|
|
101
|
-
comunicationOk,
|
|
102
|
-
vin,
|
|
103
|
-
ignitionKey,
|
|
104
|
-
totalDistance,
|
|
105
|
-
totalDistanceUnit,
|
|
106
|
-
rpm,
|
|
107
|
-
speed,
|
|
108
|
-
engineCoolantTemp,
|
|
109
|
-
fuelConsumption,
|
|
110
|
-
fuelLevel,
|
|
111
|
-
fuelLevelUnit,
|
|
112
|
-
range,
|
|
113
|
-
acceleratorPressure,
|
|
114
|
-
engineHours,
|
|
115
|
-
drivingTime,
|
|
116
|
-
idleTime,
|
|
117
|
-
idleFuelUsed,
|
|
118
|
-
axleWeight,
|
|
119
|
-
tachograph,
|
|
120
|
-
indicators,
|
|
121
|
-
lights,
|
|
122
|
-
doors,
|
|
123
|
-
overSpeedTime,
|
|
124
|
-
overSpeedEngineTime
|
|
125
|
-
} = data.can
|
|
126
105
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
106
|
+
// if (data.can) {
|
|
107
|
+
// const {
|
|
108
|
+
// comunicationOk,
|
|
109
|
+
// vin,
|
|
110
|
+
// ignitionKey,
|
|
111
|
+
// totalDistance,
|
|
112
|
+
// totalDistanceUnit,
|
|
113
|
+
// rpm,
|
|
114
|
+
// speed,
|
|
115
|
+
// engineCoolantTemp,
|
|
116
|
+
// fuelConsumption,
|
|
117
|
+
// fuelLevel,
|
|
118
|
+
// fuelLevelUnit,
|
|
119
|
+
// range,
|
|
120
|
+
// acceleratorPressure,
|
|
121
|
+
// engineHours,
|
|
122
|
+
// drivingTime,
|
|
123
|
+
// idleTime,
|
|
124
|
+
// idleFuelUsed,
|
|
125
|
+
// axleWeight,
|
|
126
|
+
// tachograph,
|
|
127
|
+
// indicators,
|
|
128
|
+
// lights,
|
|
129
|
+
// doors,
|
|
130
|
+
// overSpeedTime,
|
|
131
|
+
// overSpeedEngineTime
|
|
132
|
+
// } = data.can
|
|
133
|
+
|
|
134
|
+
// const canData = {
|
|
135
|
+
// raw: data.raw,
|
|
136
|
+
// imei: data.imei,
|
|
137
|
+
// datetime: data.datetime,
|
|
138
|
+
// point: data.point,
|
|
139
|
+
// comunicationOk,
|
|
140
|
+
// vin,
|
|
141
|
+
// ignitionKey,
|
|
142
|
+
// totalDistance,
|
|
143
|
+
// totalDistanceUnit,
|
|
144
|
+
// rpm,
|
|
145
|
+
// speed,
|
|
146
|
+
// engineCoolantTemp,
|
|
147
|
+
// fuelConsumption,
|
|
148
|
+
// fuelLevel,
|
|
149
|
+
// fuelLevelUnit,
|
|
150
|
+
// range,
|
|
151
|
+
// acceleratorPressure,
|
|
152
|
+
// engineHours,
|
|
153
|
+
// drivingTime,
|
|
154
|
+
// idleTime,
|
|
155
|
+
// idleFuelUsed,
|
|
156
|
+
// axleWeight,
|
|
157
|
+
// tachograph,
|
|
158
|
+
// indicators,
|
|
159
|
+
// lights,
|
|
160
|
+
// doors,
|
|
161
|
+
// overSpeedTime,
|
|
162
|
+
// overSpeedEngineTime,
|
|
163
|
+
// ...data.can.canExpanded
|
|
164
|
+
// }
|
|
158
165
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
166
|
+
// canData.canReportExpansionMask = canData.canReportExpansionMask.raw
|
|
167
|
+
// console.log(canData)
|
|
168
|
+
// delete data.can
|
|
169
|
+
// }
|
package/package.json
CHANGED
package/src/gv310lau.js
CHANGED
|
@@ -32,14 +32,9 @@ const parse = raw => {
|
|
|
32
32
|
if (command[1] === 'GTFRI') {
|
|
33
33
|
try {
|
|
34
34
|
let number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
|
|
35
|
-
let
|
|
36
|
-
let
|
|
37
|
-
|
|
38
|
-
// If get satellites is configured
|
|
39
|
-
if (utils.includeSatellites(parsedData[18])) {
|
|
40
|
-
index = 6 + 13 * number
|
|
41
|
-
satelliteInfo = true
|
|
42
|
-
}
|
|
35
|
+
let satelliteInfo = utils.includeSatellites(parsedData[18])
|
|
36
|
+
let accuracyInfo = utils.includeGnnsAccuracy(parsedData[18]) ? 3 : 0
|
|
37
|
+
let index = 6 + (12 + satelliteInfo + accuracyInfo) * number
|
|
43
38
|
|
|
44
39
|
data = Object.assign(data, {
|
|
45
40
|
alarm: utils.getAlarm(command[1], null),
|
|
@@ -146,8 +141,20 @@ const parse = raw => {
|
|
|
146
141
|
lac: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
|
|
147
142
|
cid: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
|
|
148
143
|
satellites:
|
|
149
|
-
satelliteInfo && parsedData[index] !== ''
|
|
150
|
-
? parseInt(parsedData[index], 10)
|
|
144
|
+
satelliteInfo && parsedData[index - (satelliteInfo + accuracyInfo) + 1] !== ''
|
|
145
|
+
? parseInt(parsedData[index - (satelliteInfo + accuracyInfo) + 1], 10)
|
|
146
|
+
: null,
|
|
147
|
+
Hdop:
|
|
148
|
+
accuracyInfo && parsedData[index - accuracyInfo + 1] !== ''
|
|
149
|
+
? parseFloat(parsedData[index - accuracyInfo + 1])
|
|
150
|
+
: null,
|
|
151
|
+
Vdop:
|
|
152
|
+
accuracyInfo && parsedData[index - accuracyInfo + 2] !== ''
|
|
153
|
+
? parseFloat(parsedData[index - accuracyInfo + 2])
|
|
154
|
+
: null,
|
|
155
|
+
Ddop:
|
|
156
|
+
accuracyInfo && parsedData[index] !== ''
|
|
157
|
+
? parseFloat(parsedData[index])
|
|
151
158
|
: null,
|
|
152
159
|
odometer:
|
|
153
160
|
parsedData[index + 1] !== ''
|
|
@@ -163,7 +170,7 @@ const parse = raw => {
|
|
|
163
170
|
if (number > 1) {
|
|
164
171
|
let moreData = []
|
|
165
172
|
for (let i = 1; i < number; i++) {
|
|
166
|
-
let gnssIx =
|
|
173
|
+
let gnssIx = 7 + (12 + satelliteInfo + accuracyInfo) * i
|
|
167
174
|
moreData.push({
|
|
168
175
|
index: i,
|
|
169
176
|
loc: {
|
|
@@ -214,6 +221,18 @@ const parse = raw => {
|
|
|
214
221
|
satellites:
|
|
215
222
|
satelliteInfo && parsedData[gnssIx + 12] !== ''
|
|
216
223
|
? parseInt(parsedData[gnssIx + 12], 10)
|
|
224
|
+
: null,
|
|
225
|
+
Hdop:
|
|
226
|
+
accuracyInfo && parsedData[gnssIx + 13] !== ''
|
|
227
|
+
? parseFloat(parsedData[gnssIx + 13], 10)
|
|
228
|
+
: null,
|
|
229
|
+
Vdop:
|
|
230
|
+
accuracyInfo && parsedData[gnssIx + 14] !== ''
|
|
231
|
+
? parseFloat(parsedData[gnssIx + 14], 10)
|
|
232
|
+
: null,
|
|
233
|
+
Ddop:
|
|
234
|
+
accuracyInfo && parsedData[gnssIx + 15] !== ''
|
|
235
|
+
? parseFloat(parsedData[gnssIx + 15], 10)
|
|
217
236
|
: null
|
|
218
237
|
})
|
|
219
238
|
}
|
|
@@ -226,14 +245,9 @@ const parse = raw => {
|
|
|
226
245
|
} else if (command[1] === 'GTERI') {
|
|
227
246
|
// GPS with AC100 and/or Bluetoth Devices Connected
|
|
228
247
|
let number = parsedData[7] !== '' ? parseInt(parsedData[7], 10) : 1
|
|
229
|
-
let
|
|
230
|
-
let
|
|
231
|
-
|
|
232
|
-
// If get satellites is configured
|
|
233
|
-
if (utils.includeSatellites(parsedData[19])) {
|
|
234
|
-
index = 7 + 13 * number
|
|
235
|
-
satelliteInfo = true
|
|
236
|
-
}
|
|
248
|
+
let satelliteInfo = utils.includeSatellites(parsedData[19])
|
|
249
|
+
let accuracyInfo = utils.includeGnnsAccuracy(parsedData[19]) ? 3 : 0
|
|
250
|
+
let index = 7 + (12 + satelliteInfo + accuracyInfo) * number
|
|
237
251
|
|
|
238
252
|
// External Data
|
|
239
253
|
const digitFuelSensor =
|
|
@@ -353,7 +367,19 @@ const parse = raw => {
|
|
|
353
367
|
lac: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
|
|
354
368
|
cid: parsedData[18] !== '' ? parseInt(parsedData[18], 16) : null,
|
|
355
369
|
satellites:
|
|
356
|
-
satelliteInfo && parsedData[index] !== ''
|
|
370
|
+
satelliteInfo && parsedData[index - (satelliteInfo + accuracyInfo) + 1] !== ''
|
|
371
|
+
? parseInt(parsedData[index - (satelliteInfo + accuracyInfo) + 1])
|
|
372
|
+
: null,
|
|
373
|
+
Hdop:
|
|
374
|
+
accuracyInfo && parsedData[index - accuracyInfo + 1] !== ''
|
|
375
|
+
? parseFloat(parsedData[index - accuracyInfo + 1])
|
|
376
|
+
: null,
|
|
377
|
+
Vdop:
|
|
378
|
+
accuracyInfo && parsedData[index - accuracyInfo + 2] !== ''
|
|
379
|
+
? parseFloat(parsedData[index - accuracyInfo + 2])
|
|
380
|
+
: null,
|
|
381
|
+
Ddop:
|
|
382
|
+
accuracyInfo && parsedData[index] !== ''
|
|
357
383
|
? parseFloat(parsedData[index])
|
|
358
384
|
: null,
|
|
359
385
|
odometer:
|
|
@@ -672,7 +698,7 @@ const parse = raw => {
|
|
|
672
698
|
if (number > 1) {
|
|
673
699
|
let moreData = []
|
|
674
700
|
for (let i = 1; i < number; i++) {
|
|
675
|
-
let gnssIx =
|
|
701
|
+
let gnssIx = 8 + (12 + satelliteInfo + accuracyInfo) * i
|
|
676
702
|
moreData.push({
|
|
677
703
|
index: i,
|
|
678
704
|
loc: {
|
|
@@ -723,6 +749,18 @@ const parse = raw => {
|
|
|
723
749
|
satellites:
|
|
724
750
|
satelliteInfo && parsedData[gnssIx + 12] !== ''
|
|
725
751
|
? parseInt(parsedData[gnssIx + 12], 10)
|
|
752
|
+
: null,
|
|
753
|
+
Hdop:
|
|
754
|
+
accuracyInfo && parsedData[gnssIx + 13] !== ''
|
|
755
|
+
? parseFloat(parsedData[gnssIx + 13], 10)
|
|
756
|
+
: null,
|
|
757
|
+
Vdop:
|
|
758
|
+
accuracyInfo && parsedData[gnssIx + 14] !== ''
|
|
759
|
+
? parseFloat(parsedData[gnssIx + 14], 10)
|
|
760
|
+
: null,
|
|
761
|
+
Ddop:
|
|
762
|
+
accuracyInfo && parsedData[gnssIx + 15] !== ''
|
|
763
|
+
? parseFloat(parsedData[gnssIx + 15], 10)
|
|
726
764
|
: null
|
|
727
765
|
})
|
|
728
766
|
}
|
|
@@ -815,14 +853,13 @@ const parse = raw => {
|
|
|
815
853
|
) {
|
|
816
854
|
// Common Alarms
|
|
817
855
|
let number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
|
|
818
|
-
let
|
|
819
|
-
|
|
856
|
+
let posAppendMask = parsedData[18] ? utils
|
|
857
|
+
.nHexDigit(utils.hex2bin(parsedData[18]), 8) : null
|
|
820
858
|
|
|
821
859
|
// If get satellites is configured
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
}
|
|
860
|
+
let satelliteInfo = posAppendMask && posAppendMask[7] === '1' ? 1 : 0
|
|
861
|
+
let accuracyInfo = posAppendMask && posAppendMask[4] === '1' ? 3 : 0
|
|
862
|
+
let index = 6 + (12 + satelliteInfo + accuracyInfo) * number
|
|
826
863
|
|
|
827
864
|
data = Object.assign(data, {
|
|
828
865
|
alarm: utils.getAlarm(command[1], parsedData[5], 'gv310lau'),
|
|
@@ -852,8 +889,20 @@ const parse = raw => {
|
|
|
852
889
|
lac: parsedData[16] !== '' ? parseInt(parsedData[16], 16) : null,
|
|
853
890
|
cid: parsedData[17] !== '' ? parseInt(parsedData[17], 16) : null,
|
|
854
891
|
satellites:
|
|
855
|
-
satelliteInfo && parsedData[index] !== ''
|
|
856
|
-
? parseInt(parsedData[index])
|
|
892
|
+
satelliteInfo && parsedData[index - (satelliteInfo + accuracyInfo) + 1] !== ''
|
|
893
|
+
? parseInt(parsedData[index - (satelliteInfo + accuracyInfo) + 1])
|
|
894
|
+
: null,
|
|
895
|
+
Hdop:
|
|
896
|
+
accuracyInfo && parsedData[index - accuracyInfo + 1] !== ''
|
|
897
|
+
? parseFloat(parsedData[index - accuracyInfo + 1], 10)
|
|
898
|
+
: null,
|
|
899
|
+
Vdop:
|
|
900
|
+
accuracyInfo && parsedData[index - accuracyInfo + 2] !== ''
|
|
901
|
+
? parseFloat(parsedData[index - accuracyInfo + 2], 10)
|
|
902
|
+
: null,
|
|
903
|
+
Ddop:
|
|
904
|
+
accuracyInfo && parsedData[index] !== ''
|
|
905
|
+
? parseFloat(parsedData[index], 10)
|
|
857
906
|
: null,
|
|
858
907
|
odometer:
|
|
859
908
|
parsedData[index + 1] !== '' ? parseFloat(parsedData[index + 1]) : null,
|
|
@@ -1531,7 +1580,7 @@ const parse = raw => {
|
|
|
1531
1580
|
: null,
|
|
1532
1581
|
odometer: null,
|
|
1533
1582
|
hourmeter: null,
|
|
1534
|
-
can: utils.getCanData(parsedData, 5)
|
|
1583
|
+
can: utils.getCanData(parsedData, 5)
|
|
1535
1584
|
}
|
|
1536
1585
|
)
|
|
1537
1586
|
} else if (command[1] === 'GTDAT') {
|