aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/WebDataHandler.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-11-02 17:01:53 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2015-11-02 17:01:53 +1300
commit2a8c9bd543d22adf86d8fa807f346fec804fc767 (patch)
treed5ed287751323e1201798abe2bdf916bca73a01a /src/org/traccar/WebDataHandler.java
parent82d01c84b4c3d9cb3a3b78371b6a45025276e9e9 (diff)
downloadtraccar-server-2a8c9bd543d22adf86d8fa807f346fec804fc767.tar.gz
traccar-server-2a8c9bd543d22adf86d8fa807f346fec804fc767.tar.bz2
traccar-server-2a8c9bd543d22adf86d8fa807f346fec804fc767.zip
Extend web data handler
Diffstat (limited to 'src/org/traccar/WebDataHandler.java')
-rw-r--r--src/org/traccar/WebDataHandler.java37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/org/traccar/WebDataHandler.java b/src/org/traccar/WebDataHandler.java
index c64ca8334..7e8fc1ec4 100644
--- a/src/org/traccar/WebDataHandler.java
+++ b/src/org/traccar/WebDataHandler.java
@@ -15,14 +15,18 @@
*/
package org.traccar;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
import java.util.Calendar;
import java.util.Formatter;
import java.util.Locale;
import java.util.TimeZone;
import org.traccar.helper.Checksum;
+import org.traccar.helper.Log;
import org.traccar.model.Device;
import org.traccar.model.Event;
+import org.traccar.model.MiscFormatter;
import org.traccar.model.Position;
public class WebDataHandler extends BaseDataHandler {
@@ -73,15 +77,42 @@ public class WebDataHandler extends BaseDataHandler {
Device device = Context.getIdentityManager().getDeviceById(position.getDeviceId());
+ String attributes = MiscFormatter.toJsonString(position.getAttributes());
+
String request = url
.replace("{uniqueId}", device.getUniqueId())
- .replace("{deviceId}", String.valueOf(device.getId()))
+ .replace("{deviceId}", String.valueOf(position.getDeviceId()))
+ .replace("{protocol}", String.valueOf(position.getProtocol()))
+ .replace("{deviceTime}", String.valueOf(position.getDeviceTime().getTime()))
.replace("{fixTime}", String.valueOf(position.getFixTime().getTime()))
- .replace("{latitude}", String.valueOf(position.getLatitude()))
+ .replace("{valid}", String.valueOf(position.getLatitude()))
+ .replace("{latitude}", String.valueOf(position.getValid()))
.replace("{longitude}", String.valueOf(position.getLongitude()))
- .replace("{gprmc}", formatSentence(position))
+ .replace("{altitude}", String.valueOf(position.getAltitude()))
+ .replace("{speed}", String.valueOf(position.getSpeed()))
+ .replace("{course}", String.valueOf(position.getCourse()))
.replace("{statusCode}", calculateStatus(position));
+ if (position.getAddress() != null) {
+ try {
+ request = request.replace("{address}", URLEncoder.encode(position.getAddress(), "UTF-8"));
+ } catch (UnsupportedEncodingException error) {
+ Log.warning(error);
+ }
+ }
+
+ if (request.contains("{attributes}")) {
+ try {
+ request = request.replace("{attributes}", URLEncoder.encode(attributes, "UTF-8"));
+ } catch (UnsupportedEncodingException error) {
+ Log.warning(error);
+ }
+ }
+
+ if (request.contains("{gprmc}")) {
+ request = request.replace("{gprmc}", formatSentence(position));
+ }
+
Context.getAsyncHttpClient().prepareGet(request).execute();
return position;