queclink-parser 1.9.22 → 1.9.24

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,24 @@
1
+ #### 1.9.24 (2026-03-12)
2
+
3
+ ##### Bug Fixes
4
+
5
+ * **messages:** se corrige mensaje para HBE ([b5abf3c4](https://github.com/jaayesta/queclink-parser/commit/b5abf3c4fec9b5802044a8daf8cd01fcd6c17171))
6
+
7
+ #### 1.9.23 (2026-03-11)
8
+
9
+ ##### Bug Fixes
10
+
11
+ * **gitignore:** add npmrc to gitignore ([8378927b](https://github.com/jaayesta/queclink-parser/commit/8378927b875ffd6d5df7923911ab23545eaf3dca))
12
+ * **gl533cg:**
13
+ * se corrige eventCode para SVR ([843e9ac8](https://github.com/jaayesta/queclink-parser/commit/843e9ac8bf8251c72ab4f88806c363cdd54cb202))
14
+ * se mejora evento de encendido ([df2b8d39](https://github.com/jaayesta/queclink-parser/commit/df2b8d3968e37a0ecc83b56fa1dbc513fe5ddab6))
15
+ * **hbe:**
16
+ * se agrega detalle en mensaje HBE ([68b36a3c](https://github.com/jaayesta/queclink-parser/commit/68b36a3c4dd5fc4d2a1d56aa8362a0e61eb8e27b))
17
+ * se agrega más data al evento HBE ([c2e07f03](https://github.com/jaayesta/queclink-parser/commit/c2e07f03907ad8f41bf62b4cab1e3d4d7c003e51))
18
+ * **example:** example file untracked ([50b2dc1a](https://github.com/jaayesta/queclink-parser/commit/50b2dc1af893c986be4e7a8d78531f8a494dd321))
19
+ * **rto:** Se agrega soporte a RTOs de GL533CG ([7a673bf3](https://github.com/jaayesta/queclink-parser/commit/7a673bf3bd36484c2658cff2d80f2087c323ee89))
20
+ * **inputCharge:** se pasa campo a null cuando no hay data que agregar. ([836cc537](https://github.com/jaayesta/queclink-parser/commit/836cc5370672f8938d75d2011be2ad31d1834d5b))
21
+
1
22
  #### 1.9.23 (2026-03-03)
2
23
 
3
24
  #### 1.9.22 (2026-03-03)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "queclink-parser",
3
- "version": "1.9.22",
3
+ "version": "1.9.24",
4
4
  "description": "Parse raw data from Queclink devices",
5
5
  "main": "src",
6
6
  "scripts": {
package/src/gl533cg.js CHANGED
@@ -107,7 +107,7 @@ const parse = raw => {
107
107
  }
108
108
 
109
109
  // Event Code (1 byte)
110
- const eventCode = buf.readUInt8(offset)
110
+ const eventCode = buf.toString('hex', offset, offset + 1)
111
111
  offset += 1
112
112
 
113
113
  if (recordId === 0x50 || recordId === 0x04) {
@@ -115,7 +115,7 @@ const parse = raw => {
115
115
  data.alarm = utils.getAlarm('GTFRI', null)
116
116
  } else if (recordId === 0x01) {
117
117
  // 01H Device Startup
118
- data.alarm = utils.getAlarm('GTPNA', null)
118
+ data.alarm = utils.getAlarm('GTPNR', eventCode)
119
119
  } else if (recordId === 0x05) {
120
120
  // 05H Device Shutdown
121
121
  data.alarm = utils.getAlarm('GTPFA', null)
@@ -140,7 +140,7 @@ const parse = raw => {
140
140
  data.alarm = utils.getAlarm('LIGHT', null)
141
141
  } else if (recordId === 0x94) {
142
142
  // 94H SVR Connection Notification
143
- data.alarm = utils.getAlarm('GTSVR', eventCode)
143
+ data.alarm = utils.getAlarm('GTSVR', eventCode[1])
144
144
  } else if (recordId === 0xf3) {
145
145
  // F3H GTC Status
146
146
  data.alarm = utils.getAlarm('GTALM', null)
@@ -193,7 +193,7 @@ const parse = raw => {
193
193
  // Internal Battery Percentage
194
194
  data.voltage = data.voltage || {}
195
195
  data.voltage.battery = dataContent.readUInt8(0)
196
- data.voltage.inputCharge = false
196
+ data.voltage.inputCharge = null
197
197
  } else if (dataId === 0x11) {
198
198
  // RF433 Working Status
199
199
  const rfState = dataContent.readUInt8(0)
@@ -455,7 +455,8 @@ const parse = raw => {
455
455
  data.voltage.value = dataContent.readUInt16BE(1)
456
456
  data.voltage.battery = dataContent.readUInt8(3)
457
457
  const charging = dataContent.readUInt8(4)
458
- data.voltage.inputCharge = charging !== 0x02 && charging !== 0x007
458
+ data.voltage.inputCharge =
459
+ charging !== 0x02 && charging !== 0x007 ? true : null
459
460
  } else if (dataId === 0x78) {
460
461
  // 120 Self Test
461
462
  data.selfTestTime = new Date(dataContent.readUInt32BE(0) * 1000)
package/src/gv310lau.js CHANGED
@@ -3158,18 +3158,19 @@ const parse = raw => {
3158
3158
  let avgAcc = parsedData[index + 2] !== '' ? parsedData[index + 2] : null
3159
3159
  let duration =
3160
3160
  parsedData[index + 3] !== '' ? parseFloat(parsedData[index + 3]) : null
3161
+ let speed = parsedData[8] !== '' ? parseFloat(parsedData[8]) : null
3161
3162
 
3162
3163
  data = Object.assign(data, {
3163
3164
  alarm: utils.getAlarm(
3164
3165
  command[1],
3165
3166
  [parsedData[5], parsedData[6]],
3166
- [maxAcc, duration]
3167
+ [maxAcc, duration, speed]
3167
3168
  ),
3168
3169
  loc: {
3169
3170
  type: 'Point',
3170
3171
  coordinates: [parseFloat(parsedData[11]), parseFloat(parsedData[12])]
3171
3172
  },
3172
- speed: parsedData[8] !== '' ? parseFloat(parsedData[8]) : null,
3173
+ speed: speed,
3173
3174
  gpsStatus: utils.checkGps(
3174
3175
  parseFloat(parsedData[11]),
3175
3176
  parseFloat(parsedData[12])
package/src/gv57cg.js CHANGED
@@ -2447,18 +2447,19 @@ const parse = raw => {
2447
2447
  let avgAcc = parsedData[index + 2] !== '' ? parsedData[index + 2] : null
2448
2448
  let duration =
2449
2449
  parsedData[index + 3] !== '' ? parseFloat(parsedData[index + 3]) : null
2450
+ let speed = parsedData[8] !== '' ? parseFloat(parsedData[8]) : null
2450
2451
 
2451
2452
  data = Object.assign(data, {
2452
2453
  alarm: utils.getAlarm(
2453
2454
  command[1],
2454
2455
  [parsedData[5], parsedData[6]],
2455
- [maxAcc, duration]
2456
+ [maxAcc, duration, speed]
2456
2457
  ),
2457
2458
  loc: {
2458
2459
  type: 'Point',
2459
2460
  coordinates: [parseFloat(parsedData[11]), parseFloat(parsedData[12])]
2460
2461
  },
2461
- speed: parsedData[8] !== '' ? parseFloat(parsedData[8]) : null,
2462
+ speed: speed,
2462
2463
  gpsStatus: utils.checkGps(
2463
2464
  parseFloat(parsedData[11]),
2464
2465
  parseFloat(parsedData[12])
package/src/gv58lau.js CHANGED
@@ -3383,18 +3383,19 @@ const parse = raw => {
3383
3383
  let duration = includeStatus
3384
3384
  ? parsedData[index + 4] !== '' ? parseFloat(parsedData[index + 4]) : null
3385
3385
  : parsedData[index + 3] !== '' ? parseFloat(parsedData[index + 3]) : null
3386
+ let speed = parsedData[8] !== '' ? parseFloat(parsedData[8]) : null
3386
3387
 
3387
3388
  data = Object.assign(data, {
3388
3389
  alarm: utils.getAlarm(
3389
3390
  command[1],
3390
3391
  [parsedData[5], parsedData[6]],
3391
- [maxAcc, duration]
3392
+ [maxAcc, duration, speed]
3392
3393
  ),
3393
3394
  loc: {
3394
3395
  type: 'Point',
3395
3396
  coordinates: [parseFloat(parsedData[11]), parseFloat(parsedData[12])]
3396
3397
  },
3397
- speed: parsedData[8] !== '' ? parseFloat(parsedData[8]) : null,
3398
+ speed: speed,
3398
3399
  gpsStatus: utils.checkGps(
3399
3400
  parseFloat(parsedData[11]),
3400
3401
  parseFloat(parsedData[12])
package/src/index.js CHANGED
@@ -195,6 +195,9 @@ const getAckCommand = (raw, lang) => {
195
195
  data.command = 'SETOVERSPEEDALARM'
196
196
  } else if (command[1] === 'GTOUT') {
197
197
  data.command = 'SETIOSWITCH'
198
+ } else if (command[1] === 'RTO') {
199
+ data.message =
200
+ messages['+ACK'][`GT${command[1]}`][parsedData[5]] || messages.default
198
201
  } else if (command[1] === 'GTRTO') {
199
202
  data.message =
200
203
  messages['+ACK'][command[1]][parsedData[4]] || messages.default
@@ -23,7 +23,7 @@
23
23
  "1": "Regreso a temperatura dentro de rango ()"
24
24
  },
25
25
  "GTCAN": "Reporte Can Bus",
26
- "GTCLT": "Alarma Can Bus",
26
+ "GTCLT": "Alarma Can Bus",
27
27
  "GTJES": "Resumen de datos OBDII",
28
28
  "GTOSM": {
29
29
  "0": {
@@ -159,7 +159,22 @@
159
159
  "2": "Dispositivo operando nuevamente",
160
160
  "3": "Dispositivo operando nuevamente",
161
161
  "5": "Dispositivo reiniciado por protocolo watchdog",
162
- "6": "Reinicio por actualización de configuración"
162
+ "6": "Reinicio por actualización de configuración",
163
+ "00": "Dispositivo encendido",
164
+ "01": "Dispositivo encendido por reinicio periódico",
165
+ "02": "Dispositivo encendido por reinicio remoto",
166
+ "03": "Dispositivo encendido por restauración",
167
+ "04": "Dispositivo encendido por restauración completa",
168
+ "07": "Reinicio por actualización de firmware",
169
+ "08": "Movimiento detectado (Sensor G)",
170
+ "09": "Regreso del reposo",
171
+ "10": "Alarma de sensor de luz",
172
+ "11": "Primer encendido manual",
173
+ "12": "Encendido anormal",
174
+ "13": "Error de reloj",
175
+ "14": "Despertar activo (Botón presionado 3 veces)",
176
+ "15": "Conexión con servidor perdida",
177
+ "16": "Conexión con servidor recuperada"
163
178
  },
164
179
  "GTPFR": {
165
180
  "0": "Dispositivo apagado remotamente",
@@ -199,12 +214,12 @@
199
214
  "5": "Comportamiento Brusco Desconocido"
200
215
  },
201
216
  "GTHBE": {
202
- "0": "Fin de Frenada Brusca",
203
- "1": "Fin de Aceleración Brusca",
204
- "2": "Fin de Giro Brusco",
205
- "3": "Fin de Frenada Brusca Girando",
206
- "4": "Fin de Aceleración Brusca Girando",
207
- "5": "Fin de Comportamiento Brusco Desconocido"
217
+ "0": "Frenada Brusca de X m/s² a Y km/h durante Z segundos",
218
+ "1": "Aceleración Brusca de X m/s² a Y km/h durante Z segundos",
219
+ "2": "Giro Brusco de X m/s² a Y km/h durante Z segundos",
220
+ "3": "Frenada Brusca Girando de X m/s² a Y km/h durante Z segundos",
221
+ "4": "Aceleración Brusca Girando de X m/s² a Y km/h durante Z segundos",
222
+ "5": "Comportamiento Brusco Desconocido"
208
223
  },
209
224
  "GTDOG": {
210
225
  "1": "Dispositivo reiniciado por frecuencia configurada",
@@ -317,7 +332,7 @@
317
332
  "GTVMS": "Config: modo de ignición",
318
333
  "GTBTS": "Config: general bluetooth",
319
334
  "GTBAS": "Config: accesorio bluetooth",
320
- "GTBID": "Config: baliza bluetooth",
335
+ "GTBID": "Config: baliza bluetooth",
321
336
  "GTHMC": "Config: horómetro",
322
337
  "GTCMD": "Config: nuevo comando en memoria",
323
338
  "GTUDF": "Config: función personalizada",
@@ -342,7 +357,18 @@
342
357
  "CAN100 Operation": "Solicitud: vehículo vía CANbus",
343
358
  "SCS": "Solicitud: estado de calibración 3-ejes",
344
359
  "DELBUF": "Se han eliminado los reportes almacenados",
345
- "RLY": "Acción sobre Relé BT"
360
+ "RLY": "Acción sobre Relé BT",
361
+ "0": "Solicitud de información específica",
362
+ "1": "Solicitud de posición actual",
363
+ "3": "Dispositivo Reiniciado",
364
+ "8": "Solicitud de información básica",
365
+ "14": "Eliminar todos los reportes almacenados",
366
+ "17": "Reseteo de nivel de batería",
367
+ "18": "Borrar el emparejamiento SVR",
368
+ "92": "Ingreso a modo de emergencia",
369
+ "93": "Salida del modo de emergencia",
370
+ "94": "Restaurar configuración de fábrica",
371
+ "95": "Forzar configuración de fábrica"
346
372
  }
347
373
  }
348
374
  }
package/src/utils.js CHANGED
@@ -1850,16 +1850,23 @@ const getAlarm = (command, report, extra = false) => {
1850
1850
  let x = getAccelerationMagnitude(extra[0].substring(0, 4), 4)
1851
1851
  let y = getAccelerationMagnitude(extra[0].substring(4, 8), 4)
1852
1852
  let z = getAccelerationMagnitude(extra[0].substring(8, 12), 4)
1853
+ let duration = extra[1]
1854
+ let speed = extra[2]
1855
+ let magnitude = Number(
1856
+ Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)).toFixed(2)
1857
+ ).toString()
1853
1858
  return {
1854
1859
  type: 'Harsh_Behavior',
1855
1860
  status: parseInt(report[1], 10),
1856
1861
  calibration: report[0] === '2',
1857
- duration: extra[1],
1858
- magnitude: Number(
1859
- Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2)).toFixed(2)
1860
- ).toString(),
1862
+ duration: duration,
1863
+ speed: speed,
1864
+ magnitude: magnitude,
1861
1865
  xyz: { x: x, y: y, z: z },
1862
1866
  message: messages[command][report[1]]
1867
+ .replace('X', magnitude)
1868
+ .replace('Y', speed)
1869
+ .replace('Z', duration)
1863
1870
  }
1864
1871
  } else if (command === 'GTCRA') {
1865
1872
  return {
package/example.js DELETED
@@ -1,185 +0,0 @@
1
- const queclink = require('.');
2
-
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
- 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,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
- 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
- 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
- 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
- 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
- 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,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
- 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
- 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
- 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$'
17
- var gsm = '+RESP:GTGSM,8020060402,867488060596284,FRI,0460,0001,DF5C,02A90902,38,,0460,0001,DF5C,0DD0833A,55,,0460,0011,691D,0690271C,52,,0460,0011,691D,0DE98A34,38,,0460,0011,691D,0DE98A34,27,,0460,0011,691D,0DE98A34,29,,0460,0001,DF5C,05FE6667,24,00,20230524054409,031B$'
18
- var inf = '+RESP:GTINF,8020060402,867488060596284,GV57CG,21,89860122801846641616,57,0,1,14594,,3.80,0,1,,,20230524051219,0,1200,,,01,00,+0000,0,20230524051220,0268$'
19
- var gps = '+RESP:GTGPS,8020060402,135790246811220,GV57CG,,,,003F,,,20230524051345,20230524051346,11F0$'
20
- var alm = '+RESP:GTALM,8020060402,866775051629715,GV57CG,1,1,1,BSI,cmnet,cmnet_name,cmnet_password,3gnet,3gnet_name,3gnet_password,1,,,\^,20231218071618,71C5$'
21
- var cid = '+RESP:GTCID,8020060402,864696060004173,GV57CG,89860118801541301090,20230810112751,04EA$'
22
- var csq = '+RESP:GTCSQ,8020060402,135790246811220,GV57CG,16,0,20090214093254,11F0$'
23
- var ver = '+RESP:GTVER,8020060402,135790246811220,GV57CG,802006,0100,0101,20090214093254,11F0$'
24
- var bat = '+RESP:GTBAT,8020060402,135790246811220,GV57CG,1,12000,,4.40,0,0,20230524052049,11F0$'
25
- var ios = '+RESP:GTIOS,8020060402,135790246811220,GV57CG,,7531,,,01,00,20090214093254,11F0$'
26
- var tmz = '+RESP:GTTMZ,8020060402,866775051508042,GV57CG,+0000,0,0,20220630032656,2B45$'
27
- var aif = '+RESP:GTAIF,8020060402,866775051629715,GV57CG,cmnet,cmnet_name,cmnet_password,3gnet,3gnet_name,3gnet_password,898600e0123955608398,24,0,B7B1,10.57.5.91,211.138.180.4,211.138.180.5,0,,,,20231218061747,714A$'
28
- var gsv = '+RESP:GTGSV,8020060402,359464036001111,GV57CG,11,30,24,31,30,32,28,32,29,12,0,14,17,16,18,20,0,22,24,24,0,25,0,20230524052627,000F$'
29
- var scs = '+RESP:GTSCS,8020060402,865585040006649,GV57CG,2,-0.06,0.88,-0.48,-0.97,0.05,0.22,0.22,0.48,0.85,20230524132442,1F59$'
30
- var pna = '+RESP:GTPNA,8020060402,135790246811220,GV57CG,20230524052727,11F0$'
31
- var pfa = '+RESP:GTPFA,8020060402,135790246811220,GV57CG,20230524052727,11F0$'
32
- var pdp = '+RESP:GTPDP,8020060402,135790246811220,GV57CG,20230524052727,11F0$'
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
- 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
- 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
- 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
- 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,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
- 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
- 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,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
- 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
- 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
- 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,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
- 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
- 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
- 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,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
- 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
- var pnr = '+RESP:GTPNR,8020060402,863835020303983,GV57CG,0,,,,,20150407094557,0633$'
55
- var pfr = '+RESP:GTPFR,8020060402,863835020303983,GV57CG,0,,,,,20150407094557,0633$'
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
- 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
- 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 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$'
64
- 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$'
65
- 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$"
66
- var high_temp = "+RESP:GTBAA,6E0801,868589060039404,,01,6,2,02,083F,WTH300,7805412AFE28,1,3525,25,49,25.00,0,0.0,35,153.1,-72.668510,-38.256640,20241227153248,0730,0001,23F1,00342902,01,12,20241227153635,A915$"
67
- var in_range = "+RESP:GTBAA,6E0801,868589060039404,,01,6,2,03,083F,WTH300,7805412AFE28,1,3519,24,47,24.95,0,0.0,35,153.1,-72.668510,-38.256640,20241227151247,0730,0001,23F1,00339F10,01,12,20241227151525,A912$"
68
- var relay_off = '+RESP:GTBAA,6E0801,868589060039404,,00,13,0,15,4000,0,0,1,0.0,35,153.1,-72.668510,-38.256640,20241227145055,0730,0001,23F1,00342911,01,12,20241227145055,A8F9$'
69
- var relay_on = '+RESP:GTBAA,6E0801,868589060039404,,00,13,0,15,4000,0,1,1,0.0,35,153.1,-72.668510,-38.256640,20241227144952,0730,0001,23F1,00342911,01,12,20241227144951,A8F5$'
70
- var eri58 = '+RESP:GTERI,8020040802,864696060004173,GV58LAU,00000100,,10,1,1,0.0,0,115.8,117.129356,31.839248,20230808061540,0460,0001,DF5C,05FE6667,03,15,0,4.0,0000102:34:33,,,,100,210000,,1,0,06,12,0,001A42A2,0617,TMPS,08351B00043C,1,26,65,20231030085704,20231030085704,0017$'
71
- var eri310 = '+RESP:GTERI,6E1003,864696060004173,GV310LAU,00000100,,10,1,1,0.0,0,115.8,117.129356,31.839248,20230808061540,0460,0001,DF5C,05FE6667,03,15,,4.0,0000102:34:33,0,15259,10680,100,210000,7,1,0,06,12,0,001A42A2,0617,TMPS,08351B00043C,1,26,65,20231030085704,20231030085704,ABCD$'
72
- var eri = '+RESP:GTERI,8020040802,866314061645121,,00000100,12944,10,1,1,0.0,247,611.9,-70.577108,-33.523989,20250114225655,0730,0001,3330,00A4FC01,01,9,41375.5,0002383:14:12,,,,100,110001,,2,00,13,0,00000000,4007,,78054143F187,1,0,03,6,5,0DE10E6A,083F,,7805413E6A41,1,3543,36,35,36.90,20250114225923,2ACB$'
73
- var eri2 = '+RESP:GTERI,8020040802,866314061760094,,00000100,12186,10,1,0,0.0,17,-7.0,-71.543345,-32.972461,20250111040734,0730,0003,EA6F,00070B0C,01,0,0.2,0000063:26:41,,,,100,210100,,2,00,13,0,00000001,4007,,78054143F00B,1,1,01,6,4,17BB0821,283F,,78054133CB9F,1,3482,20,60,20.81,100,20250115130224,41C4$'
74
- var eri3 = '+RESP:GTERI,8020040802,866314061760094,,00000100,12208,10,1,0,0.0,17,-7.0,-71.543345,-32.972461,20250111040734,0730,0003,EA6F,00070B0C,01,0,0.2,0000063:28:25,,,,100,210100,,3,00,13,0,00000001,4007,,78054143F00B,1,1,01,6,4,16B60839,283F,,78054133CB9F,1,3485,21,58,21.05,100,FE,3,4,000A,78054141615E,3030,20250115130409,41CC$'
75
-
76
- var baa = '+RESP:GTBAA,8020040802,866314061760094,,01,6,4,13,283F,,78054133CB9F,1,3481,21,57,21.05,100,0,0.0,17,-7.0,-71.543345,-32.972461,20250111040734,0730,0003,EA6F,00070B0C,01,0,20250115130318,41C8$'
77
- var ack = '+ACK:GTBAS,6E0A03,868589060039404,,1,0000,20250120151212,22CC$'
78
- var test = '+RESP:GTERI,6E0B00,868589060064048,,00000100,12109,10,1,1,0.0,83,3.1,-71.543397,-32.972429,20250121142808,0730,0001,13EE,0032A502,01,12,2.6,0000008:04:49,,,,88,210100,0,2,02,6,4,164808ED,283F,,78054133CB9F,1,3447,22,57,22.85,100,FE,3,4,000A,780541416165,3270,20250121142810,2C1A$'
79
- var test2 = '+RESP:GTERI,8020040802,866314061760094,,00000100,12217,10,1,0,0.0,114,89.4,-71.542946,-32.972462,20250117083107,0730,0003,EA6F,00070B34,01,0,12.0,0000100:49:34,,,,100,210100,,2,00,13,0,00000000,4007,,78054143F00B,1,0,01,6,4,17C608B8,283F,,78054133CB9F,1,3443,22,60,22.32,100,20250121174252,7B18$'
80
- var test3 = '+RESP:GTERI,8020040802,866314061760094,,00000100,12217,10,1,0,0.0,114,89.4,-71.542946,-32.972462,20250117083107,0730,0003,EA6F,00070B34,01,0,12.0,0000100:49:34,,,,100,210100,,2,01,6,4,17C608B8,283F,,78054133CB9F,1,3443,22,60,22.32,100,00,13,0,00000000,4007,,78054143F00B,1,0,20250121174252,7B18$'
81
- var test4 = '+RESP:GTERI,6E0B00,868589060064048,,00000100,12141,10,1,1,0.0,0,2.5,-71.543408,-32.972433,20250121211122,0730,0001,13EE,0032A502,01,12,2.6,0000014:48:01,,,,100,210100,0,3,FE,3,4,000A,780541416165,3260,00,13,0,00000000,4006,78054143F00B,1,0,02,6,4,156A0A3E,283F,,78054133CB9F,1,3449,26,54,26.22,100,20250121211125,340A$'
82
- var juego = "+RESP:GTERI,6E0802,868589060659029,,00000006,14064,10,1,1,32.4,71,471.3,-70.748220,-33.494213,20250123150132,0730,0001,3344,003D0601,01,12,9150.7,0000381:44:02,,,,100,220100,2,1,28FFB007286384D2,1,FF4C,1,203FFFFF,,2,,1190.32,1626,32,90,,,,0,371.38,193.02,178.36,128.66,,FFFF,0010,,00,0.06,0.00,FFFFFF,,,,,,,,,576370,434493,1719,371.38,,1.42,23731,,,,,,0000,56,0,,20250123150133,FAD9$"
83
- var newdtt = '+RESP:GTDTT,6E0802,868589060722215,,,,0,264,�Q4���,OzJ(��(��(��(��(��(��(��(��(��(��(��(��� N�K�4����.�]�f�v(�)sFisFisFh�����f�њ3I�3Mi���ܹ��QEQEQEQEQEQEQEQEQEQEQEQEQE(<Q��u.�7��}/�K��]��Jo���F�]�n�u��u.�i7 Rn��I��Ԍ�6M%QEQEQEQEQEQEQEQEQEQEQEQEQEQEQE.h���q��h�h�)][yB,1,24.6,322,2730.3,-68.802404,-23.413967,20250210162544,0730,0002,00CA,09B38E71,01,11,,,,,20250210162545,A522$'
84
- var tpms = '+RESP:GTERI,6E0802,868589060612317,,00000104,14134,10,1,1,0.0,160,536.2,-70.676717,-33.422117,20250331211305,0730,0001,3345,003B3901,01,12,5809.4,0000132:27:33,,,,98,110000,0,0,203FFFFF,,,,,,,,,,,,,,,,,,,,,,,FFFFFF,,,,,,,,,,,,,,,,,,,,,,,,,6,00,13,0,00000000,4007,,780541484188,1,0,02,6,5,0DAD092E,083F,,7805413E6D0D,1,3423,23,35,23.50,06,12,0,005E4EB3,0617,RF,08351B002230,1,38,235,20250331211239,07,12,0,005F50B3,0617,LF,08351B00234E,1,40,237,20250331211221,08,12,0,005F4CB3,0617,RR,08351B00222D,1,36,237,20250331211215,09,12,0,00624CB3,0617,LR,08351B002247,1,36,245,20250331211209,20250331211306,AD50$'
85
- var newdtt = '+RESP:GTDTT,6E1102,866775051622785,GV310LAU,,,0,9,1134122,0,0.0,173,72.7,117.129363,31.839142,20221201085356,0460,0000,550B,085BE2AA,01,6,,,,,20221201085357,2E9E$'
86
- var dis58 = '+RESP:GTDIS,8020040803,866314061861249,,,10,1,1,0.0,349,399.7,-70.770383,-33.474911,20250516154520,0730,0001,333F,003D0711,01,11,55.2,20250516154521,B08D$'
87
- var test = '+RESP:GTERI,6E0C03,868589060367102,,00000104,13621,10,1,1,0.0,5,190.7,-71.541291,-33.576625,20250829142314,0730,0001,16A9,00305D03,01,12,31513.0,0002500:06:38,,,,100,110000,0,0,0,1,00,13,0,,4007,,FFFFFFFFFFFF,0,,20250829142315,D3AF$'
88
- var test2 ="+RESP:GTERI,6E0C03,868589060839548,,00000104,27841,10,1,1,0.0,1,195.5,-71.541562,-33.576687,20250903005133,0730,0001,16A9,00305D03,01,12,21626.9,0000531:51:33,,,,100,210900,0,1,203A2B9F,,2,H7241302,243017.00,0,H4.5,P91.60,,37.09,10.33,0040,00,0.00,0.00,A2BAFF,62,,,,,,,,11910,37.09,1.50,2.20,,,0,, 1,00,13,0,00000000,4007,,78054143F0A5,1,0,20250903005134,C7A3$"
89
- var cantest = "+RESP:GTCAN,6E0C03,868589061030451,gv310lau,00,1,E03DECFF,9BSP6X200N3999611,2,H3403506,99984.57,500,0,85,H1.9,0,264.64,30.70,63.92,6596,FFFF,,00,0.00,0.00,DED0FF,97,4374,0,,,,,,6.61,2238,,,,,0000,1,,,,1,0.0,92,473.0,-70.786429,-33.437795,20251024202114,0730,0003,9C4E,00063E0D,01,12,20251024202114,5FC2$"
90
- var cantest2 = "+RESP:GTERI,6E0C03,868589060653113,,00000104,27690,10,1,0,9.6,93,634.9,-70.578870,-33.401553,20250829161508,0730,0001,3333,002FA204,01,0,771665.5,0001471:12:04,,,,100,120000,0,1,203FFFFF,,0,H7724170,251352.00,,0,45,H0.0,P39.60,,0,1470.49,902.47,568.02,1270.01,,FFFF,0040,,00,0.00,0.00,FFFFFF,62,,,,,,,,714181,857821,10804,1470.49,53.99,25.48,60368,,,,,,0000,10,0,,1,00,13,0,00000000,4007,,7805414843E0,1,0,20250829165819,68A1$"
91
- var cantest3 = '+RESP:GTCAN,6E0C03,868589061014489,,00,1,E033A2BF,,2,H84671,2268.84,1187,88,H28.1,,30.77,,FFFF,0200,0.00,0.00,3A2CFF,0,,,,,,,,150,122.45,0.70,,,0000,2,,,1,86.8,31,159.5,-71.508382,-35.292014,20251024201914,0730,0003,177E,000F2C33,01,12,20251024201916,F485$'
92
- var t = "+RESP:GTBID,6E0C03,868589061029669,,1,0,000A,7805413BD3C9,2989,0,0.0,258,670.8,-70.603452,-33.617190,20251024065630,0730,0001,332E,00307303,01,12,20251024065631,CE7B$"
93
- var t2 = "+RESP:GTBID,6E0C03,868589061029669,,0,0,0.0,282,670.8,-70.603452,-33.617190,20251024065600,0730,0001,332E,00307303,01,12,20251024065601,CE77$"
94
- var hex = Buffer.from([0x2B, 0x00, 0x00, 0x3E, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0x01, 0x23, 0x45, 0xC3, 0x01, 0x00, 0x05, 0x00, 0x00, 0x27, 0x66, 0x8E, 0x47, 0xF7, 0x00, 0x00, 0x50, 0x00, 0x07, 0x01, 0x01, 0x0A, 0x01, 0x1F, 0x52, 0x16, 0x09, 0xF9, 0x20, 0xA8, 0xE1, 0xFF, 0x2D, 0xC0, 0x96, 0x5F, 0x17, 0x9D, 0xA0, 0x01, 0x7D, 0x0A, 0x00, 0x25, 0x00, 0x01, 0xB3, 0x0C, 0x01, 0x23, 0x9E, 0x24])
95
- var newack = "+ACK:BSS,123456789012345,C301,5,0,,012F,20210407101530,1234$"
96
- var nack = "+NACK:APN,123456789012345,C301,5,0,,0,012F,20210407101530,1234$"
97
-
98
- var data = {
99
- "imei": 868589060039404,
100
- "instruction": "temp_alarm_off",
101
- "sensor_type": 'WTH301',
102
- "sensor_index": 1,
103
- "action": "Configurar alarma de temperatura",
104
- "device": "queclink",
105
- "password": "gv310lau",
106
- "alarmId": 0,
107
- "sensorId": "7805412AFE28",
108
- "minTemp": 25 || null,
109
- "maxTemp": 29 || null
110
- }
111
-
112
- // data = {
113
- // "imei": 868589060064048,
114
- // "instruction": "1_on",
115
- // "datetime": "2025-03-06T20:12:00.000Z",
116
- // "password": "gv57cg",
117
- // "device_serie": "GV",
118
- // "user": user
119
- // }
120
-
121
- action = {
122
- "imei": 868589060708180,
123
- "user": {
124
- "email": "fvergara@drivetech.pro",
125
- "ip": "10.10.2.48",
126
- "device": "Web"
127
- },
128
- "datetime": "2025-05-16T20:34:14.591Z",
129
- "instruction": "2_on",
130
- "action": "Abrir",
131
- "loc": {
132
- "type": "Point",
133
- "coordinates": [
134
- -71.543499,
135
- -32.97255
136
- ]
137
- },
138
- "device": "queclink",
139
- "password": "gv310lau",
140
- "dosReport": 2,
141
- "command": null,
142
- "device_serie": "GV",
143
- "previousOutput": null,
144
- "previousToggle": {
145
- "1": 0,
146
- "2": 1,
147
- "3": 0,
148
- "4": 0,
149
- "5": 0
150
- },
151
- "previousDuration": {
152
- "1": 0,
153
- "2": 1,
154
- "3": 0,
155
- "4": 0,
156
- "5": 0
157
- }
158
- }
159
-
160
-
161
- spd = {
162
- "imei": 866314061767966,
163
- "user": {
164
- "email": "fvergara@drivetech.pro",
165
- "ip": "10.10.2.175",
166
- "device": "Web"
167
- },
168
- "datetime": "2025-07-22T19:15:00.902Z",
169
- "instruction": "set_speed_onE",
170
- "action": "Configurar velocidad máxima",
171
- "loc": null,
172
- "device": "queclink",
173
- "password": "gv58lau",
174
- "device_serie": "GV",
175
- "speed": "85",
176
- "times": "30"
177
- }
178
- // console.log(queclink.parseCommand(action))
179
- const raw = new Buffer.from(cantest)
180
- console.log(JSON.stringify(queclink.parse(raw), null, 2))
181
- queclink.parse(raw)
182
-
183
-
184
- // AT+GTSPD=gv58lau,1,0,0,60,300,0,0,0,0,,,,,,,,,,,,0000$
185
- // AT+GTSPD=gv58lau,4,0,85,30,300,0,0,0,0,,,,,,,,,,,,0000$