aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2012-08-19 22:20:31 +0400
committerAnton Tananaev <anton.tananaev@gmail.com>2012-08-19 22:20:31 +0400
commit22a8d46522824151f71c53f3fcab5e3b0d72f608 (patch)
tree3bb059be22e928839ff2dd4171eb9c4205d8ac51
parentb0b93983f5411ceffc649d44d55093b04ddf802a (diff)
parente7660ab714ee237ce080eaf14f5ab7f1997bea3f (diff)
downloadtrackermap-server-22a8d46522824151f71c53f3fcab5e3b0d72f608.tar.gz
trackermap-server-22a8d46522824151f71c53f3fcab5e3b0d72f608.tar.bz2
trackermap-server-22a8d46522824151f71c53f3fcab5e3b0d72f608.zip
Merge branch 'williamchitto-master'
-rw-r--r--src/org/traccar/geocode/GoogleReverseGeocoder.java8
-rw-r--r--src/org/traccar/protocol/ST210ProtocolDecoder.java19
-rw-r--r--test/org/traccar/protocol/ST210ProtocolDecoderTest.java60
3 files changed, 28 insertions, 59 deletions
diff --git a/src/org/traccar/geocode/GoogleReverseGeocoder.java b/src/org/traccar/geocode/GoogleReverseGeocoder.java
index 724c60e50..a25f60d66 100644
--- a/src/org/traccar/geocode/GoogleReverseGeocoder.java
+++ b/src/org/traccar/geocode/GoogleReverseGeocoder.java
@@ -19,6 +19,8 @@ import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
+import java.nio.charset.Charset;
+
import org.traccar.helper.Log;
/**
@@ -36,8 +38,10 @@ public class GoogleReverseGeocoder implements ReverseGeocoder {
try {
URL url = new URL("http://maps.googleapis.com/maps/api/geocode/json?latlng=" + latitude + "," + longitude + "&sensor=false");
URLConnection connection = url.openConnection();
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(connection.getInputStream()));
+
+ connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),Charset.forName("UTF-8")));
// Find address line
String line;
diff --git a/src/org/traccar/protocol/ST210ProtocolDecoder.java b/src/org/traccar/protocol/ST210ProtocolDecoder.java
index f503fead6..d41a78da5 100644
--- a/src/org/traccar/protocol/ST210ProtocolDecoder.java
+++ b/src/org/traccar/protocol/ST210ProtocolDecoder.java
@@ -23,8 +23,7 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
}
private enum ST210FIELDS {
- HDR_STATUS("SA200STT;",
- "Status Report"),
+ HDR_STATUS("SA200STT;","Status Report"),
HDR_EMERGENCY("SA200EMG;","Emergency Report"),
HDR_EVENT("SA200EVT;", "Event Report"),
HDR_ALERT("SA200ALT;","Alert Report"),
@@ -33,7 +32,7 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
SW_VER("(\\d{3});", "Software Release Version"),
DATE("(\\d+);","GPS date (yyyymmdd) Year + Month + Day"),
TIME("(\\d{2}:\\d{2}:\\d{2});","GPS time (hh:mm:ss) Hour : Minute : Second"),
- CELL("(\\d{2}\\w\\d{2});","Location Code ID (3 digits hex) + Serving Cell BSIC(2 digits decimal)"),
+ CELL("(\\w+);","Location Code ID (3 digits hex) + Serving Cell BSIC(2 digits decimal)"),
LAT("(-\\d{2}.\\d+);", "Latitude (+/-xx.xxxxxx)"),
LON("(-\\d{3}.\\d+);", "Longitude (+/-xxx.xxxxxx)"),
SPD("(\\d{3}.\\d{3});","Speed in km/h - This value returns to 0 when it is over than 200,000Km"),
@@ -44,8 +43,8 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
PWR_VOLT("(\\d+.\\d{2});","Voltage value of main power"),
IO("(\\d+);","Current I/O status of inputs and outputs."),
MODE("(\\d);","1 = Idle mode (Parking)\n" + "2 = Active Mode (Driving)"),
- MSG_NUM("(\\d{4})","Message number - After 9999 is reported, message number returns to 0000"),
- EMG_ID("(\\d)", "Emergency type"),
+ MSG_NUM("(\\d{4});","Message number - After 9999 is reported, message number returns to 0000"),
+ EMG_ID("(\\d);", "Emergency type"),
EVT_ID("(\\d);", "Event type"),
ALERT_ID("(\\d);", "Alert type");
@@ -488,6 +487,10 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
patternStr += field.getPattern();
}
+ if(patternStr.endsWith(";")){
+ patternStr = patternStr.substring(0, patternStr.length()-1);
+ }
+
return Pattern.compile(patternStr);
}
@@ -611,7 +614,7 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
Log.info("MESSAGE DECODED WITH SUCCESS!");
}
catch(Exception e){
- Log.info("ERROR WHILE DECODING MESSAGE: " + e.getMessage());
+ Log.severe("ERROR WHILE DECODING MESSAGE: " + e.getMessage());
}
return position;
@@ -631,6 +634,10 @@ public class ST210ProtocolDecoder extends GenericProtocolDecoder {
throw new Exception("Pattern no match: " + protocolPattern.toString());
}
+ if(report.equals(ST210REPORTS.ALIVE)){
+ return null;
+ }
+
// Create new position
Position position = new Position();
diff --git a/test/org/traccar/protocol/ST210ProtocolDecoderTest.java b/test/org/traccar/protocol/ST210ProtocolDecoderTest.java
index 63234efd0..403b5621a 100644
--- a/test/org/traccar/protocol/ST210ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/ST210ProtocolDecoderTest.java
@@ -1,58 +1,12 @@
package org.traccar.protocol;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
-import java.io.IOException;
-import java.sql.SQLException;
-
-import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
-import org.traccar.Server;
-import org.traccar.helper.Log;
-//import org.traccar.server.SocketCliente;
public class ST210ProtocolDecoderTest {
- /*
- @BeforeClass
- public static void UpServer() {
- final Server service = new Server();
- String[] args = new String[1];
- args[0] = "setup\\windows\\windows.cfg";
- try {
- service.init(args);
-
- Log.info("starting server...");
- service.start();
-
- // Shutdown server properly
- Runtime.getRuntime().addShutdownHook(new Thread() {
- @Override
- public void run() {
- Log.info("shutting down server...");
- service.stop();
- }
- });
-
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- @Test
- public void testClienteMsg() throws Exception {
-
- SocketCliente cliente = new SocketCliente();
- cliente.SendMSG(
- "localhost",
- 5010,
- "SA200STT;317652;042;20120718;15:37:12;16d41;-15.618755;-056.083241;000.024;000.00;8;1;41548;12.17;100000;2;1979");
- }
-
-*/
-
@Test
public void testDecode() throws Exception {
@@ -70,19 +24,23 @@ public class ST210ProtocolDecoderTest {
assertNotNull(decoder
.decode(null,
null,
- "SA200STT;317652;042;20120722;00:24:23;16d41;-15.618767;-056.083214;000.011;000.00;11;1;41557;12.21;000000;1;3205"));
+ "SA200STT;317652;042;20120722;00:24:23;4f310;-15.618767;-056.083214;000.011;000.00;11;1;41557;12.21;000000;1;3205"));
assertNotNull(decoder
.decode(null,
null,
- "SA200STT;315198;042;20120808;20:37:34;42948;-15.618731;-056.083216;000.007;000.00;12;1;48;0.00;000000;1;0127"));
+ "SA200STT;315198;042;20120808;20:37:34;3fac25;-15.618731;-056.083216;000.007;000.00;12;1;48;0.00;000000;1;0127"));
assertNotNull(decoder
.decode(null,
null,
- "SA200STT;315198;042;20120809;13:43:34;16d41;-15.618709;-056.083223;000.025;000.00;8;1;49;12.10;100000;2;0231"));
+ "SA200STT;315198;042;20120809;13:43:34;4f310;-15.618709;-056.083223;000.025;000.00;8;1;49;12.10;100000;2;0231"));
assertNotNull(decoder
.decode(null,
null,
"SA200EMG;317652;042;20120718;15:35:41;16d41;-15.618740;-056.083252;000.034;000.00;8;1;41548;12.17;110000;1"));
+ assertNull(decoder
+ .decode(null,
+ null,
+ "SA200ALV;317652"));
}
}