diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2015-10-31 18:18:19 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2015-10-31 18:18:19 +1300 |
commit | 1c488e9f1896d8f4ced142cb303169e45cbd27fb (patch) | |
tree | 6f560a1f71a17eb70d5b4be80e3f1e9e95acbca2 /src/org | |
parent | 43c41653d90be21476c65b4e8d9b03c18ac6f8e2 (diff) | |
download | traccar-server-1c488e9f1896d8f4ced142cb303169e45cbd27fb.tar.gz traccar-server-1c488e9f1896d8f4ced142cb303169e45cbd27fb.tar.bz2 traccar-server-1c488e9f1896d8f4ced142cb303169e45cbd27fb.zip |
Fix GPS103 time calculation logic
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/traccar/protocol/Gps103ProtocolDecoder.java | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/org/traccar/protocol/Gps103ProtocolDecoder.java b/src/org/traccar/protocol/Gps103ProtocolDecoder.java index 9fa71ad58..4bf1ca15d 100644 --- a/src/org/traccar/protocol/Gps103ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gps103ProtocolDecoder.java @@ -69,8 +69,7 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder { @Override protected Object decode( - Channel channel, SocketAddress remoteAddress, Object msg) - throws Exception { + Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { String sentence = (String) msg; @@ -121,15 +120,15 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder { int localHours = parser.nextInt(); int localMinutes = parser.nextInt(); - int utcHours = parser.nextInt(); - int utcMinutes = parser.nextInt(); + String utcHours = parser.next(); + String utcMinutes = parser.next(); dateBuilder.setTime(localHours, localMinutes, parser.nextInt(), parser.nextInt()); // Timezone calculation - if (utcHours != 0 && utcMinutes != 0) { - int deltaMinutes = (localHours - utcHours) * 60; - deltaMinutes += localMinutes - utcMinutes; + if (utcHours != null && utcMinutes != null) { + int deltaMinutes = (localHours - Integer.valueOf(utcHours)) * 60; + deltaMinutes += localMinutes - Integer.valueOf(utcMinutes); if (deltaMinutes <= -12 * 60) { deltaMinutes += 24 * 60; } else if (deltaMinutes > 12 * 60) { |