queclink-parser 1.9.28 → 1.9.31

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/src/gv310lau.js CHANGED
@@ -23,17 +23,17 @@ const parse = raw => {
23
23
  imei: parsedData[2],
24
24
  protocolVersion: utils.getProtocolVersion(parsedData[1]),
25
25
  temperature: null,
26
- history: history,
26
+ history,
27
27
  sentTime: utils.parseDate(parsedData[parsedData.length - 2]),
28
28
  serialId: parseInt(parsedData[parsedData.length - 1], 16)
29
29
  }
30
30
  // Gps
31
31
  if (command[1] === 'GTFRI') {
32
32
  try {
33
- let number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
34
- let satelliteInfo = utils.includeSatellites(parsedData[18])
35
- let accuracyInfo = utils.includeGnnsAccuracy(parsedData[18]) ? 3 : 0
36
- let index = 6 + (12 + satelliteInfo + accuracyInfo) * number
33
+ const number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
34
+ const satelliteInfo = utils.includeSatellites(parsedData[18])
35
+ const accuracyInfo = utils.includeGnnsAccuracy(parsedData[18]) ? 3 : 0
36
+ const index = 6 + (12 + satelliteInfo + accuracyInfo) * number
37
37
 
38
38
  data = Object.assign(data, {
39
39
  alarm: utils.getAlarm(command[1], null),
@@ -51,28 +51,28 @@ const parse = raw => {
51
51
  raw: parsedData[index + 7],
52
52
  sos: false,
53
53
  input: {
54
- '1':
54
+ 1:
55
55
  utils.nHexDigit(
56
56
  utils.hex2bin(
57
57
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
58
58
  ),
59
59
  4
60
60
  )[3] === '1',
61
- '2':
61
+ 2:
62
62
  utils.nHexDigit(
63
63
  utils.hex2bin(
64
64
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
65
65
  ),
66
66
  4
67
67
  )[2] === '1',
68
- '3':
68
+ 3:
69
69
  utils.nHexDigit(
70
70
  utils.hex2bin(
71
71
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
72
72
  ),
73
73
  4
74
74
  )[1] === '1',
75
- '4':
75
+ 4:
76
76
  utils.nHexDigit(
77
77
  utils.hex2bin(
78
78
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
@@ -81,21 +81,21 @@ const parse = raw => {
81
81
  )[0] === '1'
82
82
  },
83
83
  output: {
84
- '1':
84
+ 1:
85
85
  utils.nHexDigit(
86
86
  utils.hex2bin(
87
87
  utils.nHexDigit(parsedData[index + 7], 10).substring(8, 10)
88
88
  ),
89
89
  3
90
90
  )[2] === '1',
91
- '2':
91
+ 2:
92
92
  utils.nHexDigit(
93
93
  utils.hex2bin(
94
94
  utils.nHexDigit(parsedData[index + 7], 10).substring(8, 10)
95
95
  ),
96
96
  3
97
97
  )[1] === '1',
98
- '3':
98
+ 3:
99
99
  utils.nHexDigit(
100
100
  utils.hex2bin(
101
101
  utils.nHexDigit(parsedData[index + 7], 10).substring(8, 10)
@@ -107,8 +107,8 @@ const parse = raw => {
107
107
  state:
108
108
  utils.nHexDigit(parsedData[index + 7], 10).substring(4, 6) !== ''
109
109
  ? utils.states[ // eslint-disable-line
110
- utils.nHexDigit(parsedData[index + 7], 10).substring(4, 6)
111
- ]
110
+ utils.nHexDigit(parsedData[index + 7], 10).substring(4, 6)
111
+ ]
112
112
  : null
113
113
  },
114
114
  azimuth: parsedData[9] !== '' ? parseFloat(parsedData[9]) : null,
@@ -149,9 +149,9 @@ const parse = raw => {
149
149
  satelliteInfo &&
150
150
  parsedData[index - (satelliteInfo + accuracyInfo) + 1] !== ''
151
151
  ? parseInt(
152
- parsedData[index - (satelliteInfo + accuracyInfo) + 1],
153
- 10
154
- )
152
+ parsedData[index - (satelliteInfo + accuracyInfo) + 1],
153
+ 10
154
+ )
155
155
  : null,
156
156
  Hdop:
157
157
  accuracyInfo && parsedData[index - accuracyInfo + 1] !== ''
@@ -177,9 +177,9 @@ const parse = raw => {
177
177
 
178
178
  // More than 1 GNSS report in data
179
179
  if (number > 1) {
180
- let moreData = []
180
+ const moreData = []
181
181
  for (let i = 1; i < number; i++) {
182
- let gnssIx = 7 + (12 + satelliteInfo + accuracyInfo) * i
182
+ const gnssIx = 7 + (12 + satelliteInfo + accuracyInfo) * i
183
183
  moreData.push({
184
184
  index: i,
185
185
  loc: {
@@ -246,16 +246,16 @@ const parse = raw => {
246
246
  })
247
247
  }
248
248
 
249
- data = Object.assign(data, { moreData: moreData })
249
+ data = Object.assign(data, { moreData })
250
250
  }
251
251
  } catch (err) {
252
252
  return { type: 'UNKNOWN', raw: data.raw.toString() }
253
253
  }
254
254
  } else if (command[1] === 'GTERI') {
255
255
  // GPS with AC100 and/or Bluetoth Devices Connected
256
- let number = parsedData[7] !== '' ? parseInt(parsedData[7], 10) : 1
257
- let satelliteInfo = utils.includeSatellites(parsedData[19])
258
- let accuracyInfo = utils.includeGnnsAccuracy(parsedData[19]) ? 3 : 0
256
+ const number = parsedData[7] !== '' ? parseInt(parsedData[7], 10) : 1
257
+ const satelliteInfo = utils.includeSatellites(parsedData[19])
258
+ const accuracyInfo = utils.includeGnnsAccuracy(parsedData[19]) ? 3 : 0
259
259
  let index = 7 + (12 + satelliteInfo + accuracyInfo) * number
260
260
 
261
261
  // External Data
@@ -287,28 +287,28 @@ const parse = raw => {
287
287
  raw: parsedData[index + 7],
288
288
  sos: false,
289
289
  input: {
290
- '1':
290
+ 1:
291
291
  utils.nHexDigit(
292
292
  utils.hex2bin(
293
293
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
294
294
  ),
295
295
  4
296
296
  )[3] === '1',
297
- '2':
297
+ 2:
298
298
  utils.nHexDigit(
299
299
  utils.hex2bin(
300
300
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
301
301
  ),
302
302
  4
303
303
  )[2] === '1',
304
- '3':
304
+ 3:
305
305
  utils.nHexDigit(
306
306
  utils.hex2bin(
307
307
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
308
308
  ),
309
309
  4
310
310
  )[1] === '1',
311
- '4':
311
+ 4:
312
312
  utils.nHexDigit(
313
313
  utils.hex2bin(
314
314
  utils.nHexDigit(parsedData[index + 7], 10).substring(6, 8)
@@ -317,21 +317,21 @@ const parse = raw => {
317
317
  )[0] === '1'
318
318
  },
319
319
  output: {
320
- '1':
320
+ 1:
321
321
  utils.nHexDigit(
322
322
  utils.hex2bin(
323
323
  utils.nHexDigit(parsedData[index + 7], 10).substring(8, 10)
324
324
  ),
325
325
  3
326
326
  )[2] === '1',
327
- '2':
327
+ 2:
328
328
  utils.nHexDigit(
329
329
  utils.hex2bin(
330
330
  utils.nHexDigit(parsedData[index + 7], 10).substring(8, 10)
331
331
  ),
332
332
  3
333
333
  )[1] === '1',
334
- '3':
334
+ 3:
335
335
  utils.nHexDigit(
336
336
  utils.hex2bin(
337
337
  utils.nHexDigit(parsedData[index + 7], 10).substring(8, 10)
@@ -343,8 +343,8 @@ const parse = raw => {
343
343
  state:
344
344
  utils.nHexDigit(parsedData[index + 7], 10).substring(4, 6) !== ''
345
345
  ? utils.states[ // eslint-disable-line
346
- utils.nHexDigit(parsedData[index + 7], 10).substring(4, 6)
347
- ]
346
+ utils.nHexDigit(parsedData[index + 7], 10).substring(4, 6)
347
+ ]
348
348
  : null
349
349
  },
350
350
  azimuth: parsedData[10] !== '' ? parseFloat(parsedData[10]) : null,
@@ -409,7 +409,9 @@ const parse = raw => {
409
409
  const ac100DevicesConnected =
410
410
  AC100 && digitFuelSensor
411
411
  ? parseInt(parsedData[index + 10], 10)
412
- : AC100 && !digitFuelSensor ? parseInt(parsedData[index + 9], 10) : 0
412
+ : AC100 && !digitFuelSensor
413
+ ? parseInt(parsedData[index + 9], 10)
414
+ : 0
413
415
  // Review when RF433 devices are implemented
414
416
  // eslint-disable-next-line no-unused-vars
415
417
  const rf433DevicesConnected =
@@ -418,12 +420,12 @@ const parse = raw => {
418
420
  let externalData = {
419
421
  eriMask: {
420
422
  raw: parsedData[4],
421
- digitFuelSensor: digitFuelSensor,
422
- AC100: AC100,
423
- canData: canData,
424
- fuelLevelPercentage: fuelLevelPercentage,
425
- fuelVolume: fuelVolume,
426
- bluetoothAccessory: bluetoothAccessory
423
+ digitFuelSensor,
424
+ AC100,
425
+ canData,
426
+ fuelLevelPercentage,
427
+ fuelVolume,
428
+ bluetoothAccessory
427
429
  },
428
430
  uartDeviceType:
429
431
  parsedData[index + 8] !== ''
@@ -446,17 +448,17 @@ const parse = raw => {
446
448
  fuelVolume && fuelLevelPercentage && parsedData[index + 12] !== ''
447
449
  ? parseInt(parsedData[index + 13], 10)
448
450
  : fuelVolume &&
449
- !fuelLevelPercentage &&
450
- parsedData[index + 12] !== ''
451
+ !fuelLevelPercentage &&
452
+ parsedData[index + 12] !== ''
451
453
  ? parseInt(parsedData[index + 12], 10)
452
454
  : null
453
455
  },
454
456
  AC100Devices: null
455
457
  })
456
458
  } else if (!digitFuelSensor && AC100) {
457
- let ac100Devices = []
459
+ const ac100Devices = []
458
460
  let count = index + 11
459
- for (var i = 0; i < ac100DevicesConnected; i++) {
461
+ for (let i = 0; i < ac100DevicesConnected; i++) {
460
462
  ac100Devices.push({
461
463
  deviceNumber: parsedData[count],
462
464
  deviceType: parsedData[count + 1],
@@ -472,12 +474,14 @@ const parse = raw => {
472
474
  AC100Devices: ac100Devices
473
475
  })
474
476
  } else if (digitFuelSensor && AC100) {
475
- let ac100Devices = []
477
+ const ac100Devices = []
476
478
  let count =
477
479
  fuelVolume && fuelLevelPercentage
478
480
  ? 33
479
- : fuelVolume && !fuelLevelPercentage ? index + 13 : index + 12
480
- for (var j = 0; j < ac100DevicesConnected; j++) {
481
+ : fuelVolume && !fuelLevelPercentage
482
+ ? index + 13
483
+ : index + 12
484
+ for (let j = 0; j < ac100DevicesConnected; j++) {
481
485
  ac100Devices.push({
482
486
  deviceNumber: parsedData[count],
483
487
  deviceType: parsedData[count + 1],
@@ -499,8 +503,8 @@ const parse = raw => {
499
503
  fuelVolume && fuelLevelPercentage && parsedData[index + 13] !== ''
500
504
  ? parseInt(parsedData[index + 13], 10)
501
505
  : fuelVolume &&
502
- !fuelLevelPercentage &&
503
- parsedData[index + 12] !== ''
506
+ !fuelLevelPercentage &&
507
+ parsedData[index + 12] !== ''
504
508
  ? parseInt(parsedData[index + 12], 10)
505
509
  : null
506
510
  },
@@ -510,9 +514,9 @@ const parse = raw => {
510
514
  } else if (parsedData[index + 8] === '2') {
511
515
  // AC100 1 Wire Bus
512
516
  if (!digitFuelSensor && AC100) {
513
- let ac100Devices = []
517
+ const ac100Devices = []
514
518
  let count = index + 10
515
- for (var k = 0; k < ac100DevicesConnected; k++) {
519
+ for (let k = 0; k < ac100DevicesConnected; k++) {
516
520
  ac100Devices.push({
517
521
  deviceNumber: parsedData[count],
518
522
  deviceType: parsedData[count + 1],
@@ -537,9 +541,9 @@ const parse = raw => {
537
541
  AC100Devices: null
538
542
  })
539
543
  } else if (digitFuelSensor && AC100) {
540
- let ac100Devices = []
544
+ const ac100Devices = []
541
545
  let count = index + 12
542
- for (var l = 0; l < ac100DevicesConnected; l++) {
546
+ for (let l = 0; l < ac100DevicesConnected; l++) {
543
547
  ac100Devices.push({
544
548
  deviceNumber: parsedData[count],
545
549
  deviceType: parsedData[count + 1],
@@ -583,14 +587,16 @@ const parse = raw => {
583
587
  }
584
588
 
585
589
  if (canData) {
586
- let newIndex =
590
+ const newIndex =
587
591
  digitFuelSensor && !AC100
588
592
  ? index + 9 + 1
589
593
  : !digitFuelSensor && AC100
590
594
  ? index + 9 + 4
591
- : digitFuelSensor && AC100 ? index + 9 + 5 : index + 9
592
- let parsedCanData = utils.getCanData(parsedData, newIndex, command[1])
593
- let canInfo = parsedCanData[3]
595
+ : digitFuelSensor && AC100
596
+ ? index + 9 + 5
597
+ : index + 9
598
+ const parsedCanData = utils.getCanData(parsedData, newIndex, command[1])
599
+ const canInfo = parsedCanData[3]
594
600
  index = parsedCanData[0]
595
601
  if (Object.keys(canInfo).length > 0) {
596
602
  data = Object.assign(data, { can: canInfo })
@@ -618,22 +624,22 @@ const parse = raw => {
618
624
  // Bluetooth Accessories
619
625
  if (bluetoothAccessory) {
620
626
  // let btIndex = digitFuelSensor ? index + 1 : index
621
- let btIndex = canData ? index : index + 9
622
- let btDevices = utils.getBleData(parsedData, btIndex)
627
+ const btIndex = canData ? index : index + 9
628
+ const btDevices = utils.getBleData(parsedData, btIndex)
623
629
  externalData = Object.assign(externalData, {
624
- btDevices: btDevices
630
+ btDevices
625
631
  })
626
632
  }
627
633
 
628
634
  data = Object.assign(data, {
629
- externalData: externalData
635
+ externalData
630
636
  })
631
637
 
632
638
  // More than 1 GNSS report in data
633
639
  if (number > 1) {
634
- let moreData = []
640
+ const moreData = []
635
641
  for (let i = 1; i < number; i++) {
636
- let gnssIx = 8 + (12 + satelliteInfo + accuracyInfo) * i
642
+ const gnssIx = 8 + (12 + satelliteInfo + accuracyInfo) * i
637
643
  moreData.push({
638
644
  index: i,
639
645
  loc: {
@@ -700,7 +706,7 @@ const parse = raw => {
700
706
  })
701
707
  }
702
708
 
703
- data = Object.assign(data, { moreData: moreData })
709
+ data = Object.assign(data, { moreData })
704
710
  }
705
711
  } else if (command[1] === 'GTHBD') {
706
712
  // Heartbeat. It must response an ACK command
@@ -720,16 +726,16 @@ const parse = raw => {
720
726
  RSSI_quality:
721
727
  parsedData[10] !== ''
722
728
  ? utils.getSignalStrength(
723
- utils.networkTypes[parsedData[10]],
724
- parseInt(parsedData[6], 10)
725
- )
729
+ utils.networkTypes[parsedData[10]],
730
+ parseInt(parsedData[6], 10)
731
+ )
726
732
  : null, // Signal Strength
727
733
  RSSI_percentage:
728
734
  parsedData[10] !== ''
729
735
  ? utils.getSignalPercentage(
730
- utils.networkTypes[parsedData[10]],
731
- parseInt(parsedData[6], 10)
732
- )
736
+ utils.networkTypes[parsedData[10]],
737
+ parseInt(parsedData[6], 10)
738
+ )
733
739
  : null, // Signal Percetange
734
740
  GSM_quality:
735
741
  parsedData[7] !== ''
@@ -746,16 +752,16 @@ const parse = raw => {
746
752
  raw: parsedData[18] + parsedData[19] + parsedData[20],
747
753
  sos: false,
748
754
  input: {
749
- '4': utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[0] === '1',
750
- '3': utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[1] === '1',
751
- '2': utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[2] === '1',
752
- '1': utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[3] === '1'
755
+ 4: utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[0] === '1',
756
+ 3: utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[1] === '1',
757
+ 2: utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[2] === '1',
758
+ 1: utils.nHexDigit(utils.hex2bin(parsedData[21][1]), 4)[3] === '1'
753
759
  },
754
760
  output: {
755
- '4': utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[0] === '1',
756
- '3': utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[1] === '1',
757
- '2': utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[2] === '1',
758
- '1': utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[3] === '1'
761
+ 4: utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[0] === '1',
762
+ 3: utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[1] === '1',
763
+ 2: utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[2] === '1',
764
+ 1: utils.nHexDigit(utils.hex2bin(parsedData[22][1]), 4)[3] === '1'
759
765
  },
760
766
  charge: parsedData[12] === '1'
761
767
  },
@@ -787,15 +793,15 @@ const parse = raw => {
787
793
  command[1] === 'GTHBM'
788
794
  ) {
789
795
  // Common Alarms
790
- let number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
791
- let posAppendMask = parsedData[18]
796
+ const number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
797
+ const posAppendMask = parsedData[18]
792
798
  ? utils.nHexDigit(utils.hex2bin(parsedData[18]), 8)
793
799
  : null
794
800
 
795
801
  // If get satellites is configured
796
- let satelliteInfo = posAppendMask && posAppendMask[7] === '1' ? 1 : 0
797
- let accuracyInfo = posAppendMask && posAppendMask[4] === '1' ? 3 : 0
798
- let index = 6 + (12 + satelliteInfo + accuracyInfo) * number
802
+ const satelliteInfo = posAppendMask && posAppendMask[7] === '1' ? 1 : 0
803
+ const accuracyInfo = posAppendMask && posAppendMask[4] === '1' ? 3 : 0
804
+ const index = 6 + (12 + satelliteInfo + accuracyInfo) * number
799
805
 
800
806
  data = Object.assign(data, {
801
807
  alarm: utils.getAlarm(command[1], parsedData[5], 'gv310lau'),
@@ -856,12 +862,14 @@ const parse = raw => {
856
862
  lastSpeedStateDuration:
857
863
  parseInt(parsedData[4], 10) === 2
858
864
  ? parsedData[index + 2]
859
- : parseInt(parsedData[4], 10) === 3 ? parsedData[index + 3] : null,
865
+ : parseInt(parsedData[4], 10) === 3
866
+ ? parsedData[index + 3]
867
+ : null,
860
868
  hourmeter: null
861
869
  })
862
870
  } else if (command[1] === 'GTEPS' || command[1] === 'GTAIS') {
863
871
  // External low battery and voltage for analog input
864
- let number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
872
+ const number = parsedData[6] !== '' ? parseInt(parsedData[6], 10) : 1
865
873
  let index = 6 + 12 * number // position append mask
866
874
  let satelliteInfo = false
867
875
 
@@ -914,7 +922,7 @@ const parse = raw => {
914
922
  })
915
923
  } else if (command[1] === 'GTTMP') {
916
924
  // Temperature Alarm
917
- let number = parsedData[7] !== '' ? parseInt(parsedData[7], 10) : 1
925
+ const number = parsedData[7] !== '' ? parseInt(parsedData[7], 10) : 1
918
926
  let index = 7 + 12 * number // position append mask
919
927
  let satelliteInfo = false
920
928
 
@@ -944,27 +952,27 @@ const parse = raw => {
944
952
  raw: `${parsedData[index + 6]}${parsedData[index + 7]}`,
945
953
  sos: false,
946
954
  input: {
947
- '4':
955
+ 4:
948
956
  utils.nHexDigit(utils.hex2bin(parsedData[index + 6][1]), 4)[0] ===
949
957
  '1',
950
- '3':
958
+ 3:
951
959
  utils.nHexDigit(utils.hex2bin(parsedData[index + 6][1]), 4)[1] ===
952
960
  '1',
953
- '2':
961
+ 2:
954
962
  utils.nHexDigit(utils.hex2bin(parsedData[index + 6][1]), 4)[2] ===
955
963
  '1',
956
- '1':
964
+ 1:
957
965
  utils.nHexDigit(utils.hex2bin(parsedData[index + 6][1]), 4)[3] ===
958
966
  '1'
959
967
  },
960
968
  output: {
961
- '3':
969
+ 3:
962
970
  utils.nHexDigit(utils.hex2bin(parsedData[index + 7][1]), 4)[1] ===
963
971
  '1',
964
- '2':
972
+ 2:
965
973
  utils.nHexDigit(utils.hex2bin(parsedData[index + 7][1]), 4)[2] ===
966
974
  '1',
967
- '1':
975
+ 1:
968
976
  utils.nHexDigit(utils.hex2bin(parsedData[index + 7][1]), 4)[3] ===
969
977
  '1'
970
978
  },
@@ -1169,7 +1177,7 @@ const parse = raw => {
1169
1177
  hourmeter: null
1170
1178
  })
1171
1179
  } else if (command[1] === 'GTCRG') {
1172
- let number = parsedData[5] !== '' ? parseInt(parsedData[5]) : 1
1180
+ const number = parsedData[5] !== '' ? parseInt(parsedData[5]) : 1
1173
1181
  let start = 6
1174
1182
 
1175
1183
  data = Object.assign(data, {
@@ -1183,7 +1191,7 @@ const parse = raw => {
1183
1191
  }
1184
1192
  })
1185
1193
 
1186
- let more = []
1194
+ const more = []
1187
1195
  for (let i = 1; i <= number; i++) {
1188
1196
  more.push({
1189
1197
  id: parsedData[start] !== '' ? parseInt(parsedData[start]) : null,
@@ -1489,7 +1497,7 @@ const parse = raw => {
1489
1497
  })
1490
1498
  } else if (command[1] === 'GTIDA') {
1491
1499
  // iButton
1492
- let number = parsedData[7] !== '' ? parseInt(parsedData[7], 10) : 1
1500
+ const number = parsedData[7] !== '' ? parseInt(parsedData[7], 10) : 1
1493
1501
  let index = 7 + 12 * number // position append mask
1494
1502
  let satelliteInfo = false
1495
1503
 
@@ -1541,7 +1549,7 @@ const parse = raw => {
1541
1549
  hourmeter: null
1542
1550
  })
1543
1551
  } else if (command[1] === 'GTCAN') {
1544
- let canData = utils.getCanData(parsedData, 5, command[1])
1552
+ const canData = utils.getCanData(parsedData, 5, command[1])
1545
1553
  let index = canData[0] // position append mask
1546
1554
  let satelliteInfo = false
1547
1555
 
@@ -1668,7 +1676,7 @@ const parse = raw => {
1668
1676
  uartDeviceType: 'Camaleon',
1669
1677
  fuelSensorData: null
1670
1678
  }
1671
- let AC100Devices = [
1679
+ const AC100Devices = [
1672
1680
  {
1673
1681
  deviceNumber: `${parsedData[2]}|1`,
1674
1682
  deviceType: '1',
@@ -1685,11 +1693,11 @@ const parse = raw => {
1685
1693
  })
1686
1694
  }
1687
1695
  externalData = Object.assign(externalData, {
1688
- AC100Devices: AC100Devices
1696
+ AC100Devices
1689
1697
  })
1690
1698
  data = Object.assign(data, {
1691
1699
  alarm: utils.getAlarm('GTERI', null),
1692
- externalData: externalData
1700
+ externalData
1693
1701
  })
1694
1702
  } else if (/^>ET/.test(parsedData[7])) {
1695
1703
  // Temp Alarms
@@ -1701,7 +1709,7 @@ const parse = raw => {
1701
1709
  parsedSerialData[4]
1702
1710
  ])
1703
1711
  data = Object.assign(data, {
1704
- alarm: alarm
1712
+ alarm
1705
1713
  })
1706
1714
  } else if (/^>ID/.test(parsedData[7])) {
1707
1715
  // Checks if its a iButton GTDAT -> DT
@@ -1710,7 +1718,7 @@ const parse = raw => {
1710
1718
  const driverID = parsedSerialData[2] ? parsedSerialData[2] : ''
1711
1719
  const alarm = utils.getAlarm('GTIDA', `${driverID},1`)
1712
1720
  data = Object.assign(data, {
1713
- alarm: alarm
1721
+ alarm
1714
1722
  })
1715
1723
  } else {
1716
1724
  // Normal GTDAT
@@ -1749,9 +1757,9 @@ const parse = raw => {
1749
1757
  } else {
1750
1758
  // Long format
1751
1759
  // let index = 20 // position append mask
1752
- let satelliteInfo = utils.includeSatellites(parsedData[20])
1753
- let accuracyInfo = utils.includeGnnsAccuracy(parsedData[20]) ? 3 : 0
1754
- let index = 20 + satelliteInfo + accuracyInfo
1760
+ const satelliteInfo = utils.includeSatellites(parsedData[20])
1761
+ const accuracyInfo = utils.includeGnnsAccuracy(parsedData[20]) ? 3 : 0
1762
+ const index = 20 + satelliteInfo + accuracyInfo
1755
1763
 
1756
1764
  data = Object.assign(data, {
1757
1765
  alarm: utils.getAlarm(command[1], parsedData[8], parsedData[6]),
@@ -1791,9 +1799,9 @@ const parse = raw => {
1791
1799
  satelliteInfo &&
1792
1800
  parsedData[index - (satelliteInfo + accuracyInfo) + 1] !== ''
1793
1801
  ? parseInt(
1794
- parsedData[index - (satelliteInfo + accuracyInfo) + 1],
1795
- 10
1796
- )
1802
+ parsedData[index - (satelliteInfo + accuracyInfo) + 1],
1803
+ 10
1804
+ )
1797
1805
  : null,
1798
1806
  Hdop:
1799
1807
  accuracyInfo && parsedData[index - accuracyInfo + 1] !== ''
@@ -2120,34 +2128,34 @@ const parse = raw => {
2120
2128
  } else if (command[1] === 'GTBAA') {
2121
2129
  // Bluetooth alarms
2122
2130
  let satelliteInfo = false
2123
- let appendIx = 8
2124
- let appendMask = utils.nHexDigit(utils.hex2bin(parsedData[appendIx]), 16)
2125
- let btAccessory = parsedData[5]
2126
- let aNameIx = appendIx + parseInt(appendMask[15])
2127
- let aMacIx = aNameIx + parseInt(appendMask[14])
2128
- let aStatIx = aMacIx + parseInt(appendMask[13])
2129
- let aBatIx = aStatIx + parseInt(appendMask[12])
2130
- let aTmpIx = aBatIx + parseInt(appendMask[11])
2131
- let aHumIx = aTmpIx + parseInt(appendMask[10])
2132
- let ioIx = aHumIx + parseInt(appendMask[8])
2133
- let aEvIx =
2131
+ const appendIx = 8
2132
+ const appendMask = utils.nHexDigit(utils.hex2bin(parsedData[appendIx]), 16)
2133
+ const btAccessory = parsedData[5]
2134
+ const aNameIx = appendIx + parseInt(appendMask[15])
2135
+ const aMacIx = aNameIx + parseInt(appendMask[14])
2136
+ const aStatIx = aMacIx + parseInt(appendMask[13])
2137
+ const aBatIx = aStatIx + parseInt(appendMask[12])
2138
+ const aTmpIx = aBatIx + parseInt(appendMask[11])
2139
+ const aHumIx = aTmpIx + parseInt(appendMask[10])
2140
+ const ioIx = aHumIx + parseInt(appendMask[8])
2141
+ const aEvIx =
2134
2142
  appendMask[8] === '1' && appendMask[7] === '1'
2135
2143
  ? ioIx + 3
2136
2144
  : ioIx + parseInt(appendMask[7])
2137
- let pressIx =
2145
+ const pressIx =
2138
2146
  appendMask[7] === '1' && appendMask[6] === '1'
2139
2147
  ? aEvIx + 2
2140
2148
  : aEvIx + parseInt(appendMask[6])
2141
- let timeIx = pressIx + parseInt(appendMask[5])
2142
- let eTmpIx = timeIx + parseInt(appendMask[4])
2143
- let magIx = eTmpIx + parseInt(appendMask[3])
2144
- let aBatpIx =
2149
+ const timeIx = pressIx + parseInt(appendMask[5])
2150
+ const eTmpIx = timeIx + parseInt(appendMask[4])
2151
+ const magIx = eTmpIx + parseInt(appendMask[3])
2152
+ const aBatpIx =
2145
2153
  appendMask[3] === '1' && appendMask[2] === '1'
2146
2154
  ? magIx + 3
2147
2155
  : magIx + parseInt(appendMask[2])
2148
- let relIx = aBatpIx + parseInt(appendMask[1])
2156
+ const relIx = aBatpIx + parseInt(appendMask[1])
2149
2157
 
2150
- let newIndex = relIx + 1 + parseInt(appendMask[1])
2158
+ const newIndex = relIx + 1 + parseInt(appendMask[1])
2151
2159
  let satIndex = newIndex + 11
2152
2160
 
2153
2161
  // If get satellites is configured
@@ -2156,7 +2164,7 @@ const parse = raw => {
2156
2164
  satelliteInfo = true
2157
2165
  }
2158
2166
 
2159
- let bleInfo = {
2167
+ const bleInfo = {
2160
2168
  accesory:
2161
2169
  btAccessory !== '' ? utils.bluetoothAccessories[btAccessory] : null,
2162
2170
  model: parsedData[6] !== '' ? parseInt(parsedData[6]) : null,
@@ -2184,7 +2192,7 @@ const parse = raw => {
2184
2192
  : null
2185
2193
  }
2186
2194
 
2187
- let bleData = {
2195
+ const bleData = {
2188
2196
  temperature:
2189
2197
  parsedData[aTmpIx] !== '' && appendMask[11] === '1'
2190
2198
  ? parseInt(parsedData[aTmpIx])
@@ -2321,15 +2329,18 @@ const parse = raw => {
2321
2329
  // Bluetooth beacon detection
2322
2330
  // Bluetooth beacon detection
2323
2331
  let index = 4
2324
- let number = parsedData[index] !== '' ? parseInt(parsedData[index]) : 1
2332
+ const number = parsedData[index] !== '' ? parseInt(parsedData[index]) : 1
2325
2333
 
2326
- let btDevices = []
2334
+ const btDevices = []
2327
2335
  for (let i = 1; i <= number; i++) {
2328
- let appendMask = utils.nHexDigit(utils.hex2bin(parsedData[index + 2]), 8)
2329
- let macIx = index + 2 + parseInt(appendMask[6])
2330
- let batIx = macIx + parseInt(appendMask[4])
2331
- let sigIx = batIx + parseInt(appendMask[1])
2332
- let typeIx = sigIx + parseInt(appendMask[0])
2336
+ const appendMask = utils.nHexDigit(
2337
+ utils.hex2bin(parsedData[index + 2]),
2338
+ 8
2339
+ )
2340
+ const macIx = index + 2 + parseInt(appendMask[6])
2341
+ const batIx = macIx + parseInt(appendMask[4])
2342
+ const sigIx = batIx + parseInt(appendMask[1])
2343
+ const typeIx = sigIx + parseInt(appendMask[0])
2333
2344
  btDevices.push({
2334
2345
  model:
2335
2346
  parsedData[index + 1] !== ''
@@ -2355,44 +2366,48 @@ const parse = raw => {
2355
2366
  data:
2356
2367
  appendMask[0] === '1' && parsedData[typeIx + 1] !== ''
2357
2368
  ? {
2358
- idMfrData:
2369
+ idMfrData:
2359
2370
  parsedData[typeIx] === '0' && parsedData[typeIx + 1] !== ''
2360
2371
  ? parsedData[typeIx + 1]
2361
2372
  : null,
2362
- uuid:
2373
+ uuid:
2363
2374
  parsedData[typeIx] === '1' && parsedData[typeIx + 1] !== ''
2364
2375
  ? parsedData[typeIx + 1]
2365
2376
  : null,
2366
- major:
2377
+ major:
2367
2378
  parsedData[typeIx] === '1' && parsedData[typeIx + 2] !== ''
2368
2379
  ? parsedData[typeIx + 2]
2369
2380
  : null,
2370
- minor:
2381
+ minor:
2371
2382
  parsedData[typeIx] === '1' && parsedData[typeIx + 3] !== ''
2372
2383
  ? parsedData[typeIx + 3]
2373
2384
  : null,
2374
- nid:
2385
+ nid:
2375
2386
  parsedData[typeIx] === '2' && parsedData[typeIx + 1] !== ''
2376
2387
  ? parsedData[typeIx + 1]
2377
2388
  : null,
2378
- bid:
2389
+ bid:
2379
2390
  parsedData[typeIx] === '2' && parsedData[typeIx + 2] !== ''
2380
2391
  ? parsedData[typeIx + 2]
2381
2392
  : null
2382
- }
2393
+ }
2383
2394
  : null
2384
2395
  })
2385
- let extra =
2396
+ const extra =
2386
2397
  parsedData[typeIx] === '0'
2387
2398
  ? 1
2388
- : parsedData[typeIx] === '1' ? 3 : parsedData[typeIx] === '2' ? 2 : 0
2399
+ : parsedData[typeIx] === '1'
2400
+ ? 3
2401
+ : parsedData[typeIx] === '2'
2402
+ ? 2
2403
+ : 0
2389
2404
  index = typeIx + 1 + extra
2390
2405
  }
2391
2406
 
2392
2407
  index = index - 1
2393
- let satelliteInfo = utils.includeSatellites(parsedData[index + 12])
2394
- let jammingSate = utils.includeJammingSate(parsedData[index + 12])
2395
- let satIndex = index + 12 + satelliteInfo + jammingSate
2408
+ const satelliteInfo = utils.includeSatellites(parsedData[index + 12])
2409
+ const jammingSate = utils.includeJammingSate(parsedData[index + 12])
2410
+ const satIndex = index + 12 + satelliteInfo + jammingSate
2396
2411
 
2397
2412
  data = Object.assign(data, {
2398
2413
  alarm: utils.getAlarm(command[1], null, 'gv310lau'),
@@ -2452,13 +2467,13 @@ const parse = raw => {
2452
2467
  hourmeter: null
2453
2468
  })
2454
2469
 
2455
- let bluetoothData = {
2470
+ const bluetoothData = {
2456
2471
  connectedDevices: number,
2457
- btDevices: btDevices
2472
+ btDevices
2458
2473
  }
2459
2474
 
2460
2475
  data = Object.assign(data, {
2461
- bluetoothData: bluetoothData
2476
+ bluetoothData
2462
2477
  })
2463
2478
  } else if (command[1] === 'GTVGN' || command[1] === 'GTVGF') {
2464
2479
  // Virtual ignition
@@ -2517,8 +2532,8 @@ const parse = raw => {
2517
2532
  alarm: utils.getAlarm(command[1], null),
2518
2533
  fixType: parsedData[3] !== '' ? parsedData[3] : null
2519
2534
  })
2520
- let antData = []
2521
- var index = 4
2535
+ const antData = []
2536
+ let index = 4
2522
2537
  for (let i = 0; i < 6; i++) {
2523
2538
  antData.push({
2524
2539
  mcc: parsedData[index] !== '' ? parseInt(parsedData[index], 10) : null,
@@ -2539,16 +2554,16 @@ const parse = raw => {
2539
2554
  rxLevel:
2540
2555
  parsedData[index + 4] !== ''
2541
2556
  ? utils.getSignalStrength(
2542
- 'GSM',
2543
- parseInt(parsedData[index + 4], 10)
2544
- )
2557
+ 'GSM',
2558
+ parseInt(parsedData[index + 4], 10)
2559
+ )
2545
2560
  : null,
2546
2561
  rxSignalPercentage:
2547
2562
  parsedData[index + 4] !== ''
2548
2563
  ? utils.getSignalPercentage(
2549
- 'GSM',
2550
- parseInt(parsedData[index + 4], 10)
2551
- )
2564
+ 'GSM',
2565
+ parseInt(parsedData[index + 4], 10)
2566
+ )
2552
2567
  : null
2553
2568
  })
2554
2569
  index += 6
@@ -2577,9 +2592,9 @@ const parse = raw => {
2577
2592
  rxSignalPercentage:
2578
2593
  parsedData[index + 4] !== ''
2579
2594
  ? utils.getSignalPercentage(
2580
- 'GSM',
2581
- parseInt(parsedData[index + 4], 10)
2582
- )
2595
+ 'GSM',
2596
+ parseInt(parsedData[index + 4], 10)
2597
+ )
2583
2598
  : null
2584
2599
  })
2585
2600
  } else if (command[1] === 'GTCLT') {
@@ -2593,65 +2608,65 @@ const parse = raw => {
2593
2608
  satelliteInfo = true
2594
2609
  }
2595
2610
 
2596
- let alarmMask1 =
2611
+ const alarmMask1 =
2597
2612
  parsedData[5] !== ''
2598
2613
  ? utils
2599
- .nHexDigit(utils.hex2bin(parsedData[5]), 32)
2600
- .split('')
2601
- .reverse()
2602
- .join('')
2614
+ .nHexDigit(utils.hex2bin(parsedData[5]), 32)
2615
+ .split('')
2616
+ .reverse()
2617
+ .join('')
2603
2618
  : null
2604
- let alarmMask2 =
2619
+ const alarmMask2 =
2605
2620
  parsedData[6] !== ''
2606
2621
  ? utils
2607
- .nHexDigit(utils.hex2bin(parsedData[6]), 32)
2608
- .split('')
2609
- .reverse()
2610
- .join('')
2622
+ .nHexDigit(utils.hex2bin(parsedData[6]), 32)
2623
+ .split('')
2624
+ .reverse()
2625
+ .join('')
2611
2626
  : null
2612
- let alarmMask3 =
2627
+ const alarmMask3 =
2613
2628
  parsedData[7] !== ''
2614
2629
  ? utils
2615
- .nHexDigit(utils.hex2bin(parsedData[7]), 32)
2616
- .split('')
2617
- .reverse()
2618
- .join('')
2630
+ .nHexDigit(utils.hex2bin(parsedData[7]), 32)
2631
+ .split('')
2632
+ .reverse()
2633
+ .join('')
2619
2634
  : null
2620
- let inicatorsBin =
2635
+ const inicatorsBin =
2621
2636
  parsedData[28] !== ''
2622
2637
  ? utils.nHexDigit(utils.hex2bin(parsedData[28]), 16)
2623
2638
  : null
2624
- let lights =
2639
+ const lights =
2625
2640
  parsedData[29] !== ''
2626
2641
  ? utils.nHexDigit(utils.hex2bin(parsedData[29]), 8)
2627
2642
  : null
2628
- let doors =
2643
+ const doors =
2629
2644
  parsedData[30] !== ''
2630
2645
  ? utils.nHexDigit(utils.hex2bin(parsedData[30]), 8)
2631
2646
  : null
2632
- let canExpansionMask =
2647
+ const canExpansionMask =
2633
2648
  parsedData[33] !== ''
2634
2649
  ? utils
2635
- .nHexDigit(utils.hex2bin(parsedData[33]), 32)
2636
- .split('')
2637
- .reverse()
2638
- .join('')
2650
+ .nHexDigit(utils.hex2bin(parsedData[33]), 32)
2651
+ .split('')
2652
+ .reverse()
2653
+ .join('')
2639
2654
  : null
2640
- let expansionBin =
2655
+ const expansionBin =
2641
2656
  parsedData[54] !== ''
2642
2657
  ? utils
2643
- .nHexDigit(utils.hex2bin(parsedData[54]), 16)
2644
- .split('')
2645
- .reverse()
2646
- .join('')
2658
+ .nHexDigit(utils.hex2bin(parsedData[54]), 16)
2659
+ .split('')
2660
+ .reverse()
2661
+ .join('')
2647
2662
  : null
2648
- let tachographBin =
2663
+ const tachographBin =
2649
2664
  parsedData[27] !== ''
2650
2665
  ? utils
2651
- .nHexDigit(utils.hex2bin(parsedData[27]), 8)
2652
- .split('')
2653
- .reverse()
2654
- .join('')
2666
+ .nHexDigit(utils.hex2bin(parsedData[27]), 8)
2667
+ .split('')
2668
+ .reverse()
2669
+ .join('')
2655
2670
  : null
2656
2671
  data = Object.assign(data, {
2657
2672
  alarm: utils.getAlarm(command[1], parsedData[6], [
@@ -3127,13 +3142,13 @@ const parse = raw => {
3127
3142
  satelliteInfo = true
3128
3143
  }
3129
3144
 
3130
- let maxAcc = parsedData[index + 1] !== '' ? parsedData[index + 1] : null
3131
- let avgAcc = parsedData[index + 2] !== '' ? parsedData[index + 2] : null
3132
- let duration =
3145
+ const maxAcc = parsedData[index + 1] !== '' ? parsedData[index + 1] : null
3146
+ const avgAcc = parsedData[index + 2] !== '' ? parsedData[index + 2] : null
3147
+ const duration =
3133
3148
  parsedData[index + 3] !== ''
3134
3149
  ? parseFloat(parsedData[index + 3]) / 100
3135
3150
  : null
3136
- let speed = parsedData[8] !== '' ? parseFloat(parsedData[8]) : null
3151
+ const speed = parsedData[8] !== '' ? parseFloat(parsedData[8]) : null
3137
3152
 
3138
3153
  data = Object.assign(data, {
3139
3154
  alarm: utils.getAlarm(
@@ -3145,7 +3160,7 @@ const parse = raw => {
3145
3160
  type: 'Point',
3146
3161
  coordinates: [parseFloat(parsedData[11]), parseFloat(parsedData[12])]
3147
3162
  },
3148
- speed: speed,
3163
+ speed,
3149
3164
  gpsStatus: utils.checkGps(
3150
3165
  parseFloat(parsedData[11]),
3151
3166
  parseFloat(parsedData[12])
@@ -3202,7 +3217,7 @@ const parse = raw => {
3202
3217
  ? utils.getAccelerationMagnitude(avgAcc.substring(8, 12), 4)
3203
3218
  : null
3204
3219
  },
3205
- duration: duration,
3220
+ duration,
3206
3221
  odometer:
3207
3222
  parsedData[index + 4] !== '' ? parseFloat(parsedData[index + 4]) : null,
3208
3223
  hourmeter: null
@@ -3284,5 +3299,5 @@ const parse = raw => {
3284
3299
  }
3285
3300
 
3286
3301
  module.exports = {
3287
- parse: parse
3302
+ parse
3288
3303
  }