aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-04-01 14:31:21 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2016-04-01 14:31:21 +1300
commitdb0ba9badfca80b51acd50a83b8ee7abd5d31522 (patch)
treea70070d9650959cb3f2ae39a9c2aff895ecc3aed
parenteb5fbb9f8ba1a798949e2b881b8268ff151aaeb6 (diff)
downloadtrackermap-server-db0ba9badfca80b51acd50a83b8ee7abd5d31522.tar.gz
trackermap-server-db0ba9badfca80b51acd50a83b8ee7abd5d31522.tar.bz2
trackermap-server-db0ba9badfca80b51acd50a83b8ee7abd5d31522.zip
Add support for OpenGTS format (fix #1836)
-rw-r--r--src/org/traccar/protocol/T55Protocol.java11
-rw-r--r--src/org/traccar/protocol/T55ProtocolDecoder.java4
-rw-r--r--test/org/traccar/protocol/T55ProtocolDecoderTest.java3
3 files changed, 16 insertions, 2 deletions
diff --git a/src/org/traccar/protocol/T55Protocol.java b/src/org/traccar/protocol/T55Protocol.java
index 041413a65..3fa0f6a9e 100644
--- a/src/org/traccar/protocol/T55Protocol.java
+++ b/src/org/traccar/protocol/T55Protocol.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2015 - 2016 Anton Tananaev (anton.tananaev@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,6 +15,7 @@
*/
package org.traccar.protocol;
+import org.jboss.netty.bootstrap.ConnectionlessBootstrap;
import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.handler.codec.frame.LineBasedFrameDecoder;
@@ -42,6 +43,14 @@ public class T55Protocol extends BaseProtocol {
pipeline.addLast("objectDecoder", new T55ProtocolDecoder(T55Protocol.this));
}
});
+ serverList.add(new TrackerServer(new ConnectionlessBootstrap(), this.getName()) {
+ @Override
+ protected void addSpecificHandlers(ChannelPipeline pipeline) {
+ pipeline.addLast("stringEncoder", new StringEncoder());
+ pipeline.addLast("stringDecoder", new StringDecoder());
+ pipeline.addLast("objectDecoder", new T55ProtocolDecoder(T55Protocol.this));
+ }
+ });
}
}
diff --git a/src/org/traccar/protocol/T55ProtocolDecoder.java b/src/org/traccar/protocol/T55ProtocolDecoder.java
index 813d58ba8..c5704cd56 100644
--- a/src/org/traccar/protocol/T55ProtocolDecoder.java
+++ b/src/org/traccar/protocol/T55ProtocolDecoder.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 - 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2012 - 2016 Anton Tananaev (anton.tananaev@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -219,6 +219,8 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder {
String id = sentence.substring(0, index);
if (id.endsWith(",")) {
id = id.substring(0, id.length() - 1);
+ } else if (id.endsWith("/")) {
+ id = id.substring(id.indexOf('/') + 1, id.length() - 1);
}
identify(id, channel, remoteAddress);
sentence = sentence.substring(index);
diff --git a/test/org/traccar/protocol/T55ProtocolDecoderTest.java b/test/org/traccar/protocol/T55ProtocolDecoderTest.java
index 4160758fc..b5b8fe90e 100644
--- a/test/org/traccar/protocol/T55ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/T55ProtocolDecoderTest.java
@@ -11,6 +11,9 @@ public class T55ProtocolDecoderTest extends ProtocolTest {
T55ProtocolDecoder decoder = new T55ProtocolDecoder(new T55Protocol());
verifyPosition(decoder, text(
+ "4711/022789000688081/$GPRMC,133343,A,5308.56325,N,1029.12850,E,0.000000,0.000000,290316,,*2A"));
+
+ verifyPosition(decoder, text(
"$GPRMC,073501.000,A,1255.5125,N,07738.2948,E,0.00,0.53,080316,,,D*73,12,865733027593268,10011"));
verifyNothing(decoder, text(