From 77a475886aea9604030efd5e5deeb634990312f3 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Thu, 1 Jun 2017 23:11:02 +1200 Subject: Fix FlexComm time decoding --- src/org/traccar/protocol/FlexCommProtocolDecoder.java | 6 +++--- test/org/traccar/protocol/FlexCommProtocolDecoderTest.java | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/org/traccar/protocol/FlexCommProtocolDecoder.java b/src/org/traccar/protocol/FlexCommProtocolDecoder.java index 086a2de0b..33b4c0abb 100644 --- a/src/org/traccar/protocol/FlexCommProtocolDecoder.java +++ b/src/org/traccar/protocol/FlexCommProtocolDecoder.java @@ -89,8 +89,8 @@ public class FlexCommProtocolDecoder extends BaseProtocolDecoder { } position.setDeviceId(deviceSession.getDeviceId()); - position.setValid(parser.next().equals("1")); position.setTime(parser.nextDateTime()); + position.setValid(parser.next().equals("1")); position.setLatitude(parseSignedValue(parser, 6)); position.setLongitude(parseSignedValue(parser, 6)); position.setAltitude(parseSignedValue(parser, 0)); @@ -104,8 +104,8 @@ public class FlexCommProtocolDecoder extends BaseProtocolDecoder { position.setNetwork(new Network(CellTower.from( parser.nextInt(), parser.nextInt(), parser.nextHexInt(), parser.nextHexInt()))); - position.set(Position.KEY_INPUT, parser.nextInt()); - position.set(Position.KEY_OUTPUT, parser.nextInt()); + position.set(Position.KEY_INPUT, parser.nextBinInt()); + position.set(Position.KEY_OUTPUT, parser.nextBinInt()); position.set(Position.KEY_FUEL_LEVEL, parser.nextInt()); position.set(Position.PREFIX_TEMP + 1, parseSignedValue(parser, 0)); position.set(Position.KEY_BATTERY_LEVEL, parser.nextInt()); diff --git a/test/org/traccar/protocol/FlexCommProtocolDecoderTest.java b/test/org/traccar/protocol/FlexCommProtocolDecoderTest.java index 393c45793..e1a382936 100644 --- a/test/org/traccar/protocol/FlexCommProtocolDecoderTest.java +++ b/test/org/traccar/protocol/FlexCommProtocolDecoderTest.java @@ -10,6 +10,9 @@ public class FlexCommProtocolDecoderTest extends ProtocolTest { FlexCommProtocolDecoder decoder = new FlexCommProtocolDecoder(new FlexCommProtocol()); + verifyPosition(decoder, text( + "7E00865067022408382201705302358271024932258006712785200700022601010224100040002C5002A2210001000000010012342107")); + verifyPosition(decoder, text( "7E27865067022408382201705241211301024932197006712794000910022481008234100040002C5002A2200011000000006306941827")); -- cgit v1.2.3