aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2024-02-28 06:06:16 -0800
committerAnton Tananaev <anton@traccar.org>2024-02-28 06:06:16 -0800
commit0e77bb0fd407806ce11593db37aa8557101022fe (patch)
treeaaf62ab16781944ccf4bf49dbb8c036eec1c4192 /src/main
parent35829121adea923d0184e88d38939713bd5f9d4a (diff)
downloadtrackermap-server-0e77bb0fd407806ce11593db37aa8557101022fe.tar.gz
trackermap-server-0e77bb0fd407806ce11593db37aa8557101022fe.tar.bz2
trackermap-server-0e77bb0fd407806ce11593db37aa8557101022fe.zip
Add GV350M series CAN support
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/traccar/protocol/Gl200TextProtocolDecoder.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/org/traccar/protocol/Gl200TextProtocolDecoder.java b/src/main/java/org/traccar/protocol/Gl200TextProtocolDecoder.java
index 8fb30e2ad..0dac0ad70 100644
--- a/src/main/java/org/traccar/protocol/Gl200TextProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/Gl200TextProtocolDecoder.java
@@ -432,8 +432,8 @@ public class Gl200TextProtocolDecoder extends BaseProtocolDecoder {
if (BitUtil.check(reportMask, 1) && !values[index++].isEmpty()) {
position.set(Position.KEY_IGNITION, Integer.parseInt(values[index - 1]) > 0);
}
- if (BitUtil.check(reportMask, 2)) {
- position.set(Position.KEY_OBD_ODOMETER, values[index++]);
+ if (BitUtil.check(reportMask, 2) && !values[index++].isEmpty()) {
+ position.set(Position.KEY_OBD_ODOMETER, Integer.parseInt(values[index - 1].substring(1)));
}
if (BitUtil.check(reportMask, 3) && !values[index++].isEmpty()) {
position.set(Position.KEY_FUEL_USED, Double.parseDouble(values[index - 1]));
@@ -448,7 +448,10 @@ public class Gl200TextProtocolDecoder extends BaseProtocolDecoder {
position.set(Position.KEY_COOLANT_TEMP, Integer.parseInt(values[index - 1]));
}
if (BitUtil.check(reportMask, 7) && !values[index++].isEmpty()) {
- position.set(Position.KEY_FUEL_CONSUMPTION, Double.parseDouble(values[index - 1].substring(1)));
+ String value = values[index - 1];
+ if (value.startsWith("L/H")) {
+ position.set(Position.KEY_FUEL_CONSUMPTION, Double.parseDouble(value.substring(3)));
+ }
}
if (BitUtil.check(reportMask, 8) && !values[index++].isEmpty()) {
position.set(Position.KEY_FUEL_LEVEL, Double.parseDouble(values[index - 1].substring(1)));