diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-02-11 19:05:52 +1100 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-02-11 19:05:52 +1100 |
commit | 3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2 (patch) | |
tree | 28b84f76ebe39af98b00c0d8a82892a81ea0550d /src | |
parent | 3b569e6e8994f02f7856c4ad48ac1342b79453fa (diff) | |
download | trackermap-server-3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2.tar.gz trackermap-server-3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2.tar.bz2 trackermap-server-3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2.zip |
Add support for new Castel format
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/protocol/CastelProtocolDecoder.java | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/org/traccar/protocol/CastelProtocolDecoder.java b/src/org/traccar/protocol/CastelProtocolDecoder.java index e36d086f8..4b8f3b716 100644 --- a/src/org/traccar/protocol/CastelProtocolDecoder.java +++ b/src/org/traccar/protocol/CastelProtocolDecoder.java @@ -115,9 +115,14 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder { ChannelBuffer buf = (ChannelBuffer) msg; - buf.skipBytes(2); // header + int header = buf.readUnsignedShort(); buf.readUnsignedShort(); // length - int version = buf.readUnsignedByte(); + + int version = -1; + if (header == 0x4040) { + version = buf.readUnsignedByte(); + } + ChannelBuffer id = buf.readBytes(20); int type = ChannelBuffers.swapShort(buf.readShort()); @@ -125,7 +130,19 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder { return null; } - if (version == 4) { + if (version == -1) { + + if (type == 0x2001) { + + buf.readUnsignedInt(); // index + buf.readUnsignedInt(); // unix time + buf.readUnsignedByte(); + + return readPosition(buf); + + } + + } else if (version == 4) { if (type == MSG_SC_HEARTBEAT) { |