aboutsummaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-02-11 19:05:52 +1100
committerAnton Tananaev <anton.tananaev@gmail.com>2016-02-11 19:05:52 +1100
commit3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2 (patch)
tree28b84f76ebe39af98b00c0d8a82892a81ea0550d /src/org
parent3b569e6e8994f02f7856c4ad48ac1342b79453fa (diff)
downloadtraccar-server-3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2.tar.gz
traccar-server-3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2.tar.bz2
traccar-server-3884c75ab3849cdb7b2a86ff7fa64c1c22df4ad2.zip
Add support for new Castel format
Diffstat (limited to 'src/org')
-rw-r--r--src/org/traccar/protocol/CastelProtocolDecoder.java23
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) {