aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/protocol')
-rw-r--r--src/org/traccar/protocol/ApelProtocolDecoder.java16
-rw-r--r--src/org/traccar/protocol/AplicomProtocolDecoder.java22
-rw-r--r--src/org/traccar/protocol/Ardi01ProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/AtrackFrameDecoder.java6
-rw-r--r--src/org/traccar/protocol/AtrackProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/AutoFon45FrameDecoder.java4
-rw-r--r--src/org/traccar/protocol/AutoFon45ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/AutoFonFrameDecoder.java4
-rw-r--r--src/org/traccar/protocol/Avl301ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/BceProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/BlackKiteProtocolDecoder.java28
-rw-r--r--src/org/traccar/protocol/BoxProtocolDecoder.java16
-rw-r--r--src/org/traccar/protocol/CalAmpProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/CarTrackProtocolDecoder.java8
-rw-r--r--src/org/traccar/protocol/CarscopProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/CastelProtocolDecoder.java14
-rw-r--r--src/org/traccar/protocol/CellocatorFrameDecoder.java6
-rw-r--r--src/org/traccar/protocol/CellocatorProtocolDecoder.java26
-rw-r--r--src/org/traccar/protocol/EasyTrackProtocolDecoder.java8
-rw-r--r--src/org/traccar/protocol/EelinkProtocolDecoder.java20
-rw-r--r--src/org/traccar/protocol/EnforaProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/FreedomProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/GalileoFrameDecoder.java6
-rw-r--r--src/org/traccar/protocol/GalileoProtocolDecoder.java32
-rw-r--r--src/org/traccar/protocol/GatorProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/Gl100ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/GlobalSatProtocolDecoder.java14
-rw-r--r--src/org/traccar/protocol/GoSafeProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/GotopProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/Gps103ProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/Gps103ProtocolEncoder.java4
-rw-r--r--src/org/traccar/protocol/GpsGateProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/Gt02ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/Gt06FrameDecoder.java8
-rw-r--r--src/org/traccar/protocol/Gt06ProtocolDecoder.java12
-rw-r--r--src/org/traccar/protocol/Gt06ProtocolEncoder.java8
-rw-r--r--src/org/traccar/protocol/H02FrameDecoder.java10
-rw-r--r--src/org/traccar/protocol/H02ProtocolDecoder.java24
-rw-r--r--src/org/traccar/protocol/HaicomProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/IntellitracFrameDecoder.java12
-rw-r--r--src/org/traccar/protocol/IntellitracProtocolDecoder.java12
-rw-r--r--src/org/traccar/protocol/Jt600FrameDecoder.java4
-rw-r--r--src/org/traccar/protocol/Jt600ProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/KhdProtocolDecoder.java18
-rw-r--r--src/org/traccar/protocol/KhdProtocolEncoder.java4
-rw-r--r--src/org/traccar/protocol/LaipacProtocolDecoder.java8
-rw-r--r--src/org/traccar/protocol/M2mProtocolDecoder.java14
-rw-r--r--src/org/traccar/protocol/ManPowerProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/MaxonProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/MegastekProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/MeiligaoFrameDecoder.java6
-rw-r--r--src/org/traccar/protocol/MeiligaoProtocolDecoder.java18
-rw-r--r--src/org/traccar/protocol/MeitrackFrameDecoder.java4
-rw-r--r--src/org/traccar/protocol/MeitrackProtocolDecoder.java36
-rw-r--r--src/org/traccar/protocol/MeitrackProtocolEncoder.java4
-rw-r--r--src/org/traccar/protocol/MiniFinderProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/Mta6ProtocolDecoder.java42
-rw-r--r--src/org/traccar/protocol/MtxProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/MxtFrameDecoder.java2
-rw-r--r--src/org/traccar/protocol/MxtProtocolDecoder.java18
-rw-r--r--src/org/traccar/protocol/NavigilFrameDecoder.java8
-rw-r--r--src/org/traccar/protocol/NavigilProtocolDecoder.java104
-rw-r--r--src/org/traccar/protocol/NavisProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/NoranProtocolDecoder.java16
-rw-r--r--src/org/traccar/protocol/OrionFrameDecoder.java14
-rw-r--r--src/org/traccar/protocol/OrionProtocolDecoder.java28
-rw-r--r--src/org/traccar/protocol/OsmAndProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/PiligrimProtocolDecoder.java46
-rw-r--r--src/org/traccar/protocol/ProgressProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/Pt3000ProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/Pt502FrameDecoder.java12
-rw-r--r--src/org/traccar/protocol/RitiProtocolDecoder.java8
-rw-r--r--src/org/traccar/protocol/RuptelaProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/SanavProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/SkypatrolProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/Stl060FrameDecoder.java10
-rw-r--r--src/org/traccar/protocol/Stl060ProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/SuntechProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/SuntechProtocolEncoder.java4
-rw-r--r--src/org/traccar/protocol/T55ProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/TaipProtocolDecoder.java22
-rw-r--r--src/org/traccar/protocol/TelikProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/TeltonikaFrameDecoder.java6
-rw-r--r--src/org/traccar/protocol/TeltonikaProtocolDecoder.java52
-rw-r--r--src/org/traccar/protocol/Tk102ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/Tk103ProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/Tlt2hProtocolDecoder.java10
-rw-r--r--src/org/traccar/protocol/TopflytechProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/TotemProtocolDecoder.java14
-rw-r--r--src/org/traccar/protocol/TotemProtocolEncoder.java10
-rw-r--r--src/org/traccar/protocol/Tr20ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/TrackboxProtocolDecoder.java14
-rw-r--r--src/org/traccar/protocol/TramigoFrameDecoder.java4
-rw-r--r--src/org/traccar/protocol/TramigoProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/TytanProtocolDecoder.java28
-rw-r--r--src/org/traccar/protocol/TzoneProtocolDecoder.java82
-rw-r--r--src/org/traccar/protocol/UlbotechFrameDecoder.java2
-rw-r--r--src/org/traccar/protocol/UlbotechProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/V680ProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/VisiontekProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/WialonProtocolDecoder.java12
-rw-r--r--src/org/traccar/protocol/WondexFrameDecoder.java6
-rw-r--r--src/org/traccar/protocol/WondexProtocolDecoder.java14
-rw-r--r--src/org/traccar/protocol/XexunProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/XirgoProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/Xt013ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/YwtProtocolDecoder.java18
107 files changed, 623 insertions, 623 deletions
diff --git a/src/org/traccar/protocol/ApelProtocolDecoder.java b/src/org/traccar/protocol/ApelProtocolDecoder.java
index 09c1a79f1..c3e16a7dc 100644
--- a/src/org/traccar/protocol/ApelProtocolDecoder.java
+++ b/src/org/traccar/protocol/ApelProtocolDecoder.java
@@ -18,7 +18,7 @@ package org.traccar.protocol;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.TimeZone;
@@ -103,11 +103,11 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder {
boolean alarm = (type & 0x8000) != 0;
type = type & 0x7FFF;
buf.readUnsignedShort(); // length
-
+
if (alarm) {
sendSimpleMessage(channel, MSG_TYPE_ACK_ALARM);
}
-
+
if (type == MSG_TYPE_TRACKER_ID) {
Log.warning("Unsupported authentication type");
return null;
@@ -120,7 +120,7 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder {
length = buf.readUnsignedShort();
identify(buf.readBytes(length).toString(Charset.defaultCharset()), channel);
}
-
+
else if (type == MSG_TYPE_LAST_LOG_INDEX) {
long index = buf.readUnsignedInt();
if (index > 0) {
@@ -192,7 +192,7 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder {
// Satellites
position.set(Event.KEY_SATELLITES, buf.readUnsignedByte());
-
+
// Cell signal
position.set(Event.KEY_GSM, buf.readUnsignedByte());
@@ -205,12 +205,12 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder {
// Input/Output
position.set(Event.KEY_INPUT, buf.readUnsignedByte());
position.set(Event.KEY_OUTPUT, buf.readUnsignedByte());
-
+
// Analog sensors
for (int i = 1; i <= 8; i++) {
position.set(Event.PREFIX_ADC + i, buf.readUnsignedShort());
}
-
+
// Counters
position.set(Event.PREFIX_COUNT + 1, buf.readUnsignedInt());
position.set(Event.PREFIX_COUNT + 2, buf.readUnsignedInt());
@@ -222,7 +222,7 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder {
// Skip CRC
buf.readUnsignedInt();
-
+
if (type == MSG_TYPE_LOG_RECORDS) {
requestArchive(channel);
} else {
diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java
index 574ff09c3..a4d177ed0 100644
--- a/src/org/traccar/protocol/AplicomProtocolDecoder.java
+++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java
@@ -56,13 +56,13 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder {
if (validateImei(imei)) {
return imei;
}
-
+
// Try TC65 v2.8
imei = IMEI_BASE_TC65_V28 + ((unitId + 0xA8180) & 0xFFFFFF);
if (validateImei(imei)) {
return imei;
}
-
+
// Try TC65 v2.0
imei = IMEI_BASE_TC65_V20 + unitId;
if (validateImei(imei)) {
@@ -70,7 +70,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder {
}
}
-
+
return unitId;
}
@@ -148,7 +148,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder {
if ((selector & 0x0040) != 0) {
position.set(Event.KEY_INPUT, buf.readUnsignedByte());
}
-
+
// ADC
if ((selector & 0x0020) != 0) {
position.set(Event.PREFIX_ADC + 1, buf.readUnsignedShort());
@@ -162,13 +162,13 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder {
position.set(Event.KEY_POWER, buf.readUnsignedShort() / 1000.0);
position.set(Event.KEY_BATTERY, buf.readUnsignedShort());
}
-
+
// Pulse rate 1
if ((selector & 0x10000) != 0) {
buf.readUnsignedShort();
buf.readUnsignedInt();
}
-
+
// Pulse rate 2
if ((selector & 0x20000) != 0) {
buf.readUnsignedShort();
@@ -189,17 +189,17 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder {
if ((selector & 0x0040) != 0) {
position.set(Event.KEY_OUTPUT, buf.readUnsignedByte());
}
-
+
// Button
if ((selector & 0x0200) != 0) {
buf.skipBytes(6);
}
-
+
// Keypad
if ((selector & 0x0400) != 0) {
buf.readUnsignedByte();
}
-
+
// Altitude
if ((selector & 0x0800) != 0) {
position.setAltitude(buf.readShort());
@@ -325,8 +325,8 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder {
break;
}
}
- }
-
+ }
+
return position;
}
diff --git a/src/org/traccar/protocol/Ardi01ProtocolDecoder.java b/src/org/traccar/protocol/Ardi01ProtocolDecoder.java
index 723c5ddd6..c63b959cd 100644
--- a/src/org/traccar/protocol/Ardi01ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Ardi01ProtocolDecoder.java
@@ -22,7 +22,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -53,7 +53,7 @@ public class Ardi01ProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
String sentence = (String) msg;
-
+
// Parse message
Matcher parser = pattern.matcher(sentence);
if (!parser.matches()) {
@@ -81,19 +81,19 @@ public class Ardi01ProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, Integer.valueOf(parser.group(index++)));
time.set(Calendar.SECOND, Integer.valueOf(parser.group(index++)));
position.setTime(time.getTime());
-
+
// Location data
position.setLongitude(Double.valueOf(parser.group(index++)));
position.setLatitude(Double.valueOf(parser.group(index++)));
position.setSpeed(UnitsConverter.knotsFromKph(Double.valueOf(parser.group(index++))));
position.setCourse(Double.valueOf(parser.group(index++)));
position.setAltitude(Double.valueOf(parser.group(index++)));
-
+
// Satellites
int satellites = Integer.valueOf(parser.group(index++));
position.setValid(satellites >= 3);
position.set(Event.KEY_SATELLITES, satellites);
-
+
// Event
position.set(Event.KEY_EVENT, parser.group(index++));
diff --git a/src/org/traccar/protocol/AtrackFrameDecoder.java b/src/org/traccar/protocol/AtrackFrameDecoder.java
index 35db02baf..cda1ebb2b 100644
--- a/src/org/traccar/protocol/AtrackFrameDecoder.java
+++ b/src/org/traccar/protocol/AtrackFrameDecoder.java
@@ -23,17 +23,17 @@ import org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder;
public class AtrackFrameDecoder extends LengthFieldBasedFrameDecoder {
private static final int KEEPALIVE_LENGTH = 12;
-
+
public AtrackFrameDecoder() {
super(1024, 4, 2);
}
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Keep alive message
if (buf.readableBytes() >= KEEPALIVE_LENGTH &&
buf.getUnsignedShort(buf.readerIndex()) == 0xfe02) {
diff --git a/src/org/traccar/protocol/AtrackProtocolDecoder.java b/src/org/traccar/protocol/AtrackProtocolDecoder.java
index 1f777b12a..792f22c07 100644
--- a/src/org/traccar/protocol/AtrackProtocolDecoder.java
+++ b/src/org/traccar/protocol/AtrackProtocolDecoder.java
@@ -45,9 +45,9 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder {
channel.write(response, remoteAddress);
}
}
-
+
private static String readString(ChannelBuffer buf) {
-
+
String result = null;
int length = 0;
while (buf.getByte(buf.readerIndex() + length) != 0) {
@@ -58,10 +58,10 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder {
buf.skipBytes(length);
}
buf.readByte();
-
+
return result;
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
@@ -76,7 +76,7 @@ public class AtrackProtocolDecoder extends BaseProtocolDecoder {
}
return null;
}
-
+
buf.skipBytes(2); // prefix
buf.readUnsignedShort(); // checksum
buf.readUnsignedShort(); // length
diff --git a/src/org/traccar/protocol/AutoFon45FrameDecoder.java b/src/org/traccar/protocol/AutoFon45FrameDecoder.java
index e388273cf..8a96ceb4e 100644
--- a/src/org/traccar/protocol/AutoFon45FrameDecoder.java
+++ b/src/org/traccar/protocol/AutoFon45FrameDecoder.java
@@ -30,7 +30,7 @@ public class AutoFon45FrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
if (buf.readableBytes() < 12) {
return null;
@@ -45,7 +45,7 @@ public class AutoFon45FrameDecoder extends FrameDecoder {
length = 34;
break;
}
-
+
// Check length and return buffer
if (length != 0 && buf.readableBytes() >= length) {
return buf.readBytes(length);
diff --git a/src/org/traccar/protocol/AutoFon45ProtocolDecoder.java b/src/org/traccar/protocol/AutoFon45ProtocolDecoder.java
index 762cb4d8d..67438613c 100644
--- a/src/org/traccar/protocol/AutoFon45ProtocolDecoder.java
+++ b/src/org/traccar/protocol/AutoFon45ProtocolDecoder.java
@@ -44,7 +44,7 @@ public class AutoFon45ProtocolDecoder extends BaseProtocolDecoder {
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
int type = buf.getUnsignedByte(0);
diff --git a/src/org/traccar/protocol/AutoFonFrameDecoder.java b/src/org/traccar/protocol/AutoFonFrameDecoder.java
index f4b5c8f0b..e8de3ea66 100644
--- a/src/org/traccar/protocol/AutoFonFrameDecoder.java
+++ b/src/org/traccar/protocol/AutoFonFrameDecoder.java
@@ -31,7 +31,7 @@ public class AutoFonFrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
if (buf.readableBytes() < 12) {
return null;
@@ -49,7 +49,7 @@ public class AutoFonFrameDecoder extends FrameDecoder {
length = 257;
break;
}
-
+
// Check length and return buffer
if (length != 0 && buf.readableBytes() >= length) {
return buf.readBytes(length);
diff --git a/src/org/traccar/protocol/Avl301ProtocolDecoder.java b/src/org/traccar/protocol/Avl301ProtocolDecoder.java
index 8116958da..0aec2dad5 100644
--- a/src/org/traccar/protocol/Avl301ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Avl301ProtocolDecoder.java
@@ -23,7 +23,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
public class Avl301ProtocolDecoder extends BaseProtocolDecoder {
diff --git a/src/org/traccar/protocol/BceProtocolDecoder.java b/src/org/traccar/protocol/BceProtocolDecoder.java
index 4d4f262e8..af8e70d70 100644
--- a/src/org/traccar/protocol/BceProtocolDecoder.java
+++ b/src/org/traccar/protocol/BceProtocolDecoder.java
@@ -48,7 +48,7 @@ public class BceProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
String imei = String.format("%015d", buf.readLong());
if (!identify(imei, channel)) {
return null;
diff --git a/src/org/traccar/protocol/BlackKiteProtocolDecoder.java b/src/org/traccar/protocol/BlackKiteProtocolDecoder.java
index 4b78cf647..21c7c5b33 100644
--- a/src/org/traccar/protocol/BlackKiteProtocolDecoder.java
+++ b/src/org/traccar/protocol/BlackKiteProtocolDecoder.java
@@ -70,16 +70,16 @@ public class BlackKiteProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
buf.readUnsignedByte(); // header
int length = (buf.readUnsignedShort() & 0x7fff) + 3;
-
+
List<Position> positions = new LinkedList<>();
Set<Integer> tags = new HashSet<>();
boolean hasLocation = false;
Position position = new Position();
position.setProtocol(getProtocolName());
-
+
while (buf.readerIndex() < length) {
// Check if new message started
@@ -93,7 +93,7 @@ public class BlackKiteProtocolDecoder extends BaseProtocolDecoder {
position = new Position();
}
tags.add(tag);
-
+
switch (tag) {
case TAG_IMEI:
@@ -105,30 +105,30 @@ public class BlackKiteProtocolDecoder extends BaseProtocolDecoder {
case TAG_DATE:
position.setTime(new Date(buf.readUnsignedInt() * 1000));
break;
-
+
case TAG_COORDINATES:
hasLocation = true;
position.setValid((buf.readUnsignedByte() & 0xf0) == 0x00);
position.setLatitude(buf.readInt() / 1000000.0);
position.setLongitude(buf.readInt() / 1000000.0);
break;
-
+
case TAG_SPEED_COURSE:
position.setSpeed(buf.readUnsignedShort() * 0.0539957);
position.setCourse(buf.readUnsignedShort() * 0.1);
break;
-
+
case TAG_ALTITUDE:
position.setAltitude(buf.readShort());
break;
-
+
case TAG_STATUS:
int status = buf.readUnsignedShort();
position.set(Event.KEY_IGNITION, BitUtil.check(status, 9));
position.set(Event.KEY_ALARM, BitUtil.check(status, 15));
position.set(Event.KEY_POWER, BitUtil.check(status, 2));
break;
-
+
case TAG_DIGITAL_INPUTS:
int input = buf.readUnsignedShort();
for (int i = 0; i < 16; i++)
@@ -140,15 +140,15 @@ public class BlackKiteProtocolDecoder extends BaseProtocolDecoder {
for (int i = 0; i < 16; i++)
position.set(Event.PREFIX_IO + (i + 17), BitUtil.check(output, i));
break;
-
+
case TAG_INPUT_VOLTAGE1:
position.set(Event.PREFIX_ADC + 1, buf.readUnsignedShort() / 1000.0);
break;
-
+
case TAG_INPUT_VOLTAGE2:
position.set(Event.PREFIX_ADC + 2, buf.readUnsignedShort() / 1000.0);
break;
-
+
case TAG_INPUT_VOLTAGE3:
position.set(Event.PREFIX_ADC + 3, buf.readUnsignedShort() / 1000.0);
break;
@@ -165,14 +165,14 @@ public class BlackKiteProtocolDecoder extends BaseProtocolDecoder {
default:
break;
-
+
}
}
if (hasLocation && position.getFixTime() != null) {
positions.add(position);
}
-
+
if (!hasDeviceId()) {
Log.warning("Unknown device");
return null;
diff --git a/src/org/traccar/protocol/BoxProtocolDecoder.java b/src/org/traccar/protocol/BoxProtocolDecoder.java
index 3ec0dc9bd..2820bd826 100644
--- a/src/org/traccar/protocol/BoxProtocolDecoder.java
+++ b/src/org/traccar/protocol/BoxProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -53,9 +53,9 @@ public class BoxProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
String sentence = (String) msg;
-
+
if (sentence.startsWith("H,")) {
-
+
int index = sentence.indexOf(',', 2) + 1;
String id = sentence.substring(index, sentence.indexOf(',', index));
identify(id, channel);
@@ -68,7 +68,7 @@ public class BoxProtocolDecoder extends BaseProtocolDecoder {
}
}
-
+
else if (sentence.startsWith("L,") && hasDeviceId()) {
// Parse message
@@ -100,20 +100,20 @@ public class BoxProtocolDecoder extends BaseProtocolDecoder {
position.setLongitude(Double.parseDouble(parser.group(index++)));
position.setSpeed(UnitsConverter.knotsFromKph(Double.parseDouble(parser.group(index++))));
position.setCourse(Double.parseDouble(parser.group(index++)));
-
+
// Distance
position.set(Event.KEY_ODOMETER, parser.group(index++));
-
+
// Event
position.set(Event.KEY_EVENT, parser.group(index++));
-
+
// Status
int status = Integer.parseInt(parser.group(index++));
position.setValid((status & 0x04) == 0);
position.set(Event.KEY_STATUS, status);
return position;
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/CalAmpProtocolDecoder.java b/src/org/traccar/protocol/CalAmpProtocolDecoder.java
index f1cf6ae6f..d05acd94b 100644
--- a/src/org/traccar/protocol/CalAmpProtocolDecoder.java
+++ b/src/org/traccar/protocol/CalAmpProtocolDecoder.java
@@ -204,7 +204,7 @@ public class CalAmpProtocolDecoder extends BaseProtocolDecoder {
int accCount = buf.readUnsignedByte();
int accType = accCount >> 6;
accCount &= 0x3f;
-
+
if (type != MSG_MINI_EVENT_REPORT) {
buf.readUnsignedByte(); // reserved
}
diff --git a/src/org/traccar/protocol/CarTrackProtocolDecoder.java b/src/org/traccar/protocol/CarTrackProtocolDecoder.java
index a5089d227..5c9e883cc 100644
--- a/src/org/traccar/protocol/CarTrackProtocolDecoder.java
+++ b/src/org/traccar/protocol/CarTrackProtocolDecoder.java
@@ -17,7 +17,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -60,7 +60,7 @@ public class CarTrackProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
String sentence = (String) msg;
-
+
// Parse message
Matcher parser = pattern.matcher(sentence);
if (!parser.matches()) {
@@ -88,7 +88,7 @@ public class CarTrackProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, Integer.valueOf(parser.group(index++)));
time.set(Calendar.SECOND, Integer.valueOf(parser.group(index++)));
time.set(Calendar.MILLISECOND, Integer.valueOf(parser.group(index++)));
-
+
// Validity
position.setValid(parser.group(index++).compareTo("A") == 0);
@@ -121,7 +121,7 @@ public class CarTrackProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MONTH, Integer.valueOf(parser.group(index++)) - 1);
time.set(Calendar.YEAR, 2000 + Integer.valueOf(parser.group(index++)));
position.setTime(time.getTime());
-
+
// State
position.set(Event.PREFIX_IO + 1, parser.group(index++));
diff --git a/src/org/traccar/protocol/CarscopProtocolDecoder.java b/src/org/traccar/protocol/CarscopProtocolDecoder.java
index 41de9f130..b0be91dde 100644
--- a/src/org/traccar/protocol/CarscopProtocolDecoder.java
+++ b/src/org/traccar/protocol/CarscopProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -108,7 +108,7 @@ public class CarscopProtocolDecoder extends BaseProtocolDecoder {
// Course
position.setCourse(Double.valueOf(parser.group(index++)));
-
+
// State
position.set(Event.KEY_STATUS, parser.group(index++));
diff --git a/src/org/traccar/protocol/CastelProtocolDecoder.java b/src/org/traccar/protocol/CastelProtocolDecoder.java
index 95862cc9a..bd20def8b 100644
--- a/src/org/traccar/protocol/CastelProtocolDecoder.java
+++ b/src/org/traccar/protocol/CastelProtocolDecoder.java
@@ -86,9 +86,9 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder {
int version = buf.readUnsignedByte();
ChannelBuffer id = buf.readBytes(20);
int type = ChannelBuffers.swapShort(buf.readShort());
-
+
if (type == MSG_HEARTBEAT) {
-
+
if (channel != null) {
ChannelBuffer response = ChannelBuffers.directBuffer(ByteOrder.LITTLE_ENDIAN, 31);
response.writeByte(0x40); response.writeByte(0x40);
@@ -107,7 +107,7 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder {
type == MSG_GPS ||
type == MSG_ALARM ||
type == MSG_CURRENT_LOCATION) {
-
+
if (!identify(id.toString(Charset.defaultCharset()).trim(), channel, remoteAddress)) {
return null;
@@ -128,7 +128,7 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder {
response.writeByte(0x0D); response.writeByte(0x0A);
channel.write(response, remoteAddress);
}
-
+
}
if (type == MSG_GPS) {
@@ -138,7 +138,7 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder {
} else if (type == MSG_CURRENT_LOCATION) {
buf.readUnsignedShort();
}
-
+
buf.readUnsignedInt(); // ACC ON time
buf.readUnsignedInt(); // UTC time
long odometer = buf.readUnsignedInt();
@@ -147,7 +147,7 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedShort(); // current fuel consumption
long status = buf.readUnsignedInt();
buf.skipBytes(8);
-
+
int count = buf.readUnsignedByte();
List<Position> positions = new LinkedList<>();
@@ -184,7 +184,7 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder {
return position;
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/CellocatorFrameDecoder.java b/src/org/traccar/protocol/CellocatorFrameDecoder.java
index eb1c748b9..7fd542c0b 100644
--- a/src/org/traccar/protocol/CellocatorFrameDecoder.java
+++ b/src/org/traccar/protocol/CellocatorFrameDecoder.java
@@ -23,13 +23,13 @@ import org.jboss.netty.handler.codec.frame.FrameDecoder;
public class CellocatorFrameDecoder extends FrameDecoder {
private static final int MESSAGE_MINIMUM_LENGTH = 15;
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
int available = buf.readableBytes();
if (available < MESSAGE_MINIMUM_LENGTH) {
@@ -63,7 +63,7 @@ public class CellocatorFrameDecoder extends FrameDecoder {
if (length > 0 && available >= length) {
return buf.readBytes(length);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/CellocatorProtocolDecoder.java b/src/org/traccar/protocol/CellocatorProtocolDecoder.java
index 4aab9c207..7afe90913 100644
--- a/src/org/traccar/protocol/CellocatorProtocolDecoder.java
+++ b/src/org/traccar/protocol/CellocatorProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.nio.ByteOrder;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import org.jboss.netty.buffer.ChannelBuffer;
@@ -46,7 +46,7 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder {
}
return imei.toString();
}
-
+
static final int MSG_CLIENT_STATUS = 0;
static final int MSG_CLIENT_PROGRAMMING = 3;
static final int MSG_CLIENT_SERIAL_LOG = 7;
@@ -54,9 +54,9 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder {
static final int MSG_CLIENT_MODULAR = 9;
private static final int MSG_SERVER_ACKNOWLEDGE = 4;
-
+
private byte commandCount;
-
+
private void sendReply(Channel channel, long deviceId, byte packetNumber) {
ChannelBuffer reply = ChannelBuffers.directBuffer(ByteOrder.LITTLE_ENDIAN, 28);
reply.writeByte('M');
@@ -81,7 +81,7 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder {
channel.write(reply);
}
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
@@ -92,7 +92,7 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder {
buf.skipBytes(4); // system code
int type = buf.readUnsignedByte();
long deviceUniqueId = buf.readUnsignedInt();
-
+
if (type != MSG_CLIENT_SERIAL) {
buf.readUnsignedShort(); // communication control
}
@@ -105,7 +105,7 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder {
if (type == MSG_CLIENT_STATUS) {
Position position = new Position();
position.setProtocol(getProtocolName());
-
+
// Device identifier
if (!identify(String.valueOf(deviceUniqueId), channel)) {
return null;
@@ -118,23 +118,23 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder {
// Status
position.set(Event.KEY_STATUS, buf.getUnsignedByte(buf.readerIndex()) & 0x0f);
-
+
int operator = (buf.readUnsignedByte() & 0xf0) << 4;
operator += buf.readUnsignedByte();
-
+
buf.readUnsignedByte(); // reason data
buf.readUnsignedByte(); // reason
buf.readUnsignedByte(); // mode
buf.readUnsignedInt(); // IO
-
+
operator <<= 8;
operator += buf.readUnsignedByte();
position.set("operator", operator);
-
+
buf.readUnsignedInt(); // ADC
buf.readUnsignedMedium(); // Odometer
buf.skipBytes(6); // multi-purpose data
-
+
buf.readUnsignedShort(); // gps fix
buf.readUnsignedByte(); // location status
buf.readUnsignedByte(); // mode 1
@@ -148,7 +148,7 @@ public class CellocatorProtocolDecoder extends BaseProtocolDecoder {
position.setAltitude(buf.readInt() * 0.01);
position.setSpeed(UnitsConverter.knotsFromMps(buf.readInt() * 0.01));
position.setCourse(buf.readUnsignedShort() / Math.PI * 180.0 / 1000.0);
-
+
// Time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
diff --git a/src/org/traccar/protocol/EasyTrackProtocolDecoder.java b/src/org/traccar/protocol/EasyTrackProtocolDecoder.java
index 5cb73bbb0..3b07380ea 100644
--- a/src/org/traccar/protocol/EasyTrackProtocolDecoder.java
+++ b/src/org/traccar/protocol/EasyTrackProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -87,7 +87,7 @@ public class EasyTrackProtocolDecoder extends BaseProtocolDecoder {
// Validity
position.setValid(parser.group(index++).compareTo("A") == 0);
-
+
// Date
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -107,7 +107,7 @@ public class EasyTrackProtocolDecoder extends BaseProtocolDecoder {
hemisphere = parser.group(index++).equals("8") ? -1 : 1;
position.setLongitude(
hemisphere * Integer.parseInt(parser.group(index++), 16) / 600000.0);
-
+
position.setSpeed(Integer.parseInt(parser.group(index++), 16) / 100.0);
position.setCourse(Integer.parseInt(parser.group(index++), 16) / 100.0);
@@ -125,7 +125,7 @@ public class EasyTrackProtocolDecoder extends BaseProtocolDecoder {
// Odometer
position.set(Event.KEY_ODOMETER, Integer.parseInt(parser.group(index++), 16));
-
+
// Altitude
String altitude = parser.group(index++);
if (altitude != null) {
diff --git a/src/org/traccar/protocol/EelinkProtocolDecoder.java b/src/org/traccar/protocol/EelinkProtocolDecoder.java
index 8bcc70c19..08612dafd 100644
--- a/src/org/traccar/protocol/EelinkProtocolDecoder.java
+++ b/src/org/traccar/protocol/EelinkProtocolDecoder.java
@@ -76,45 +76,45 @@ public class EelinkProtocolDecoder extends BaseProtocolDecoder {
int type = buf.readUnsignedByte();
buf.readShort(); // length
int index = buf.readUnsignedShort();
-
+
if (type != MSG_GPS && type != MSG_DATA) {
sendResponse(channel, type, index);
}
-
+
if (type == MSG_LOGIN) {
identify(ChannelBufferTools.readHexString(buf, 16).substring(1), channel);
}
-
+
else if (hasDeviceId() &&
(type == MSG_GPS ||
type == MSG_ALARM ||
type == MSG_STATE ||
type == MSG_SMS)) {
-
+
// Create new position
Position position = new Position();
position.setDeviceId(getDeviceId());
-
+
position.setProtocol(getProtocolName());
position.set(Event.KEY_INDEX, index);
-
+
// Location
position.setTime(new Date(buf.readUnsignedInt() * 1000));
position.setLatitude(buf.readInt() / 1800000.0);
position.setLongitude(buf.readInt() / 1800000.0);
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedByte()));
position.setCourse(buf.readUnsignedShort());
-
+
// Cell
position.set(Event.KEY_CELL, ChannelBufferTools.readHexString(buf, 18));
-
+
// Validity
position.setValid((buf.readUnsignedByte() & 0x01) != 0);
-
+
if (type == MSG_ALARM) {
position.set(Event.KEY_ALARM, buf.readUnsignedByte());
}
-
+
if (type == MSG_STATE) {
position.set(Event.KEY_STATUS, buf.readUnsignedByte());
}
diff --git a/src/org/traccar/protocol/EnforaProtocolDecoder.java b/src/org/traccar/protocol/EnforaProtocolDecoder.java
index 91e18eadd..110aa050d 100644
--- a/src/org/traccar/protocol/EnforaProtocolDecoder.java
+++ b/src/org/traccar/protocol/EnforaProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/FreedomProtocolDecoder.java b/src/org/traccar/protocol/FreedomProtocolDecoder.java
index 5f2cd3f2f..d909d4426 100644
--- a/src/org/traccar/protocol/FreedomProtocolDecoder.java
+++ b/src/org/traccar/protocol/FreedomProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/GalileoFrameDecoder.java b/src/org/traccar/protocol/GalileoFrameDecoder.java
index 41a895553..3c4284fe0 100644
--- a/src/org/traccar/protocol/GalileoFrameDecoder.java
+++ b/src/org/traccar/protocol/GalileoFrameDecoder.java
@@ -23,13 +23,13 @@ import org.jboss.netty.handler.codec.frame.FrameDecoder;
public class GalileoFrameDecoder extends FrameDecoder {
private static final int MESSAGE_MINIMUM_LENGTH = 5;
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
if (buf.readableBytes() < MESSAGE_MINIMUM_LENGTH) {
return null;
@@ -40,7 +40,7 @@ public class GalileoFrameDecoder extends FrameDecoder {
if (buf.readableBytes() >= (length + MESSAGE_MINIMUM_LENGTH)) {
return buf.readBytes(length + MESSAGE_MINIMUM_LENGTH);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/GalileoProtocolDecoder.java b/src/org/traccar/protocol/GalileoProtocolDecoder.java
index 37a31de6e..0b4cba259 100644
--- a/src/org/traccar/protocol/GalileoProtocolDecoder.java
+++ b/src/org/traccar/protocol/GalileoProtocolDecoder.java
@@ -50,9 +50,9 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder {
private static final int TAG_ODOMETER = 0xd4;
private static final int TAG_REFRIGERATOR = 0x5b;
private static final int TAG_PRESSURE = 0x5c;
-
+
private static final Map<Integer, Integer> tagLengthMap = new HashMap<>();
-
+
static {
int[] l1 = {0x01,0x02,0x35,0x43,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd5,0x88,0x8a,0x8b,0x8c,0xa0,0xaf,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae};
int[] l2 = {0x04,0x10,0x34,0x40,0x41,0x42,0x45,0x46,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x60,0x61,0x62,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xd6,0xd7,0xd8,0xd9,0xda};
@@ -87,16 +87,16 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
buf.readUnsignedByte(); // header
int length = (buf.readUnsignedShort() & 0x7fff) + 3;
-
+
List<Position> positions = new LinkedList<>();
Set<Integer> tags = new HashSet<>();
boolean hasLocation = false;
Position position = new Position();
position.setProtocol(getProtocolName());
-
+
while (buf.readerIndex() < length) {
// Check if new message started
@@ -110,7 +110,7 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder {
position = new Position();
}
tags.add(tag);
-
+
switch (tag) {
case TAG_IMEI:
@@ -122,49 +122,49 @@ public class GalileoProtocolDecoder extends BaseProtocolDecoder {
case TAG_DATE:
position.setTime(new Date(buf.readUnsignedInt() * 1000));
break;
-
+
case TAG_COORDINATES:
hasLocation = true;
position.setValid((buf.readUnsignedByte() & 0xf0) == 0x00);
position.setLatitude(buf.readInt() / 1000000.0);
position.setLongitude(buf.readInt() / 1000000.0);
break;
-
+
case TAG_SPEED_COURSE:
position.setSpeed(buf.readUnsignedShort() * 0.0539957);
position.setCourse(buf.readUnsignedShort() * 0.1);
break;
-
+
case TAG_ALTITUDE:
position.setAltitude(buf.readShort());
break;
-
+
case TAG_STATUS:
position.set(Event.KEY_STATUS, buf.readUnsignedShort());
break;
-
+
case TAG_POWER:
position.set(Event.KEY_POWER, buf.readUnsignedShort());
break;
-
+
case TAG_BATTERY:
position.set(Event.KEY_BATTERY, buf.readUnsignedShort());
break;
-
+
case TAG_ODOMETER:
position.set(Event.KEY_ODOMETER, buf.readUnsignedInt());
break;
-
+
default:
buf.skipBytes(getTagLength(tag));
break;
-
+
}
}
if (hasLocation && position.getFixTime() != null) {
positions.add(position);
}
-
+
if (!hasDeviceId()) {
Log.warning("Unknown device");
return null;
diff --git a/src/org/traccar/protocol/GatorProtocolDecoder.java b/src/org/traccar/protocol/GatorProtocolDecoder.java
index d17e0f2f7..7bf0a2633 100644
--- a/src/org/traccar/protocol/GatorProtocolDecoder.java
+++ b/src/org/traccar/protocol/GatorProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import org.jboss.netty.buffer.ChannelBuffer;
@@ -45,12 +45,12 @@ public class GatorProtocolDecoder extends BaseProtocolDecoder {
private static final int PACKET_PICTURE_FRAME = 0x54;
private static final int PACKET_CAMERA_RESPONSE = 0x56;
private static final int PACKET_PICTURE_DATA = 0x57;
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
buf.skipBytes(2); // header
@@ -62,12 +62,12 @@ public class GatorProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedByte(), buf.readUnsignedByte(),
buf.readUnsignedByte(), buf.readUnsignedByte());
id = id.replaceFirst("^0+(?!$)", "");
-
+
if (type == PACKET_POSITION_DATA ||
type == PACKET_ROLLCALL_RESPONSE ||
type == PACKET_ALARM_DATA ||
type == PACKET_BLIND_AREA) {
-
+
// Create new position
Position position = new Position();
position.setProtocol(getProtocolName());
diff --git a/src/org/traccar/protocol/Gl100ProtocolDecoder.java b/src/org/traccar/protocol/Gl100ProtocolDecoder.java
index 26102e925..6756cc972 100644
--- a/src/org/traccar/protocol/Gl100ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gl100ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/GlobalSatProtocolDecoder.java b/src/org/traccar/protocol/GlobalSatProtocolDecoder.java
index 2b36d7a9e..e652d932b 100644
--- a/src/org/traccar/protocol/GlobalSatProtocolDecoder.java
+++ b/src/org/traccar/protocol/GlobalSatProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -34,7 +34,7 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder {
public GlobalSatProtocolDecoder(GlobalSatProtocol protocol) {
super(protocol);
-
+
format0 = Context.getConfig().getString(getProtocolName() + ".format0", "TSPRXAB27GHKLMnaicz*U!");
format1 = Context.getConfig().getString(getProtocolName() + ".format1", "SARY*U!");
}
@@ -169,7 +169,7 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder {
}
return position;
}
-
+
private static final Pattern pattern = Pattern.compile(
"\\$" +
"(\\d+)," + // IMEI
@@ -186,7 +186,7 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder {
"(\\d+\\.?\\d*)," + // Course
"(\\d+)," + // Satellites
"(\\d+\\.?\\d*)"); // HDOP
-
+
private Position decodeAlternative(Channel channel, String sentence) {
// Parse message
@@ -208,7 +208,7 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder {
// Validity
position.setValid(parser.group(index++).compareTo("1") != 0);
-
+
// Time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -257,13 +257,13 @@ public class GlobalSatProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
String sentence = (String) msg;
-
+
if (sentence.startsWith("GS")) {
return decodeOriginal(channel, sentence);
} else if (sentence.startsWith("$")) {
return decodeAlternative(channel, sentence);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/GoSafeProtocolDecoder.java b/src/org/traccar/protocol/GoSafeProtocolDecoder.java
index 843671440..8e2215405 100644
--- a/src/org/traccar/protocol/GoSafeProtocolDecoder.java
+++ b/src/org/traccar/protocol/GoSafeProtocolDecoder.java
@@ -53,7 +53,7 @@ public class GoSafeProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
String sentence = (String) msg;
-
+
if (channel != null) {
channel.write("1234");
}
diff --git a/src/org/traccar/protocol/GotopProtocolDecoder.java b/src/org/traccar/protocol/GotopProtocolDecoder.java
index 5bd2f8038..a71dfd7eb 100644
--- a/src/org/traccar/protocol/GotopProtocolDecoder.java
+++ b/src/org/traccar/protocol/GotopProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -96,7 +96,7 @@ public class GotopProtocolDecoder extends BaseProtocolDecoder {
// Speed
position.setSpeed(UnitsConverter.knotsFromKph(Double.valueOf(parser.group(index++))));
-
+
// Status
position.set(Event.KEY_STATUS, parser.group(index++));
diff --git a/src/org/traccar/protocol/Gps103ProtocolDecoder.java b/src/org/traccar/protocol/Gps103ProtocolDecoder.java
index a38e4f133..4a81ceb43 100644
--- a/src/org/traccar/protocol/Gps103ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gps103ProtocolDecoder.java
@@ -119,10 +119,10 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.YEAR, 2000 + Integer.valueOf(parser.group(index++)));
time.set(Calendar.MONTH, Integer.valueOf(parser.group(index++)) - 1);
time.set(Calendar.DAY_OF_MONTH, Integer.valueOf(parser.group(index++)));
-
+
int localHours = Integer.valueOf(parser.group(index++));
int localMinutes = Integer.valueOf(parser.group(index++));
-
+
String utcHours = parser.group(index++);
String utcMinutes = parser.group(index++);
@@ -137,7 +137,7 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
if (milliseconds != null) {
time.set(Calendar.MILLISECOND, Integer.valueOf(milliseconds));
}
-
+
// Timezone calculation
if (utcHours != null && utcMinutes != null) {
int deltaMinutes = (localHours - Integer.valueOf(utcHours)) * 60;
@@ -181,11 +181,11 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
position.setLongitude(longitude);
// Speed
- String speed = parser.group(index++);
+ String speed = parser.group(index++);
if (speed != null) {
position.setSpeed(Double.valueOf(speed));
}
-
+
// Course
String course = parser.group(index++);
if (course != null) {
diff --git a/src/org/traccar/protocol/Gps103ProtocolEncoder.java b/src/org/traccar/protocol/Gps103ProtocolEncoder.java
index db4bbc832..2b17acb72 100644
--- a/src/org/traccar/protocol/Gps103ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Gps103ProtocolEncoder.java
@@ -39,7 +39,7 @@ public class Gps103ProtocolEncoder extends StringProtocolEncoder implements Stri
@Override
protected Object encodeCommand(Command command) {
-
+
switch (command.getType()) {
case Command.TYPE_POSITION_STOP:
return formatCommand(command, "**,imei:{%s},A", Command.KEY_UNIQUE_ID);
@@ -56,7 +56,7 @@ public class Gps103ProtocolEncoder extends StringProtocolEncoder implements Stri
case Command.TYPE_ALARM_DISARM:
return formatCommand(command, "**,imei:{%s},M", Command.KEY_UNIQUE_ID);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/GpsGateProtocolDecoder.java b/src/org/traccar/protocol/GpsGateProtocolDecoder.java
index d76ef6aed..9e583aebd 100644
--- a/src/org/traccar/protocol/GpsGateProtocolDecoder.java
+++ b/src/org/traccar/protocol/GpsGateProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -51,14 +51,14 @@ public class GpsGateProtocolDecoder extends BaseProtocolDecoder {
channel.write(message + Crc.nmeaChecksum(message) + "\r\n");
}
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
String sentence = (String) msg;
-
+
// Process login
if (sentence.startsWith("$FRLIN,")) {
int beginIndex = sentence.indexOf(',', 7);
diff --git a/src/org/traccar/protocol/Gt02ProtocolDecoder.java b/src/org/traccar/protocol/Gt02ProtocolDecoder.java
index 5d1a03c77..6ff1a48cb 100644
--- a/src/org/traccar/protocol/Gt02ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gt02ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import org.jboss.netty.buffer.ChannelBuffer;
diff --git a/src/org/traccar/protocol/Gt06FrameDecoder.java b/src/org/traccar/protocol/Gt06FrameDecoder.java
index e0bb3b373..ed0d8d548 100644
--- a/src/org/traccar/protocol/Gt06FrameDecoder.java
+++ b/src/org/traccar/protocol/Gt06FrameDecoder.java
@@ -27,20 +27,20 @@ public class Gt06FrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
if (buf.readableBytes() < 5) {
return null;
}
-
+
int length = 2 + 2; // head and tail
-
+
if (buf.getByte(buf.readerIndex()) == 0x78) {
length += 1 + buf.getUnsignedByte(buf.readerIndex() + 2);
} else {
length += 2 + buf.getUnsignedShort(buf.readerIndex() + 2);
}
-
+
// Check length and return buffer
if (buf.readableBytes() >= length) {
return buf.readBytes(length);
diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
index e16432275..e6acc5e1b 100644
--- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
@@ -35,7 +35,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
public Gt06ProtocolDecoder(Gt06Protocol protocol) {
super(protocol);
-
+
if (Context.getConfig().hasKey(getProtocolName() + ".timezone")) {
forceTimeZone = true;
timeZone.setRawOffset(Context.getConfig().getInteger(getProtocolName() + ".timezone") * 1000);
@@ -98,12 +98,12 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
if (buf.readByte() != 0x78 || buf.readByte() != 0x78) {
return null;
}
-
+
int length = buf.readUnsignedByte(); // size
int dataLength = length - 5;
int type = buf.readUnsignedByte();
-
+
if (type == MSG_LOGIN) {
String imei = readImei(buf);
@@ -177,7 +177,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
position.setLatitude(latitude);
position.setLongitude(longitude);
-
+
if ((union & 0b0100_0000_0000_0000) != 0) {
position.set(Event.KEY_IGNITION, (union & 0b1000_0000_0000_0000) != 0);
}
@@ -218,7 +218,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
position.set(Event.KEY_GSM, buf.readUnsignedByte());
}
}
-
+
if (type == MSG_GPS_LBS_1 && buf.readableBytes() == 4 + 6) {
position.set(Event.KEY_ODOMETER, buf.readUnsignedInt());
}
@@ -232,7 +232,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
sendResponse(channel, type, index);
return position;
}
-
+
else {
buf.skipBytes(dataLength);
if (type != MSG_COMMAND_0 && type != MSG_COMMAND_1 && type != MSG_COMMAND_2) {
diff --git a/src/org/traccar/protocol/Gt06ProtocolEncoder.java b/src/org/traccar/protocol/Gt06ProtocolEncoder.java
index b879163d2..495e2fff5 100644
--- a/src/org/traccar/protocol/Gt06ProtocolEncoder.java
+++ b/src/org/traccar/protocol/Gt06ProtocolEncoder.java
@@ -44,13 +44,13 @@ public class Gt06ProtocolEncoder extends BaseProtocolEncoder {
buf.writeByte('\r');
buf.writeByte('\n');
-
+
return buf;
}
-
+
@Override
protected Object encodeCommand(Command command) {
-
+
switch (command.getType()) {
case Command.TYPE_ENGINE_STOP:
return encodeContent("RELAY,1#");
@@ -60,5 +60,5 @@ public class Gt06ProtocolEncoder extends BaseProtocolEncoder {
return null;
}
-
+
}
diff --git a/src/org/traccar/protocol/H02FrameDecoder.java b/src/org/traccar/protocol/H02FrameDecoder.java
index 1c9e9e6c1..0e3f78737 100644
--- a/src/org/traccar/protocol/H02FrameDecoder.java
+++ b/src/org/traccar/protocol/H02FrameDecoder.java
@@ -23,7 +23,7 @@ import org.jboss.netty.handler.codec.frame.FrameDecoder;
import org.traccar.helper.ChannelBufferTools;
public class H02FrameDecoder extends FrameDecoder {
-
+
private static final int MESSAGE_LENGTH = 32;
@Override
@@ -31,7 +31,7 @@ public class H02FrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
String marker = buf.toString(buf.readerIndex(), 1, Charset.defaultCharset());
while (!marker.equals("*") && !marker.equals("$") && buf.readableBytes() > 0) {
@@ -40,7 +40,7 @@ public class H02FrameDecoder extends FrameDecoder {
marker = buf.toString(buf.readerIndex(), 1, Charset.defaultCharset());
}
}
-
+
if (marker.equals("*")) {
// Return text message
@@ -48,14 +48,14 @@ public class H02FrameDecoder extends FrameDecoder {
if (index != null) {
return buf.readBytes(index + 1 - buf.readerIndex());
}
-
+
} else if (marker.equals("$")) {
// Return binary message
if (buf.readableBytes() >= MESSAGE_LENGTH) {
return buf.readBytes(MESSAGE_LENGTH);
}
-
+
}
return null;
diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java
index 9aee1f918..c93d0c6dd 100644
--- a/src/org/traccar/protocol/H02ProtocolDecoder.java
+++ b/src/org/traccar/protocol/H02ProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.net.SocketAddress;
import java.nio.charset.Charset;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -34,20 +34,20 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder {
public H02ProtocolDecoder(H02Protocol protocol) {
super(protocol);
}
-
+
private static double readCoordinate(ChannelBuffer buf, boolean lon) {
-
+
int degrees = ChannelBufferTools.readHexInteger(buf, 2);
if (lon) {
degrees = degrees * 10 + (buf.getUnsignedByte(buf.readerIndex()) >> 4);
}
-
+
double result = 0;
if (lon) {
result = buf.readUnsignedByte() & 0x0f;
}
result = result * 10 + ChannelBufferTools.readHexInteger(buf, lon ? 5 : 6) * 0.0001;
-
+
result /= 60;
result += degrees;
@@ -61,13 +61,13 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder {
position.set(Event.KEY_IGNITION, !BitUtil.check(status, 10));
position.set(Event.KEY_STATUS, status);
}
-
+
private Position decodeBinary(ChannelBuffer buf, Channel channel) {
-
+
// Create new position
Position position = new Position();
position.setProtocol(getProtocolName());
-
+
buf.readByte(); // marker
// Identification
@@ -86,7 +86,7 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MONTH, ChannelBufferTools.readHexInteger(buf, 2) - 1);
time.set(Calendar.YEAR, 2000 + ChannelBufferTools.readHexInteger(buf, 2));
position.setTime(time.getTime());
-
+
// Location
double latitude = readCoordinate(buf, false);
position.set(Event.KEY_POWER, buf.readByte());
@@ -122,7 +122,7 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder {
"(\\d{2})(\\d{2})(\\d{2})," + // Date (DDMMYY)
"(\\p{XDigit}{8})" + // Status
".*");
-
+
private Position decodeText(String sentence, Channel channel) {
// Parse message
@@ -188,10 +188,10 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder {
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
String marker = buf.toString(0, 1, Charset.defaultCharset());
-
+
// TODO X mode?
if (marker.equals("*")) {
diff --git a/src/org/traccar/protocol/HaicomProtocolDecoder.java b/src/org/traccar/protocol/HaicomProtocolDecoder.java
index 21a517697..3062c72d5 100644
--- a/src/org/traccar/protocol/HaicomProtocolDecoder.java
+++ b/src/org/traccar/protocol/HaicomProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -79,7 +79,7 @@ public class HaicomProtocolDecoder extends BaseProtocolDecoder {
// Firmware version
position.set(Event.KEY_VERSION, parser.group(index++));
-
+
// Date
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -112,7 +112,7 @@ public class HaicomProtocolDecoder extends BaseProtocolDecoder {
// Course
position.setCourse(Double.valueOf(parser.group(index++)) / 10);
-
+
// Additional data
position.set(Event.KEY_STATUS, parser.group(index++));
position.set(Event.KEY_GSM, parser.group(index++));
diff --git a/src/org/traccar/protocol/IntellitracFrameDecoder.java b/src/org/traccar/protocol/IntellitracFrameDecoder.java
index 461186310..a2e3499c4 100644
--- a/src/org/traccar/protocol/IntellitracFrameDecoder.java
+++ b/src/org/traccar/protocol/IntellitracFrameDecoder.java
@@ -24,26 +24,26 @@ import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
public class IntellitracFrameDecoder extends DelimiterBasedFrameDecoder {
private static final int MESSAGE_MINIMUM_LENGTH = 0;
-
+
private static final byte delimiter[] = { (byte) '\r', (byte) '\n' };
-
+
public IntellitracFrameDecoder(int maxFrameLength) {
super(maxFrameLength, ChannelBuffers.wrappedBuffer(delimiter));
}
-
+
// example of sync header: 0xFA 0xF8 0x1B 0x01 0x81 0x60 0x33 0x3C
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
if (buf.readableBytes() < MESSAGE_MINIMUM_LENGTH) {
return null;
}
-
+
// Check for sync packet
if (buf.getUnsignedShort(buf.readerIndex()) == 0xFAF8) {
ChannelBuffer syncMessage = buf.readBytes(8);
diff --git a/src/org/traccar/protocol/IntellitracProtocolDecoder.java b/src/org/traccar/protocol/IntellitracProtocolDecoder.java
index 6c8d5bdf9..052e7a508 100644
--- a/src/org/traccar/protocol/IntellitracProtocolDecoder.java
+++ b/src/org/traccar/protocol/IntellitracProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -67,7 +67,7 @@ public class IntellitracProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
String sentence = (String) msg;
-
+
// Parse message
Matcher parser = pattern.matcher(sentence);
if (!parser.matches()) {
@@ -84,7 +84,7 @@ public class IntellitracProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
// Date and time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -95,19 +95,19 @@ public class IntellitracProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, Integer.valueOf(parser.group(index++)));
time.set(Calendar.SECOND, Integer.valueOf(parser.group(index++)));
position.setTime(time.getTime());
-
+
// Location data
position.setLongitude(Double.valueOf(parser.group(index++)));
position.setLatitude(Double.valueOf(parser.group(index++)));
position.setSpeed(Double.valueOf(parser.group(index++)));
position.setCourse(Double.valueOf(parser.group(index++)));
position.setAltitude(Double.valueOf(parser.group(index++)));
-
+
// Satellites
int satellites = Integer.valueOf(parser.group(index++));
position.setValid(satellites >= 3);
position.set(Event.KEY_SATELLITES, satellites);
-
+
// Report identifier
position.set(Event.KEY_INDEX, Long.valueOf(parser.group(index++)));
diff --git a/src/org/traccar/protocol/Jt600FrameDecoder.java b/src/org/traccar/protocol/Jt600FrameDecoder.java
index d2fbc4ca8..8b8f4f642 100644
--- a/src/org/traccar/protocol/Jt600FrameDecoder.java
+++ b/src/org/traccar/protocol/Jt600FrameDecoder.java
@@ -35,10 +35,10 @@ public class Jt600FrameDecoder extends FrameDecoder {
if (available < 10) {
return null;
}
-
+
// Message identifier
char first = (char) buf.getByte(buf.readerIndex());
-
+
if (first == '$') {
// Check length
int length = buf.getUnsignedShort(buf.readerIndex() + 7) + 10;
diff --git a/src/org/traccar/protocol/Jt600ProtocolDecoder.java b/src/org/traccar/protocol/Jt600ProtocolDecoder.java
index 8c1d2997b..e6c75ef9d 100644
--- a/src/org/traccar/protocol/Jt600ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Jt600ProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -90,9 +90,9 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder {
// Course
position.setCourse(buf.readUnsignedByte() * 2.0);
-
+
if (version == 1) {
-
+
position.set(Event.KEY_SATELLITES, buf.readUnsignedByte());
// Power
diff --git a/src/org/traccar/protocol/KhdProtocolDecoder.java b/src/org/traccar/protocol/KhdProtocolDecoder.java
index 67afca20c..6d634e744 100644
--- a/src/org/traccar/protocol/KhdProtocolDecoder.java
+++ b/src/org/traccar/protocol/KhdProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import org.jboss.netty.buffer.ChannelBuffer;
@@ -102,33 +102,33 @@ public class KhdProtocolDecoder extends BaseProtocolDecoder {
// Flags
int flags = buf.readUnsignedByte();
position.setValid((flags & 0x80) != 0);
-
+
if (type == MSG_ALARM) {
-
+
buf.skipBytes(2);
} else {
// Odometer
position.set(Event.KEY_ODOMETER, buf.readUnsignedMedium());
-
+
// Status
buf.skipBytes(4);
-
+
// Other
buf.skipBytes(8);
}
-
+
// TODO: parse extra data
return position;
}
else if (type == MSG_LOGIN && channel != null) {
-
+
buf.skipBytes(4); // serial number
buf.readByte(); // reserved
-
+
ChannelBuffer response = ChannelBuffers.dynamicBuffer();
response.writeByte(0x29); response.writeByte(0x29); // header
response.writeByte(MSG_CONFIRMATION);
@@ -141,7 +141,7 @@ public class KhdProtocolDecoder extends BaseProtocolDecoder {
channel.write(response);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/KhdProtocolEncoder.java b/src/org/traccar/protocol/KhdProtocolEncoder.java
index 20d8eb40a..68196d65c 100644
--- a/src/org/traccar/protocol/KhdProtocolEncoder.java
+++ b/src/org/traccar/protocol/KhdProtocolEncoder.java
@@ -43,7 +43,7 @@ public class KhdProtocolEncoder extends BaseProtocolEncoder {
return buf;
}
-
+
@Override
protected Object encodeCommand(Command command) {
@@ -56,5 +56,5 @@ public class KhdProtocolEncoder extends BaseProtocolEncoder {
return null;
}
-
+
}
diff --git a/src/org/traccar/protocol/LaipacProtocolDecoder.java b/src/org/traccar/protocol/LaipacProtocolDecoder.java
index 1696041fc..f3884650d 100644
--- a/src/org/traccar/protocol/LaipacProtocolDecoder.java
+++ b/src/org/traccar/protocol/LaipacProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -48,7 +48,7 @@ public class LaipacProtocolDecoder extends BaseProtocolDecoder {
"(.)," + // Type
"[^\\*]+\\*" +
"(\\p{XDigit}{2})"); // Checksum
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
@@ -61,7 +61,7 @@ public class LaipacProtocolDecoder extends BaseProtocolDecoder {
channel.write(sentence + "\r\n");
return null;
}
-
+
// Parse message
Matcher parser = pattern.matcher(sentence);
if (!parser.matches()) {
@@ -129,7 +129,7 @@ public class LaipacProtocolDecoder extends BaseProtocolDecoder {
} else if (type.equals("X") || type.equals("4")) {
response = "$AVCFG,00000000,x*2D";
}
-
+
if (response != null && channel != null) {
channel.write(response + "\r\n");
}
diff --git a/src/org/traccar/protocol/M2mProtocolDecoder.java b/src/org/traccar/protocol/M2mProtocolDecoder.java
index 4f50c0411..6e57b5766 100644
--- a/src/org/traccar/protocol/M2mProtocolDecoder.java
+++ b/src/org/traccar/protocol/M2mProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import org.jboss.netty.buffer.ChannelBuffer;
@@ -31,7 +31,7 @@ public class M2mProtocolDecoder extends BaseProtocolDecoder {
public M2mProtocolDecoder(M2mProtocol protocol) {
super(protocol);
}
-
+
private boolean firstPacket = true;
@Override
@@ -50,7 +50,7 @@ public class M2mProtocolDecoder extends BaseProtocolDecoder {
}
if (firstPacket) {
-
+
firstPacket = false;
// Read IMEI
@@ -67,7 +67,7 @@ public class M2mProtocolDecoder extends BaseProtocolDecoder {
identify(imei.toString(), channel);
} else if (hasDeviceId()) {
-
+
// Create new position
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -83,7 +83,7 @@ public class M2mProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, buf.readUnsignedByte() & 0x7f);
time.set(Calendar.SECOND, buf.readUnsignedByte() & 0x7f);
position.setTime(time.getTime());
-
+
// Location
int degrees = buf.readUnsignedByte();
double latitude = buf.readUnsignedByte();
@@ -100,14 +100,14 @@ public class M2mProtocolDecoder extends BaseProtocolDecoder {
longitude += buf.readUnsignedByte() / 10000.0;
longitude /= 60;
longitude += degrees;
-
+
if ((b & 0x80) != 0) {
longitude = -longitude;
}
if ((b & 0x40) != 0) {
latitude = -latitude;
}
-
+
position.setLatitude(latitude);
position.setLongitude(longitude);
position.setSpeed(buf.readUnsignedByte());
diff --git a/src/org/traccar/protocol/ManPowerProtocolDecoder.java b/src/org/traccar/protocol/ManPowerProtocolDecoder.java
index d62c24a68..dc5775581 100644
--- a/src/org/traccar/protocol/ManPowerProtocolDecoder.java
+++ b/src/org/traccar/protocol/ManPowerProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -76,7 +76,7 @@ public class ManPowerProtocolDecoder extends BaseProtocolDecoder {
// Alarm message
position.set(Event.KEY_STATUS, parser.group(index++));
-
+
// Date
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
diff --git a/src/org/traccar/protocol/MaxonProtocolDecoder.java b/src/org/traccar/protocol/MaxonProtocolDecoder.java
index 8deb61abf..2308e9388 100644
--- a/src/org/traccar/protocol/MaxonProtocolDecoder.java
+++ b/src/org/traccar/protocol/MaxonProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/MegastekProtocolDecoder.java b/src/org/traccar/protocol/MegastekProtocolDecoder.java
index fa6c7495f..c07ce38ff 100644
--- a/src/org/traccar/protocol/MegastekProtocolDecoder.java
+++ b/src/org/traccar/protocol/MegastekProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -73,7 +73,7 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder {
".*"); // Checksum
private boolean parseGPRMC(String gprmc, Position position) {
-
+
// Parse message
Matcher parser = patternGPRMC.matcher(gprmc);
if (!parser.matches()) {
@@ -120,7 +120,7 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.DAY_OF_MONTH, Integer.valueOf(parser.group(index++)));
time.set(Calendar.MONTH, Integer.valueOf(parser.group(index++)) - 1);
time.set(Calendar.YEAR, 2000 + Integer.valueOf(parser.group(index++)));
- position.setTime(time.getTime());
+ position.setTime(time.getTime());
return true;
}
@@ -220,7 +220,7 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
}
} else {
@@ -377,7 +377,7 @@ public class MegastekProtocolDecoder extends BaseProtocolDecoder {
return position;
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
diff --git a/src/org/traccar/protocol/MeiligaoFrameDecoder.java b/src/org/traccar/protocol/MeiligaoFrameDecoder.java
index e54a44286..6dcc6fd9c 100644
--- a/src/org/traccar/protocol/MeiligaoFrameDecoder.java
+++ b/src/org/traccar/protocol/MeiligaoFrameDecoder.java
@@ -21,7 +21,7 @@ import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.frame.FrameDecoder;
public class MeiligaoFrameDecoder extends FrameDecoder {
-
+
private static final int MESSAGE_HEADER = 4;
@Override
@@ -29,12 +29,12 @@ public class MeiligaoFrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Strip not '$' (0x24) bytes from the beginning
while (buf.readable() && buf.getUnsignedByte(buf.readerIndex()) != 0x24) {
buf.readByte();
}
-
+
// Check length and return buffer
if (buf.readableBytes() >= MESSAGE_HEADER) {
int length = buf.getUnsignedShort(buf.readerIndex() + 2);
diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java
index faf3a5baf..e50b4f60b 100644
--- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java
+++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java
@@ -18,7 +18,7 @@ package org.traccar.protocol;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.charset.Charset;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -73,13 +73,13 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder {
private static final int MSG_SERVER = 0x0002;
private static final int MSG_LOGIN = 0x5000;
private static final int MSG_LOGIN_RESPONSE = 0x4000;
-
+
private static final int MSG_POSITION = 0x9955;
private static final int MSG_POSITION_LOGGED = 0x9016;
private static final int MSG_ALARM = 0x9999;
private static final int MSG_RFID = 0x9966;
-
+
private boolean identify(ChannelBuffer buf, Channel channel) {
String id = "";
@@ -107,14 +107,14 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder {
return identify(id, channel);
}
-
+
private static void sendResponse(
Channel channel, ChannelBuffer id, int type, ChannelBuffer msg) {
-
+
if (channel != null) {
ChannelBuffer buf = ChannelBuffers.buffer(
2 + 2 + id.readableBytes() + 2 + msg.readableBytes() + 2 + 2);
-
+
buf.writeByte('@');
buf.writeByte('@');
buf.writeShort(buf.capacity());
@@ -128,7 +128,7 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder {
channel.write(buf);
}
}
-
+
private String getMeiligaoServer(Channel channel) {
String server = Context.getConfig().getString(getProtocolName() + ".server");
if (server == null) {
@@ -142,14 +142,14 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder {
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
buf.skipBytes(2); // header
buf.readShort(); // length
ChannelBuffer id = buf.readBytes(7);
int command = buf.readUnsignedShort();
ChannelBuffer response;
-
+
switch (command) {
case MSG_LOGIN:
if (channel != null) {
diff --git a/src/org/traccar/protocol/MeitrackFrameDecoder.java b/src/org/traccar/protocol/MeitrackFrameDecoder.java
index 40be60358..509e24da2 100644
--- a/src/org/traccar/protocol/MeitrackFrameDecoder.java
+++ b/src/org/traccar/protocol/MeitrackFrameDecoder.java
@@ -23,7 +23,7 @@ import org.jboss.netty.handler.codec.frame.FrameDecoder;
import org.traccar.helper.ChannelBufferTools;
public class MeitrackFrameDecoder extends FrameDecoder {
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
@@ -33,7 +33,7 @@ public class MeitrackFrameDecoder extends FrameDecoder {
if (buf.readableBytes() < 10) {
return null;
}
-
+
Integer index = ChannelBufferTools.find(buf, buf.readerIndex(), buf.writerIndex(), ",");
if (index != null)
{
diff --git a/src/org/traccar/protocol/MeitrackProtocolDecoder.java b/src/org/traccar/protocol/MeitrackProtocolDecoder.java
index ba7841a8b..8eabcce42 100644
--- a/src/org/traccar/protocol/MeitrackProtocolDecoder.java
+++ b/src/org/traccar/protocol/MeitrackProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
@@ -139,7 +139,7 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
position.set("runtime", parser.group(index++));
position.set(Event.KEY_CELL, parser.group(index++));
position.set(Event.KEY_STATUS, parser.group(index++));
-
+
// ADC
String adc1 = parser.group(index++);
if (adc1 != null) {
@@ -178,10 +178,10 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
private List<Position> decodeBinaryMessage(Channel channel, ChannelBuffer buf) {
List<Position> positions = new LinkedList<>();
-
+
String flag = buf.toString(2, 1, Charset.defaultCharset());
int index = ChannelBufferTools.find(buf, 0, buf.readableBytes(), ",");
-
+
// Identification
String imei = buf.toString(index + 1, 15, Charset.defaultCharset());
if (!identify(imei, channel)) {
@@ -189,20 +189,20 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
}
buf.skipBytes(index + 1 + 15 + 1 + 3 + 1 + 2 + 2 + 4);
-
+
while (buf.readableBytes() >= 0x34) {
-
+
Position position = new Position();
position.setProtocol(getProtocolName());
position.setDeviceId(getDeviceId());
-
+
// Event
position.set(Event.KEY_EVENT, buf.readUnsignedByte());
-
+
// Location
position.setLatitude(buf.readInt() * 0.000001);
position.setLongitude(buf.readInt() * 0.000001);
-
+
// Time (946684800 - timestamp for 2000-01-01)
position.setTime(new Date((946684800 + buf.readUnsignedInt()) * 1000));
@@ -211,7 +211,7 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
// Satellites
position.set(Event.KEY_SATELLITES, buf.readUnsignedByte());
-
+
// GSM Signal
position.set(Event.KEY_GSM, buf.readUnsignedByte());
@@ -234,16 +234,16 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedShort() + "|" + buf.readUnsignedShort() + "|" +
buf.readUnsignedShort() + "|" + buf.readUnsignedShort());
position.set(Event.KEY_STATUS, buf.readUnsignedShort());
-
+
// ADC
position.set(Event.PREFIX_ADC + 1, buf.readUnsignedShort());
position.set(Event.KEY_BATTERY, buf.readUnsignedShort() * 0.01);
position.set(Event.KEY_POWER, buf.readUnsignedShort());
-
+
buf.readUnsignedInt(); // geo-fence
positions.add(position);
}
-
+
// Delete recorded data
if (channel != null) {
StringBuilder command = new StringBuilder("@@");
@@ -254,21 +254,21 @@ public class MeitrackProtocolDecoder extends BaseProtocolDecoder {
command.append(String.format("%02x\r\n", checksum & 0xff).toUpperCase());
channel.write(command.toString());
}
-
+
return positions;
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
// Find type
Integer index = ChannelBufferTools.find(buf, 0, buf.readableBytes(), ",");
index = ChannelBufferTools.find(buf, index + 1, buf.readableBytes(), ",");
-
+
String type = buf.toString(index + 1, 3, Charset.defaultCharset());
if (type.equals("CCC")) {
return decodeBinaryMessage(channel, buf);
diff --git a/src/org/traccar/protocol/MeitrackProtocolEncoder.java b/src/org/traccar/protocol/MeitrackProtocolEncoder.java
index 73f3d01e4..06fad3b69 100644
--- a/src/org/traccar/protocol/MeitrackProtocolEncoder.java
+++ b/src/org/traccar/protocol/MeitrackProtocolEncoder.java
@@ -22,7 +22,7 @@ public class MeitrackProtocolEncoder extends StringProtocolEncoder {
@Override
protected Object encodeCommand(Command command) {
-
+
switch (command.getType()) {
case Command.TYPE_ENGINE_STOP:
return formatCommand(command, "@@M33,{%s},C01,0,12222*18\r\n", Command.KEY_UNIQUE_ID);
@@ -33,7 +33,7 @@ public class MeitrackProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ALARM_DISARM:
return formatCommand(command, "@@M33,{%s},C01,0,22022*18\r\n", Command.KEY_UNIQUE_ID);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java
index ae7731025..12d77e4cc 100644
--- a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java
+++ b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -47,7 +47,7 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder {
"(\\d+)," + // Satellites in use
"(\\d+)," + // Satellites in view
"0");
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
@@ -92,7 +92,7 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder {
position.setLongitude(Double.valueOf(parser.group(index++)));
position.setSpeed(Double.valueOf(parser.group(index++)));
position.setCourse(Double.valueOf(parser.group(index++)));
-
+
// Flags
String flags = parser.group(index++);
position.set(Event.KEY_FLAGS, flags);
diff --git a/src/org/traccar/protocol/Mta6ProtocolDecoder.java b/src/org/traccar/protocol/Mta6ProtocolDecoder.java
index 86b191b0b..4fb7d0ecd 100644
--- a/src/org/traccar/protocol/Mta6ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Mta6ProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
@@ -38,7 +38,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
-
+
private final boolean simple;
public Mta6ProtocolDecoder(Protocol protocol, boolean simple) {
@@ -51,7 +51,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
HttpVersion.HTTP_1_1, HttpResponseStatus.CONTINUE);
channel.write(response);
}
-
+
private void sendResponse(Channel channel, short packetId, short packetCount) {
HttpResponse response = new DefaultHttpResponse(
HttpVersion.HTTP_1_1, HttpResponseStatus.OK);
@@ -61,15 +61,15 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
end.writeByte(packetId);
end.writeByte(packetCount);
end.writeByte(0);
-
+
response.setContent(ChannelBuffers.wrappedBuffer(begin, end));
channel.write(response);
}
-
+
private static class FloatReader {
-
+
private int previousFloat;
-
+
public float readFloat(ChannelBuffer buf) {
switch (buf.getUnsignedByte(buf.readerIndex()) >> 6)
{
@@ -88,13 +88,13 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
}
return Float.intBitsToFloat(previousFloat);
}
-
+
}
-
+
private static class TimeReader extends FloatReader {
-
+
private long weekNumber;
-
+
public Date readTime(ChannelBuffer buf) {
long weekTime = (long) (readFloat(buf) * 1000);
if (weekNumber == 0) {
@@ -110,16 +110,16 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
return new Date(offset + weekNumber * 7 * 24 * 60 * 60 * 1000 + weekTime);
}
-
+
}
private List<Position> parseFormatA(ChannelBuffer buf) {
List<Position> positions = new LinkedList<>();
-
+
FloatReader latitudeReader = new FloatReader();
FloatReader longitudeReader = new FloatReader();
TimeReader timeReader = new TimeReader();
-
+
try {
while (buf.readable()) {
Position position = new Position();
@@ -196,7 +196,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
}
} catch (IndexOutOfBoundsException error) {
}
-
+
return positions;
}
@@ -270,17 +270,17 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
position.setValid(satellites >= 3);
position.set(Event.KEY_SATELLITES, satellites);
}
-
+
// TODO: process other data
return position;
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
HttpRequest request = (HttpRequest) msg;
ChannelBuffer buf = request.getContent();
@@ -295,7 +295,7 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
}
buf.skipBytes(uniqueId.length());
buf.skipBytes("&bin=".length());
-
+
// Read header
short packetId = buf.readUnsignedByte();
short offset = buf.readUnsignedByte(); // dataOffset
@@ -303,13 +303,13 @@ public class Mta6ProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedByte(); // reserved
short parameters = buf.readUnsignedByte(); // TODO: handle timezone
buf.skipBytes(offset - 5);
-
+
// Send response
if (channel != null) {
sendContinue(channel);
sendResponse(channel, packetId, packetCount);
}
-
+
// Parse data
if (packetId == 0x31 || packetId == 0x32 || packetId == 0x36) {
if (simple) {
diff --git a/src/org/traccar/protocol/MtxProtocolDecoder.java b/src/org/traccar/protocol/MtxProtocolDecoder.java
index 5fdb657e9..edb10aacf 100644
--- a/src/org/traccar/protocol/MtxProtocolDecoder.java
+++ b/src/org/traccar/protocol/MtxProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -80,7 +80,7 @@ public class MtxProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
// Date
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
diff --git a/src/org/traccar/protocol/MxtFrameDecoder.java b/src/org/traccar/protocol/MxtFrameDecoder.java
index 56a90c765..23dc64d01 100644
--- a/src/org/traccar/protocol/MxtFrameDecoder.java
+++ b/src/org/traccar/protocol/MxtFrameDecoder.java
@@ -30,7 +30,7 @@ public class MxtFrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
if (buf.readableBytes() < 2) {
return null;
}
diff --git a/src/org/traccar/protocol/MxtProtocolDecoder.java b/src/org/traccar/protocol/MxtProtocolDecoder.java
index 194e0fb71..9f7207bc4 100644
--- a/src/org/traccar/protocol/MxtProtocolDecoder.java
+++ b/src/org/traccar/protocol/MxtProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import org.jboss.netty.buffer.ChannelBuffer;
@@ -101,15 +101,15 @@ public class MxtProtocolDecoder extends BaseProtocolDecoder {
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedByte()));
int inputMask = buf.readUnsignedByte();
-
+
if (BitUtil.check(infoGroups, 0)) {
buf.skipBytes(8); // waypoints
}
-
+
if (BitUtil.check(infoGroups, 1)) {
buf.skipBytes(8); // wireless accessory
}
-
+
if (BitUtil.check(infoGroups, 2)) {
position.set(Event.KEY_SATELLITES, buf.readUnsignedByte());
position.set(Event.KEY_HDOP, buf.readUnsignedByte());
@@ -119,24 +119,24 @@ public class MxtProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedByte(); // input voltage
position.set(Event.PREFIX_TEMP + 1, buf.readByte());
}
-
+
if (BitUtil.check(infoGroups, 3)) {
position.set(Event.KEY_ODOMETER, buf.readUnsignedInt());
}
-
+
if (BitUtil.check(infoGroups, 4)) {
position.set("hours", buf.readUnsignedInt());
}
-
+
if (BitUtil.check(infoGroups, 5)) {
buf.readUnsignedInt(); // reason
}
-
+
if (BitUtil.check(infoGroups, 6)) {
position.set(Event.KEY_POWER, buf.readUnsignedShort() * 0.001);
position.set(Event.KEY_BATTERY, buf.readUnsignedShort());
}
-
+
if (BitUtil.check(infoGroups, 7)) {
position.set(Event.KEY_RFID, buf.readUnsignedInt());
}
diff --git a/src/org/traccar/protocol/NavigilFrameDecoder.java b/src/org/traccar/protocol/NavigilFrameDecoder.java
index 48328b2e5..7a8989115 100644
--- a/src/org/traccar/protocol/NavigilFrameDecoder.java
+++ b/src/org/traccar/protocol/NavigilFrameDecoder.java
@@ -24,24 +24,24 @@ public class NavigilFrameDecoder extends FrameDecoder {
private static final int MESSAGE_HEADER = 20;
private static final long PREAMBLE = 0x2477F5F6;
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
if (buf.readableBytes() < MESSAGE_HEADER) {
return null;
}
-
+
// Check for preamble
boolean hasPreamble = false;
if (buf.getUnsignedInt(buf.readerIndex()) == PREAMBLE) {
hasPreamble = true;
}
-
+
// Check length and return buffer
int length = buf.getUnsignedShort(buf.readerIndex() + 6);
if (buf.readableBytes() >= length) {
diff --git a/src/org/traccar/protocol/NavigilProtocolDecoder.java b/src/org/traccar/protocol/NavigilProtocolDecoder.java
index 7938fd7cc..3e38890d4 100644
--- a/src/org/traccar/protocol/NavigilProtocolDecoder.java
+++ b/src/org/traccar/protocol/NavigilProtocolDecoder.java
@@ -32,7 +32,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
public NavigilProtocolDecoder(NavigilProtocol protocol) {
super(protocol);
}
-
+
private static final int LEAP_SECONDS_DELTA = 25;
private static final int MESSAGE_ERROR = 2;
@@ -50,18 +50,18 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
private static final int MESSAGE_TRACKING_DATA = 18;
private static final int MESSAGE_MOTION_ALARM = 19;
private static final int MESSAGE_ACKNOWLEDGEMENT = 255;
-
+
private static Date convertTimestamp(long timestamp) {
return new Date((timestamp - LEAP_SECONDS_DELTA) * 1000l);
}
-
+
private int senderSequenceNumber = 1;
-
+
private void sendAcknowledgment(Channel channel, int sequenceNumber) {
ChannelBuffer data = ChannelBuffers.directBuffer(ByteOrder.LITTLE_ENDIAN, 4);
data.writeShort(sequenceNumber);
data.writeShort(0); // OK
-
+
ChannelBuffer header = ChannelBuffers.directBuffer(ByteOrder.LITTLE_ENDIAN, 20);
header.writeByte(1); header.writeByte(0);
header.writeShort(senderSequenceNumber++);
@@ -71,12 +71,12 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
header.writeShort(Crc.crc16X25Ccitt(data.toByteBuffer()));
header.writeInt(0);
header.writeInt((int) (System.currentTimeMillis() / 1000) + LEAP_SECONDS_DELTA);
-
+
if (channel != null) {
channel.write(ChannelBuffers.copiedBuffer(header, data));
}
}
-
+
private Position parseUnitReport(ChannelBuffer buf, int sequenceNumber) {
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -84,34 +84,34 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
position.setValid(true);
position.set(Event.KEY_INDEX, sequenceNumber);
position.setDeviceId(getDeviceId());
-
+
buf.readUnsignedShort(); // report trigger
buf.readUnsignedShort(); // flags
-
+
position.setLatitude(buf.readInt() * 0.0000001);
position.setLongitude(buf.readInt() * 0.0000001);
position.setAltitude( buf.readUnsignedShort());
-
+
buf.readUnsignedShort(); // satellites in fix
buf.readUnsignedShort(); // satellites in track
buf.readUnsignedShort(); // GPS antenna state
-
+
position.setSpeed(buf.readUnsignedShort() * 0.194384);
position.setCourse(buf.readUnsignedShort());
-
+
buf.readUnsignedInt(); // distance
buf.readUnsignedInt(); // delta distance
position.set(Event.KEY_BATTERY, buf.readUnsignedShort() * 0.001);
-
+
buf.readUnsignedShort(); // battery charger status
-
+
position.setTime(convertTimestamp(buf.readUnsignedInt()));
-
+
// TODO: a lot of other stuff
return position;
}
-
+
private Position parseTg2Report(ChannelBuffer buf, int sequenceNumber) {
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -119,23 +119,23 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
position.setValid(true);
position.set(Event.KEY_INDEX, sequenceNumber);
position.setDeviceId(getDeviceId());
-
+
buf.readUnsignedShort(); // report trigger
buf.readUnsignedByte(); // reserved
buf.readUnsignedByte(); // assisted GPS age
-
+
position.setTime(convertTimestamp(buf.readUnsignedInt()));
-
+
position.setLatitude(buf.readInt() * 0.0000001);
position.setLongitude(buf.readInt() * 0.0000001);
position.setAltitude(buf.readUnsignedShort());
-
+
buf.readUnsignedByte(); // satellites in fix
buf.readUnsignedByte(); // satellites in track
-
+
position.setSpeed(buf.readUnsignedShort() * 0.194384);
position.setCourse(buf.readUnsignedShort());
-
+
buf.readUnsignedInt(); // distance
buf.readUnsignedShort(); // maximum speed
buf.readUnsignedShort(); // minimum speed
@@ -144,11 +144,11 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedShort(); // VSAUT2 voltage
buf.readUnsignedShort(); // solar voltage
position.set(Event.KEY_BATTERY, buf.readUnsignedShort() * 0.001);
-
+
// TODO: a lot of other stuff
return position;
}
-
+
private Position parsePositionReport(ChannelBuffer buf, int sequenceNumber, long timestamp) {
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -156,20 +156,20 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
position.set(Event.KEY_INDEX, sequenceNumber);
position.setDeviceId(getDeviceId());
position.setTime(convertTimestamp(timestamp));
-
+
position.setLatitude(buf.readMedium() * 0.00002);
position.setLongitude(buf.readMedium() * 0.00002);
-
+
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedByte()));
position.setCourse(buf.readUnsignedByte() * 2);
-
+
short flags = buf.readUnsignedByte();
position.setValid((flags & 0x80) == 0x80 && (flags & 0x40) == 0x40);
-
+
buf.readUnsignedByte(); // reserved
return position;
}
-
+
private Position parsePositionReport2(ChannelBuffer buf, int sequenceNumber, long timestamp) {
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -177,22 +177,22 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
position.set(Event.KEY_INDEX, sequenceNumber);
position.setDeviceId(getDeviceId());
position.setTime(convertTimestamp(timestamp));
-
+
position.setLatitude(buf.readInt() * 0.0000001);
position.setLongitude(buf.readInt() * 0.0000001);
-
+
buf.readUnsignedByte(); // report trigger
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedByte()));
-
+
short flags = buf.readUnsignedByte();
position.setValid((flags & 0x80) == 0x80 && (flags & 0x40) == 0x40);
-
+
int x = buf.readUnsignedByte(); // satellites in fix
buf.readUnsignedInt(); // distance
return position;
}
-
+
private Position parseSnapshot4(ChannelBuffer buf, int sequenceNumber) {
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -204,22 +204,22 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedByte(); // position fix source
buf.readUnsignedByte(); // GNSS fix quality
buf.readUnsignedByte(); // GNSS assistance age
-
+
long flags = buf.readUnsignedInt();
position.setValid((flags & 0x0400) == 0x0400);
-
+
position.setTime(convertTimestamp(buf.readUnsignedInt()));
-
+
position.setLatitude(buf.readInt() * 0.0000001);
position.setLongitude(buf.readInt() * 0.0000001);
position.setAltitude(buf.readUnsignedShort());
-
+
buf.readUnsignedByte(); // satellites in fix
buf.readUnsignedByte(); // satellites in track
-
+
position.setSpeed(buf.readUnsignedShort() * 0.194384);
position.setCourse(buf.readUnsignedShort() * 0.1);
-
+
buf.readUnsignedByte(); // maximum speed
buf.readUnsignedByte(); // minimum speed
buf.readUnsignedInt(); // distance
@@ -231,7 +231,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
// TODO: a lot of other stuff
return position;
}
-
+
private Position parseTrackingData(ChannelBuffer buf, int sequenceNumber, long timestamp) {
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -241,33 +241,33 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
position.setTime(convertTimestamp(timestamp));
buf.readUnsignedByte(); // tracking mode
-
+
short flags = buf.readUnsignedByte();
position.setValid((flags & 0x01) == 0x01);
-
+
buf.readUnsignedShort(); // duration
position.setLatitude(buf.readInt() * 0.0000001);
position.setLongitude(buf.readInt() * 0.0000001);
-
+
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedByte()));
position.setCourse(buf.readUnsignedByte() * 2.0);
buf.readUnsignedByte(); // satellites in fix
-
+
position.set(Event.KEY_BATTERY, buf.readUnsignedShort() * 0.001);
-
+
buf.readUnsignedInt(); // distance
return position;
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
buf.readUnsignedByte(); // protocol version
buf.readUnsignedByte(); // version id
int sequenceNumber = buf.readUnsignedShort();
@@ -275,7 +275,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedShort(); // length
int flags = buf.readUnsignedShort();
buf.readUnsignedShort(); // checksum
-
+
// Get device identifier
if (!identify(String.valueOf(buf.readUnsignedInt()), channel)) {
return null;
@@ -287,7 +287,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
if ((flags & 0x1) == 0x0) {
sendAcknowledgment(channel, sequenceNumber);
}
-
+
// Parse messages
switch (messageId) {
case MESSAGE_UNIT_REPORT:
@@ -303,7 +303,7 @@ public class NavigilProtocolDecoder extends BaseProtocolDecoder {
case MESSAGE_TRACKING_DATA:
return parseTrackingData(buf, sequenceNumber, timestamp);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/NavisProtocolDecoder.java b/src/org/traccar/protocol/NavisProtocolDecoder.java
index 4f3e6a1a4..8d00ce9e0 100644
--- a/src/org/traccar/protocol/NavisProtocolDecoder.java
+++ b/src/org/traccar/protocol/NavisProtocolDecoder.java
@@ -18,7 +18,7 @@ package org.traccar.protocol;
import java.net.SocketAddress;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.TimeZone;
@@ -57,7 +57,7 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder {
}
return false;
}
-
+
private class ParseResult {
private final long id;
private final Position position;
@@ -300,7 +300,7 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder {
// Read message type
String type = buf.toString(buf.readerIndex(), 3, charset);
buf.skipBytes(type.length());
-
+
switch (type) {
case "*>T":
return processSingle(channel, buf);
diff --git a/src/org/traccar/protocol/NoranProtocolDecoder.java b/src/org/traccar/protocol/NoranProtocolDecoder.java
index cf9cc75f7..8556ddc69 100644
--- a/src/org/traccar/protocol/NoranProtocolDecoder.java
+++ b/src/org/traccar/protocol/NoranProtocolDecoder.java
@@ -45,20 +45,20 @@ public class NoranProtocolDecoder extends BaseProtocolDecoder {
private static final int MSG_SHAKE_HAND_RESPONSE = 0x8000;
private static final int MSG_IMAGE_SIZE = 0x0200;
private static final int MSG_IMAGE_PACKET = 0x0201;
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
buf.readUnsignedShort(); // length
int type = buf.readUnsignedShort();
-
+
if (type == MSG_SHAKE_HAND && channel != null) {
-
+
ChannelBuffer response = ChannelBuffers.dynamicBuffer(ByteOrder.LITTLE_ENDIAN, 13);
response.writeBytes(ChannelBuffers.copiedBuffer(ByteOrder.LITTLE_ENDIAN, "\r\n*KW", Charset.defaultCharset()));
response.writeByte(0);
@@ -66,10 +66,10 @@ public class NoranProtocolDecoder extends BaseProtocolDecoder {
response.writeShort(MSG_SHAKE_HAND_RESPONSE);
response.writeByte(1); // status
response.writeBytes(ChannelBuffers.copiedBuffer(ByteOrder.LITTLE_ENDIAN, "\r\n", Charset.defaultCharset()));
-
+
channel.write(response, remoteAddress);
}
-
+
else if (type == MSG_UPLOAD_POSITION ||
type == MSG_UPLOAD_POSITION_NEW ||
type == MSG_CONTROL_RESPONSE ||
@@ -89,7 +89,7 @@ public class NoranProtocolDecoder extends BaseProtocolDecoder {
// Create new position
Position position = new Position();
position.setProtocol(getProtocolName());
-
+
if (type == MSG_CONTROL_RESPONSE) {
buf.readUnsignedInt(); // GIS ip
buf.readUnsignedInt(); // GIS port
diff --git a/src/org/traccar/protocol/OrionFrameDecoder.java b/src/org/traccar/protocol/OrionFrameDecoder.java
index cc3efa6a5..63bf84494 100644
--- a/src/org/traccar/protocol/OrionFrameDecoder.java
+++ b/src/org/traccar/protocol/OrionFrameDecoder.java
@@ -21,7 +21,7 @@ import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.frame.FrameDecoder;
public class OrionFrameDecoder extends FrameDecoder {
-
+
private static final int TYPE_USERLOG = 0;
private static final int TYPE_SYSLOG = 3;
@@ -30,16 +30,16 @@ public class OrionFrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
int length = 6;
-
+
if (buf.readableBytes() >= length) {
-
+
int type = buf.getUnsignedByte(buf.readerIndex() + 2) & 0x0f;
-
+
if (type == TYPE_USERLOG) {
if (buf.readableBytes() >= length + 5) {
-
+
int index = buf.readerIndex() + 3;
int count = buf.getUnsignedByte(index) & 0x0f;
index += 5;
@@ -53,7 +53,7 @@ public class OrionFrameDecoder extends FrameDecoder {
index += logLength;
length += logLength;
}
-
+
if (buf.readableBytes() >= length) {
return buf.readBytes(length);
}
diff --git a/src/org/traccar/protocol/OrionProtocolDecoder.java b/src/org/traccar/protocol/OrionProtocolDecoder.java
index 63cc23878..647dc2aa7 100644
--- a/src/org/traccar/protocol/OrionProtocolDecoder.java
+++ b/src/org/traccar/protocol/OrionProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.TimeZone;
@@ -34,7 +34,7 @@ public class OrionProtocolDecoder extends BaseProtocolDecoder {
public OrionProtocolDecoder(OrionProtocol protocol) {
super(protocol);
}
-
+
private static final int TYPE_USERLOG = 0;
private static final int TYPE_SYSLOG = 3;
@@ -47,27 +47,27 @@ public class OrionProtocolDecoder extends BaseProtocolDecoder {
channel.write(response);
}
}
-
+
private static double convertCoordinate(int value) {
double degrees = value / 1000000;
double minutes = (value % 1000000) / 10000.0;
return degrees + minutes / 60;
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
buf.skipBytes(2); // header
int type = buf.readUnsignedByte() & 0x0f;
-
+
if (type == TYPE_USERLOG) {
-
+
int header = buf.readUnsignedByte();
-
+
if ((header & 0x40) != 0) {
sendResponse(channel, buf);
}
@@ -77,14 +77,14 @@ public class OrionProtocolDecoder extends BaseProtocolDecoder {
}
List<Position> positions = new LinkedList<>();
-
+
for (int i = 0; i < (header & 0x0f); i++) {
-
+
// Create new position
Position position = new Position();
position.setDeviceId(getDeviceId());
position.setProtocol(getProtocolName());
-
+
position.set(Event.KEY_EVENT, buf.readUnsignedByte());
buf.readUnsignedByte(); // length
position.set(Event.KEY_FLAGS, buf.readUnsignedShort());
@@ -95,7 +95,7 @@ public class OrionProtocolDecoder extends BaseProtocolDecoder {
position.setAltitude(buf.readShort()/ 10.0);
position.setCourse(buf.readUnsignedShort());
position.setSpeed(buf.readUnsignedShort() * 0.0539957);
-
+
// Date and time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -106,14 +106,14 @@ public class OrionProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, buf.readUnsignedByte());
time.set(Calendar.SECOND, buf.readUnsignedByte());
position.setTime(time.getTime());
-
+
// Accuracy
int satellites = buf.readUnsignedByte();
position.set(Event.KEY_SATELLITES, satellites);
position.setValid(satellites >= 3);
positions.add(position);
}
-
+
return positions;
}
diff --git a/src/org/traccar/protocol/OsmAndProtocolDecoder.java b/src/org/traccar/protocol/OsmAndProtocolDecoder.java
index cf447c579..47f96b32a 100644
--- a/src/org/traccar/protocol/OsmAndProtocolDecoder.java
+++ b/src/org/traccar/protocol/OsmAndProtocolDecoder.java
@@ -35,16 +35,16 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
public class OsmAndProtocolDecoder extends BaseProtocolDecoder {
-
+
public OsmAndProtocolDecoder(OsmAndProtocol protocol) {
super(protocol);
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
HttpRequest request = (HttpRequest) msg;
QueryStringDecoder decoder = new QueryStringDecoder(request.getUri());
Map<String, List<String>> params = decoder.getParameters();
diff --git a/src/org/traccar/protocol/PiligrimProtocolDecoder.java b/src/org/traccar/protocol/PiligrimProtocolDecoder.java
index 9e26594f2..b05e51c68 100644
--- a/src/org/traccar/protocol/PiligrimProtocolDecoder.java
+++ b/src/org/traccar/protocol/PiligrimProtocolDecoder.java
@@ -18,7 +18,7 @@ package org.traccar.protocol;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.TimeZone;
@@ -38,7 +38,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
public class PiligrimProtocolDecoder extends BaseProtocolDecoder {
-
+
public PiligrimProtocolDecoder(PiligrimProtocol protocol) {
super(protocol);
}
@@ -61,26 +61,26 @@ public class PiligrimProtocolDecoder extends BaseProtocolDecoder {
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
HttpRequest request = (HttpRequest) msg;
String uri = request.getUri();
-
+
if (uri.startsWith("/config")) {
sendResponse(channel, "CONFIG: OK");
-
+
} else if (uri.startsWith("/addlog")) {
sendResponse(channel, "ADDLOG: OK");
-
+
} else if (uri.startsWith("/inform")) {
sendResponse(channel, "INFORM: OK");
-
+
} else if (uri.startsWith("/bingps")) {
sendResponse(channel, "BINGPS: OK");
-
+
// Identification
QueryStringDecoder decoder = new QueryStringDecoder(request.getUri());
if (!identify(decoder.getParameters().get("imei").get(0), channel)) {
@@ -89,19 +89,19 @@ public class PiligrimProtocolDecoder extends BaseProtocolDecoder {
List<Position> positions = new LinkedList<>();
ChannelBuffer buf = request.getContent();
-
+
while (buf.readableBytes() > 2) {
buf.readUnsignedByte(); // header
int type = buf.readUnsignedByte();
buf.readUnsignedByte(); // length
-
+
if (type == MSG_GPS || type == MSG_GPS_SENSORS) {
-
+
Position position = new Position();
position.setProtocol(getProtocolName());
position.setDeviceId(getDeviceId());
-
+
// Time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -112,34 +112,34 @@ public class PiligrimProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, buf.readUnsignedByte());
time.set(Calendar.SECOND, buf.readUnsignedByte());
position.setTime(time.getTime());
-
+
// Latitude
double latitude = buf.readUnsignedByte();
latitude += buf.readUnsignedByte() / 60.0;
latitude += buf.readUnsignedByte() / 6000.0;
latitude += buf.readUnsignedByte() / 600000.0;
-
+
// Longitude
double longitude = buf.readUnsignedByte();
longitude += buf.readUnsignedByte() / 60.0;
longitude += buf.readUnsignedByte() / 6000.0;
longitude += buf.readUnsignedByte() / 600000.0;
-
+
// Hemisphere
int flags = buf.readUnsignedByte();
if ((flags & 0x01) != 0) latitude = -latitude;
if ((flags & 0x02) != 0) longitude = -longitude;
position.setLatitude(latitude);
position.setLongitude(longitude);
-
+
// Satellites
int satellites = buf.readUnsignedByte();
position.set(Event.KEY_SATELLITES, satellites);
position.setValid(satellites >= 3);
-
+
// Speed
position.setSpeed(buf.readUnsignedByte());
-
+
// Course
double course = buf.readUnsignedByte() << 1;
course += (flags >> 2) & 1;
@@ -158,18 +158,18 @@ public class PiligrimProtocolDecoder extends BaseProtocolDecoder {
double battery = buf.readUnsignedByte();
battery += buf.readUnsignedByte() << 8;
position.set(Event.KEY_BATTERY, battery / 100);
-
+
buf.skipBytes(6);
-
+
}
positions.add(position);
-
+
} else if (type == MSG_EVENTS) {
-
+
buf.skipBytes(13);
}
}
-
+
return positions;
}
diff --git a/src/org/traccar/protocol/ProgressProtocolDecoder.java b/src/org/traccar/protocol/ProgressProtocolDecoder.java
index 328facdea..b8f3e48ca 100644
--- a/src/org/traccar/protocol/ProgressProtocolDecoder.java
+++ b/src/org/traccar/protocol/ProgressProtocolDecoder.java
@@ -18,7 +18,7 @@ package org.traccar.protocol;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.TimeZone;
diff --git a/src/org/traccar/protocol/Pt3000ProtocolDecoder.java b/src/org/traccar/protocol/Pt3000ProtocolDecoder.java
index 9fef4a605..6a037ade0 100644
--- a/src/org/traccar/protocol/Pt3000ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Pt3000ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -45,7 +45,7 @@ public class Pt3000ProtocolDecoder extends BaseProtocolDecoder {
"(\\d+\\.?\\d*)?," + // Course
"(\\d{2})(\\d{2})(\\d{2})" + // Date (DDMMYY)
".+");
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
@@ -70,7 +70,7 @@ public class Pt3000ProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
// Time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
diff --git a/src/org/traccar/protocol/Pt502FrameDecoder.java b/src/org/traccar/protocol/Pt502FrameDecoder.java
index 58409ecbf..891265c84 100644
--- a/src/org/traccar/protocol/Pt502FrameDecoder.java
+++ b/src/org/traccar/protocol/Pt502FrameDecoder.java
@@ -22,9 +22,9 @@ import org.jboss.netty.handler.codec.frame.FrameDecoder;
import org.traccar.helper.ChannelBufferTools;
public class Pt502FrameDecoder extends FrameDecoder {
-
+
private static final int BINARY_HEADER = 5;
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
@@ -36,7 +36,7 @@ public class Pt502FrameDecoder extends FrameDecoder {
}
if (buf.getUnsignedByte(buf.readerIndex()) == 0xbf && buf.getUnsignedByte(buf.readerIndex() + 1) == 0xfb) {
-
+
int length = buf.getShort(buf.readerIndex() + 3);
if (buf.readableBytes() >= length) {
buf.skipBytes(BINARY_HEADER);
@@ -44,16 +44,16 @@ public class Pt502FrameDecoder extends FrameDecoder {
buf.skipBytes(2);
return result;
}
-
+
} else {
-
+
Integer index = ChannelBufferTools.find(buf, 0, buf.readableBytes(), "\n");
if (index != null) {
ChannelBuffer result = buf.readBytes(index - 1);
buf.skipBytes(2);
return result;
}
-
+
}
return null;
diff --git a/src/org/traccar/protocol/RitiProtocolDecoder.java b/src/org/traccar/protocol/RitiProtocolDecoder.java
index d1736302d..b46f9df6b 100644
--- a/src/org/traccar/protocol/RitiProtocolDecoder.java
+++ b/src/org/traccar/protocol/RitiProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.nio.charset.Charset;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -71,14 +71,14 @@ public class RitiProtocolDecoder extends BaseProtocolDecoder {
position.set("mode", buf.readUnsignedByte());
position.set("command", buf.readUnsignedByte());
position.set(Event.KEY_POWER, buf.readUnsignedShort());
-
+
buf.skipBytes(5);
buf.readUnsignedShort();
buf.readUnsignedShort();
-
+
position.set("distance", buf.readUnsignedInt());
position.set(Event.KEY_ODOMETER, buf.readUnsignedInt());
-
+
// Parse GPRMC
Integer end = ChannelBufferTools.find(buf, buf.readerIndex(), buf.readerIndex() + 80, "*");
String gprmc = buf.toString(
diff --git a/src/org/traccar/protocol/RuptelaProtocolDecoder.java b/src/org/traccar/protocol/RuptelaProtocolDecoder.java
index 0064798f3..ebb88faf4 100644
--- a/src/org/traccar/protocol/RuptelaProtocolDecoder.java
+++ b/src/org/traccar/protocol/RuptelaProtocolDecoder.java
@@ -28,13 +28,13 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
public class RuptelaProtocolDecoder extends BaseProtocolDecoder {
-
+
public RuptelaProtocolDecoder(RuptelaProtocol protocol) {
super(protocol);
}
private static final int COMMAND_RECORDS = 0x01;
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
@@ -51,7 +51,7 @@ public class RuptelaProtocolDecoder extends BaseProtocolDecoder {
}
int type = buf.readUnsignedByte();
-
+
if (type == COMMAND_RECORDS) {
List<Position> positions = new LinkedList<>();
@@ -68,7 +68,7 @@ public class RuptelaProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedByte(); // timestamp extension
buf.readUnsignedByte(); // priority (reserved)
-
+
// Location
position.setLongitude(buf.readInt() / 10000000.0);
position.setLatitude(buf.readInt() / 10000000.0);
@@ -120,7 +120,7 @@ public class RuptelaProtocolDecoder extends BaseProtocolDecoder {
return positions;
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/SanavProtocolDecoder.java b/src/org/traccar/protocol/SanavProtocolDecoder.java
index 630fcb16c..5434a983e 100644
--- a/src/org/traccar/protocol/SanavProtocolDecoder.java
+++ b/src/org/traccar/protocol/SanavProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/SkypatrolProtocolDecoder.java b/src/org/traccar/protocol/SkypatrolProtocolDecoder.java
index 2f505154b..0879d86be 100644
--- a/src/org/traccar/protocol/SkypatrolProtocolDecoder.java
+++ b/src/org/traccar/protocol/SkypatrolProtocolDecoder.java
@@ -17,7 +17,7 @@ package org.traccar.protocol;
import java.net.SocketAddress;
import java.nio.charset.Charset;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.channel.Channel;
@@ -29,7 +29,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
public class SkypatrolProtocolDecoder extends BaseProtocolDecoder {
-
+
private final long defaultMask;
public SkypatrolProtocolDecoder(SkypatrolProtocol protocol) {
diff --git a/src/org/traccar/protocol/Stl060FrameDecoder.java b/src/org/traccar/protocol/Stl060FrameDecoder.java
index eb0894fb7..9eee11a02 100644
--- a/src/org/traccar/protocol/Stl060FrameDecoder.java
+++ b/src/org/traccar/protocol/Stl060FrameDecoder.java
@@ -25,21 +25,21 @@ import org.traccar.helper.ChannelBufferTools;
public class Stl060FrameDecoder extends DelimiterBasedFrameDecoder {
private static final byte delimiter[] = { (byte) '#' };
-
+
public Stl060FrameDecoder(int maxFrameLength) {
super(maxFrameLength, ChannelBuffers.wrappedBuffer(delimiter));
}
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
ChannelBuffer result = (ChannelBuffer) super.decode(ctx, channel, buf);
-
+
if (result != null) {
-
+
Integer beginIndex = ChannelBufferTools.find(
result, 0, result.readableBytes(), "$");
if (beginIndex == null) {
diff --git a/src/org/traccar/protocol/Stl060ProtocolDecoder.java b/src/org/traccar/protocol/Stl060ProtocolDecoder.java
index df67c17d4..86e96dfbc 100644
--- a/src/org/traccar/protocol/Stl060ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Stl060ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -91,7 +91,7 @@ public class Stl060ProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
// Date
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
diff --git a/src/org/traccar/protocol/SuntechProtocolDecoder.java b/src/org/traccar/protocol/SuntechProtocolDecoder.java
index 3de785f9d..84f84cdfa 100644
--- a/src/org/traccar/protocol/SuntechProtocolDecoder.java
+++ b/src/org/traccar/protocol/SuntechProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -66,7 +66,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
Position position = new Position();
position.setProtocol(getProtocolName());
int index = 1;
-
+
String type = parser.group(index++);
if (type != null && (type.equals("Alert") || type.equals("Emergency"))) {
position.set(Event.KEY_ALARM, true);
@@ -77,7 +77,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
// Version
position.set(Event.KEY_VERSION, parser.group(index++));
@@ -91,7 +91,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, Integer.valueOf(parser.group(index++)));
time.set(Calendar.SECOND, Integer.valueOf(parser.group(index++)));
position.setTime(time.getTime());
-
+
// Cell
position.set(Event.KEY_CELL, parser.group(index++));
@@ -105,7 +105,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
// Course
position.setCourse(Double.valueOf(parser.group(index++)));
-
+
// Battery
position.set(Event.KEY_BATTERY, parser.group(index++));
diff --git a/src/org/traccar/protocol/SuntechProtocolEncoder.java b/src/org/traccar/protocol/SuntechProtocolEncoder.java
index 2b5165995..271718643 100644
--- a/src/org/traccar/protocol/SuntechProtocolEncoder.java
+++ b/src/org/traccar/protocol/SuntechProtocolEncoder.java
@@ -29,8 +29,8 @@ public class SuntechProtocolEncoder extends StringProtocolEncoder {
case Command.TYPE_ENGINE_RESUME:
return formatCommand(command, "SA200CMD;{%s};02;Disable1\r", Command.KEY_UNIQUE_ID);
}
-
+
return null;
}
-
+
}
diff --git a/src/org/traccar/protocol/T55ProtocolDecoder.java b/src/org/traccar/protocol/T55ProtocolDecoder.java
index 2771d1d8e..b67fac903 100644
--- a/src/org/traccar/protocol/T55ProtocolDecoder.java
+++ b/src/org/traccar/protocol/T55ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -63,7 +63,7 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder {
"(\\d+\\.?\\d*)?," + // Speed
"(\\d+\\.?\\d*)?," + // Course
".+");
-
+
private static final Pattern patternTRCCR = Pattern.compile(
"\\$TRCCR," +
"(\\d{4})(\\d{2})(\\d{2})" + // Date (YYYYMMDD)
@@ -83,7 +83,7 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
String sentence = (String) msg;
-
+
if (!sentence.startsWith("$") && sentence.contains("$")) {
int index = sentence.indexOf("$");
String id = sentence.substring(0, index);
diff --git a/src/org/traccar/protocol/TaipProtocolDecoder.java b/src/org/traccar/protocol/TaipProtocolDecoder.java
index 252f4e712..180be3268 100644
--- a/src/org/traccar/protocol/TaipProtocolDecoder.java
+++ b/src/org/traccar/protocol/TaipProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import java.util.regex.Matcher;
@@ -29,7 +29,7 @@ import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
public class TaipProtocolDecoder extends BaseProtocolDecoder {
-
+
private final boolean sendResponse;
public TaipProtocolDecoder(TaipProtocol protocol, boolean sendResponse) {
@@ -65,18 +65,18 @@ public class TaipProtocolDecoder extends BaseProtocolDecoder {
return new Date(millis);
}
-
+
private Date getTime(long seconds) {
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.set(Calendar.HOUR_OF_DAY, 0);
time.set(Calendar.MINUTE, 0);
time.set(Calendar.SECOND, 0);
time.set(Calendar.MILLISECOND, 0);
-
+
long millis = time.getTimeInMillis() + seconds * 1000;
-
+
long diff = System.currentTimeMillis() - millis;
-
+
if (diff > 12 * 60 * 60 * 1000) {
millis += 24 * 60 * 60 * 1000;
} else if (diff < -12 * 60 * 60 * 1000) {
@@ -85,14 +85,14 @@ public class TaipProtocolDecoder extends BaseProtocolDecoder {
return new Date(millis);
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
String sentence = (String) msg;
-
+
// Find message start
int beginIndex = sentence.indexOf('>');
if (beginIndex != -1) {
@@ -134,7 +134,7 @@ public class TaipProtocolDecoder extends BaseProtocolDecoder {
position.setDeviceId(getDeviceId());
Integer index = 1;
-
+
// Time
String week = parser.group(index++);
String day = parser.group(index++);
@@ -167,11 +167,11 @@ public class TaipProtocolDecoder extends BaseProtocolDecoder {
String longitude = parser.group(index) + '.' + parser.group(index + 1);
index += 2;
position.setLongitude(Double.valueOf(longitude));
-
+
// Speed and Course
position.setSpeed(UnitsConverter.knotsFromMph(Double.valueOf(parser.group(index++))));
position.setCourse(Double.valueOf(parser.group(index++)));
-
+
// Validity
position.setValid(Integer.valueOf(parser.group(index++)) != 0);
return position;
diff --git a/src/org/traccar/protocol/TelikProtocolDecoder.java b/src/org/traccar/protocol/TelikProtocolDecoder.java
index e70b4e569..37edf6d1f 100644
--- a/src/org/traccar/protocol/TelikProtocolDecoder.java
+++ b/src/org/traccar/protocol/TelikProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -74,7 +74,7 @@ public class TelikProtocolDecoder extends BaseProtocolDecoder {
// Message type
position.set(Event.KEY_TYPE, parser.group(index++));
-
+
// Time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -85,7 +85,7 @@ public class TelikProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, Integer.valueOf(parser.group(index++)));
time.set(Calendar.SECOND, Integer.valueOf(parser.group(index++)));
position.setTime(time.getTime());
-
+
// Location
position.setLongitude(Double.valueOf(parser.group(index++)) / 10000);
position.setLatitude(Double.valueOf(parser.group(index++)) / 10000);
diff --git a/src/org/traccar/protocol/TeltonikaFrameDecoder.java b/src/org/traccar/protocol/TeltonikaFrameDecoder.java
index 7407d9fdb..f8add090b 100644
--- a/src/org/traccar/protocol/TeltonikaFrameDecoder.java
+++ b/src/org/traccar/protocol/TeltonikaFrameDecoder.java
@@ -23,13 +23,13 @@ import org.jboss.netty.handler.codec.frame.FrameDecoder;
public class TeltonikaFrameDecoder extends FrameDecoder {
private static final int MESSAGE_MINIMUM_LENGTH = 12;
-
+
@Override
protected Object decode(
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
// Check minimum length
if (buf.readableBytes() < MESSAGE_MINIMUM_LENGTH) {
return null;
@@ -47,7 +47,7 @@ public class TeltonikaFrameDecoder extends FrameDecoder {
return buf.readBytes(dataLength + 12);
}
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
index e052b10d5..e4966aabe 100644
--- a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
+++ b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
@@ -30,7 +30,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
-
+
public TeltonikaProtocolDecoder(TeltonikaProtocol protocol) {
super(protocol);
}
@@ -51,74 +51,74 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
private static final int CODEC_GH3000 = 0x07;
private static final int CODEC_FM4X00 = 0x08;
private static final int CODEC_12 = 0x0C;
-
+
private List<Position> parseLocation(Channel channel, ChannelBuffer buf) {
List<Position> positions = new LinkedList<>();
-
+
buf.skipBytes(4); // marker
buf.readUnsignedInt(); // data length
int codec = buf.readUnsignedByte(); // codec
-
+
if (codec == CODEC_12) {
// TODO: decode serial port data
return null;
}
-
+
int count = buf.readUnsignedByte();
-
+
for (int i = 0; i < count; i++) {
Position position = new Position();
position.setProtocol(getProtocolName());
-
+
position.setDeviceId(getDeviceId());
-
+
int globalMask = 0x0f;
-
+
if (codec == CODEC_GH3000) {
long time = buf.readUnsignedInt() & 0x3fffffff;
time += 1167609600; // 2007-01-01 00:00:00
position.setTime(new Date(time * 1000));
-
+
globalMask = buf.readUnsignedByte();
if (!BitUtil.check(globalMask, 0)) {
return null;
}
-
+
int locationMask = buf.readUnsignedByte();
-
+
if (BitUtil.check(locationMask, 0)) {
position.setLatitude(buf.readFloat());
position.setLongitude(buf.readFloat());
}
-
+
if (BitUtil.check(locationMask, 1)) {
position.setAltitude(buf.readUnsignedShort());
}
-
+
if (BitUtil.check(locationMask, 2)) {
position.setCourse(buf.readUnsignedByte() * 360.0 / 256);
}
-
+
if (BitUtil.check(locationMask, 3)) {
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedByte()));
}
-
+
if (BitUtil.check(locationMask, 4)) {
int satellites = buf.readUnsignedByte();
position.set(Event.KEY_SATELLITES, satellites);
position.setValid(satellites >= 3);
}
-
+
if (BitUtil.check(locationMask, 5)) {
position.set("area", buf.readUnsignedShort());
position.set(Event.KEY_CELL, buf.readUnsignedShort());
}
-
+
if (BitUtil.check(locationMask, 6)) {
position.set(Event.KEY_GSM, buf.readUnsignedByte());
}
-
+
if (BitUtil.check(locationMask, 7)) {
position.set("operator", buf.readUnsignedInt());
}
@@ -146,7 +146,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
buf.readUnsignedByte(); // total IO data records
}
-
+
// Read 1 byte data
if (BitUtil.check(globalMask, 1)) {
int cnt = buf.readUnsignedByte();
@@ -185,29 +185,29 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
}
positions.add(position);
}
-
+
if (channel != null) {
ChannelBuffer response = ChannelBuffers.directBuffer(4);
response.writeInt(count);
channel.write(response);
}
-
+
return positions;
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
throws Exception {
-
+
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
if (buf.getUnsignedShort(0) > 0) {
parseIdentification(channel, buf);
} else {
return parseLocation(channel, buf);
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/Tk102ProtocolDecoder.java b/src/org/traccar/protocol/Tk102ProtocolDecoder.java
index 47cd396cd..7e2dcb6a4 100644
--- a/src/org/traccar/protocol/Tk102ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Tk102ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/Tk103ProtocolDecoder.java b/src/org/traccar/protocol/Tk103ProtocolDecoder.java
index 72fdc10b7..f2a561050 100644
--- a/src/org/traccar/protocol/Tk103ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Tk103ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -62,7 +62,7 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder {
if (beginIndex != -1) {
sentence = sentence.substring(beginIndex + 1);
}
-
+
// Send response
if (channel != null) {
String id = sentence.substring(0, 12);
@@ -135,7 +135,7 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder {
// Course
position.setCourse(Double.parseDouble(parser.group(index++)));
-
+
// State
String status = parser.group(index++); // binary status
if (status != null) {
diff --git a/src/org/traccar/protocol/Tlt2hProtocolDecoder.java b/src/org/traccar/protocol/Tlt2hProtocolDecoder.java
index a81782deb..5d8ca654e 100644
--- a/src/org/traccar/protocol/Tlt2hProtocolDecoder.java
+++ b/src/org/traccar/protocol/Tlt2hProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.TimeZone;
@@ -78,10 +78,10 @@ public class Tlt2hProtocolDecoder extends BaseProtocolDecoder {
// Get status
String status = parser.group(2);
-
+
String[] messages = sentence.substring(sentence.indexOf('\n') + 1).split("\r\n");
List<Position> positions = new LinkedList<>();
-
+
for (String message : messages) {
parser = patternPosition.matcher(message);
if (parser.matches()) {
@@ -90,7 +90,7 @@ public class Tlt2hProtocolDecoder extends BaseProtocolDecoder {
position.setDeviceId(getDeviceId());
Integer index = 1;
-
+
// Cell
position.set(Event.KEY_CELL, parser.group(index++));
@@ -134,7 +134,7 @@ public class Tlt2hProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MONTH, Integer.valueOf(parser.group(index++)) - 1);
time.set(Calendar.YEAR, 2000 + Integer.valueOf(parser.group(index++)));
position.setTime(time.getTime());
-
+
// Status
position.set(Event.KEY_STATUS, status);
positions.add(position);
diff --git a/src/org/traccar/protocol/TopflytechProtocolDecoder.java b/src/org/traccar/protocol/TopflytechProtocolDecoder.java
index d2f028ad5..bd8175a56 100644
--- a/src/org/traccar/protocol/TopflytechProtocolDecoder.java
+++ b/src/org/traccar/protocol/TopflytechProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/TotemProtocolDecoder.java b/src/org/traccar/protocol/TotemProtocolDecoder.java
index b6bb0f3e3..b87198481 100644
--- a/src/org/traccar/protocol/TotemProtocolDecoder.java
+++ b/src/org/traccar/protocol/TotemProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -156,10 +156,10 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
// Alarm type
position.set(Event.KEY_ALARM, parser.group(index++));
-
+
if (pattern == pattern1 || pattern == pattern2) {
// Time
@@ -236,7 +236,7 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
// Odometer
position.set(Event.KEY_ODOMETER, parser.group(index++));
-
+
} else if (pattern == pattern3) {
// Time
@@ -249,7 +249,7 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, Integer.valueOf(parser.group(index++)));
time.set(Calendar.SECOND, Integer.valueOf(parser.group(index++)));
position.setTime(time.getTime());
-
+
// IO Status
position.set(Event.PREFIX_IO + 1, parser.group(index++));
@@ -297,9 +297,9 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
longitude += Double.valueOf(parser.group(index++)) / 60;
if (parser.group(index++).compareTo("W") == 0) longitude = -longitude;
position.setLongitude(longitude);
-
+
}
-
+
if (channel != null) {
channel.write("ACK OK\r\n");
}
diff --git a/src/org/traccar/protocol/TotemProtocolEncoder.java b/src/org/traccar/protocol/TotemProtocolEncoder.java
index 935ab1b64..56d6bfa92 100644
--- a/src/org/traccar/protocol/TotemProtocolEncoder.java
+++ b/src/org/traccar/protocol/TotemProtocolEncoder.java
@@ -15,18 +15,18 @@
* limitations under the License.
*/
package org.traccar.protocol;
-
-import org.traccar.StringProtocolEncoder;
+
+import org.traccar.StringProtocolEncoder;
import org.traccar.model.Command;
public class TotemProtocolEncoder extends StringProtocolEncoder{
-
+
@Override
protected Object encodeCommand(Command command) {
// Temporary put default password
command.set(Command.KEY_DEVICE_PASSWORD, "000000");
-
+
switch (command.getType()) {
//Assuming PIN 8 (Output C) is the power wire, like manual says but it can be PIN 5,7,8
case Command.TYPE_ENGINE_STOP:
@@ -34,7 +34,7 @@ public class TotemProtocolEncoder extends StringProtocolEncoder{
case Command.TYPE_ENGINE_RESUME:
return formatCommand(command, "*{%s},025,C,0#", Command.KEY_DEVICE_PASSWORD);
}
-
+
return null;
}
}
diff --git a/src/org/traccar/protocol/Tr20ProtocolDecoder.java b/src/org/traccar/protocol/Tr20ProtocolDecoder.java
index cdfb07549..7afd905e4 100644
--- a/src/org/traccar/protocol/Tr20ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Tr20ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/TrackboxProtocolDecoder.java b/src/org/traccar/protocol/TrackboxProtocolDecoder.java
index a6c24599b..79abdc5b1 100644
--- a/src/org/traccar/protocol/TrackboxProtocolDecoder.java
+++ b/src/org/traccar/protocol/TrackboxProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -28,7 +28,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
public class TrackboxProtocolDecoder extends BaseProtocolDecoder {
-
+
public TrackboxProtocolDecoder(TrackboxProtocol protocol) {
super(protocol);
}
@@ -51,7 +51,7 @@ public class TrackboxProtocolDecoder extends BaseProtocolDecoder {
channel.write("=OK=\r\n");
}
}
-
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg)
@@ -65,7 +65,7 @@ public class TrackboxProtocolDecoder extends BaseProtocolDecoder {
sendResponse(channel);
}
}
-
+
else {
// Parse message
Matcher parser = pattern.matcher(sentence);
@@ -100,13 +100,13 @@ public class TrackboxProtocolDecoder extends BaseProtocolDecoder {
longitude += Double.valueOf(parser.group(index++)) / 60;
if (parser.group(index++).compareTo("W") == 0) longitude = -longitude;
position.setLongitude(longitude);
-
+
// HDOP
position.set(Event.KEY_HDOP, parser.group(index++));
// Altitude
position.setAltitude(Double.valueOf(parser.group(index++)));
-
+
// Validity
int fix = Integer.valueOf(parser.group(index++));
position.set(Event.KEY_GPS, fix);
@@ -130,7 +130,7 @@ public class TrackboxProtocolDecoder extends BaseProtocolDecoder {
return position;
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/TramigoFrameDecoder.java b/src/org/traccar/protocol/TramigoFrameDecoder.java
index 4055d2255..ff2109136 100644
--- a/src/org/traccar/protocol/TramigoFrameDecoder.java
+++ b/src/org/traccar/protocol/TramigoFrameDecoder.java
@@ -33,7 +33,7 @@ public class TramigoFrameDecoder extends LengthFieldBasedFrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
if (buf.readableBytes() < 20) {
return null;
}
@@ -43,7 +43,7 @@ public class TramigoFrameDecoder extends LengthFieldBasedFrameDecoder {
int length = buf.readableBytes();
byte bytes[] = new byte[length];
buf.getBytes(buf.readerIndex(), bytes);
-
+
ChannelBuffer result = (ChannelBuffer) super.decode(
ctx, channel, ChannelBuffers.wrappedBuffer(ByteOrder.LITTLE_ENDIAN, bytes));
if (result != null) {
diff --git a/src/org/traccar/protocol/TramigoProtocolDecoder.java b/src/org/traccar/protocol/TramigoProtocolDecoder.java
index 8a1e9046d..893e32a92 100644
--- a/src/org/traccar/protocol/TramigoProtocolDecoder.java
+++ b/src/org/traccar/protocol/TramigoProtocolDecoder.java
@@ -27,7 +27,7 @@ import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.regex.Matcher;
diff --git a/src/org/traccar/protocol/TytanProtocolDecoder.java b/src/org/traccar/protocol/TytanProtocolDecoder.java
index 0936732c5..a16bd4e4b 100644
--- a/src/org/traccar/protocol/TytanProtocolDecoder.java
+++ b/src/org/traccar/protocol/TytanProtocolDecoder.java
@@ -51,60 +51,60 @@ public class TytanProtocolDecoder extends BaseProtocolDecoder {
throws Exception {
ChannelBuffer buf = (ChannelBuffer) msg;
-
+
buf.readUnsignedByte(); // protocol
buf.readUnsignedShort(); // length
int index = buf.readUnsignedByte() >> 3;
-
+
if (channel != null) {
ChannelBuffer response = ChannelBuffers.copiedBuffer(
"^" + index, Charset.defaultCharset());
channel.write(response, remoteAddress);
}
-
+
String id = String.valueOf(buf.readUnsignedInt());
if (!identify(id, channel, remoteAddress)) {
return null;
}
List<Position> positions = new LinkedList<>();
-
+
while (buf.readableBytes() > 2) {
-
+
Position position = new Position();
position.setProtocol(getProtocolName());
position.setDeviceId(getDeviceId());
-
+
int end = buf.readerIndex() + buf.readUnsignedByte();
-
+
position.setTime(new Date(buf.readUnsignedInt() * 1000));
-
+
int flags = buf.readUnsignedByte();
position.set(Event.KEY_SATELLITES, BitUtil.range(flags, 2));
position.setValid(BitUtil.range(flags, 0, 2) > 0);
-
+
// Latitude
double lat = buf.readUnsignedMedium();
lat = lat * -180 / 16777216 + 90;
position.setLatitude(lat);
-
+
// Longitude
double lon = buf.readUnsignedMedium();
lon = lon * 360 / 16777216 - 180;
position.setLongitude(lon);
-
+
// Status
flags = buf.readUnsignedByte();
position.set(Event.KEY_IGNITION, BitUtil.check(flags, 0));
position.set(Event.KEY_GSM, BitUtil.range(flags, 2, 3));
position.setCourse((BitUtil.range(flags, 5) * 45 + 180) % 360);
-
+
// Speed
int speed = buf.readUnsignedByte();
if (speed < 250) {
position.setSpeed(UnitsConverter.knotsFromKph(speed));
}
-
+
while (buf.readerIndex() < end) {
int type = buf.readUnsignedByte();
@@ -193,7 +193,7 @@ public class TytanProtocolDecoder extends BaseProtocolDecoder {
positions.add(position);
}
-
+
return positions;
}
diff --git a/src/org/traccar/protocol/TzoneProtocolDecoder.java b/src/org/traccar/protocol/TzoneProtocolDecoder.java
index ed463c109..1fe32af7a 100644
--- a/src/org/traccar/protocol/TzoneProtocolDecoder.java
+++ b/src/org/traccar/protocol/TzoneProtocolDecoder.java
@@ -46,32 +46,32 @@ public class TzoneProtocolDecoder extends BaseProtocolDecoder {
}
buf.readUnsignedShort(); // model
buf.readUnsignedInt(); // firmware
-
+
String imei = ChannelBufferTools.readHexString(buf, 16).substring(1);
if (!identify(imei, channel)) {
return null;
}
-
+
buf.skipBytes(6); // device time
Position position = new Position();
position.setProtocol(getProtocolName());
position.setDeviceId(getDeviceId());
-
+
// GPS info
int blockLength = buf.readUnsignedShort();
int blockEnd = buf.readerIndex() + blockLength;
-
+
if (blockLength == 0) {
return null;
}
-
+
position.set(Event.KEY_SATELLITES, buf.readUnsignedByte());
-
+
double lat = buf.readUnsignedInt() / 600000.0;
double lon = buf.readUnsignedInt() / 600000.0;
-
+
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
time.set(Calendar.YEAR, 2000 + buf.readUnsignedByte());
@@ -81,40 +81,40 @@ public class TzoneProtocolDecoder extends BaseProtocolDecoder {
time.set(Calendar.MINUTE, buf.readUnsignedByte());
time.set(Calendar.SECOND, buf.readUnsignedByte());
position.setTime(time.getTime());
-
+
position.setSpeed(buf.readUnsignedShort() * 0.01);
-
+
position.set(Event.KEY_ODOMETER, buf.readUnsignedMedium());
-
+
int flags = buf.readUnsignedShort();
position.setCourse(BitUtil.range(flags, 0, 9));
position.setLatitude(BitUtil.check(flags, 10) ? lat : -lat);
position.setLongitude(BitUtil.check(flags, 9) ? -lon : lon);
position.setValid(BitUtil.check(flags, 11));
-
+
buf.readerIndex(blockEnd);
-
+
// LBS info
-
+
blockLength = buf.readUnsignedShort();
blockEnd = buf.readerIndex() + blockLength;
-
+
if (blockLength > 0) {
-
+
position.set(Event.KEY_LAC, buf.readUnsignedShort());
position.set(Event.KEY_CELL, buf.readUnsignedShort());
-
+
}
-
+
buf.readerIndex(blockEnd);
-
+
// Status info
-
+
blockLength = buf.readUnsignedShort();
blockEnd = buf.readerIndex() + blockLength;
-
+
if (blockLength > 0) {
-
+
position.set(Event.KEY_ALARM, buf.readUnsignedByte());
buf.readUnsignedByte(); // terminal info
position.set(Event.PREFIX_IO + 1, buf.readUnsignedShort());
@@ -125,26 +125,26 @@ public class TzoneProtocolDecoder extends BaseProtocolDecoder {
position.set(Event.PREFIX_ADC + 1, buf.readUnsignedShort());
position.set(Event.PREFIX_ADC + 2, buf.readUnsignedShort());
position.set(Event.PREFIX_TEMP + 1, buf.readUnsignedShort());
-
+
}
-
+
buf.readerIndex(blockEnd);
-
+
// Cards
-
+
int index = 1;
for (int i = 0; i < 4; i++) {
-
+
blockLength = buf.readUnsignedShort();
blockEnd = buf.readerIndex() + blockLength;
-
+
if (blockLength > 0) {
-
+
int count = buf.readUnsignedByte();
for (int j = 0; j < count; j++) {
int length = buf.readUnsignedByte();
-
+
boolean odd = length % 2 != 0;
String num = ChannelBufferTools.readHexString(buf, odd ? length + 1 : length);
@@ -154,34 +154,34 @@ public class TzoneProtocolDecoder extends BaseProtocolDecoder {
}
position.set("card" + index, num);
-
+
}
}
-
+
buf.readerIndex(blockEnd);
-
+
}
-
+
// Temperature
-
+
buf.skipBytes(buf.readUnsignedShort());
-
+
// Lock
-
+
buf.skipBytes(buf.readUnsignedShort());
// Passengers
-
+
blockLength = buf.readUnsignedShort();
blockEnd = buf.readerIndex() + blockLength;
-
+
if (blockLength > 0) {
-
+
position.set("passengers-on", buf.readUnsignedMedium());
position.set("passengers-off", buf.readUnsignedMedium());
-
+
}
-
+
buf.readerIndex(blockEnd);
return position;
diff --git a/src/org/traccar/protocol/UlbotechFrameDecoder.java b/src/org/traccar/protocol/UlbotechFrameDecoder.java
index 6eff29a08..f0671c717 100644
--- a/src/org/traccar/protocol/UlbotechFrameDecoder.java
+++ b/src/org/traccar/protocol/UlbotechFrameDecoder.java
@@ -28,7 +28,7 @@ public class UlbotechFrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
if (buf.readableBytes() < 2) {
return null;
}
diff --git a/src/org/traccar/protocol/UlbotechProtocolDecoder.java b/src/org/traccar/protocol/UlbotechProtocolDecoder.java
index b44e1d850..6c332102d 100644
--- a/src/org/traccar/protocol/UlbotechProtocolDecoder.java
+++ b/src/org/traccar/protocol/UlbotechProtocolDecoder.java
@@ -81,7 +81,7 @@ public class UlbotechProtocolDecoder extends BaseProtocolDecoder {
seconds += 946684800l; // 2000-01-01 00:00
seconds -= timeZone;
position.setTime(new Date(seconds * 1000));
-
+
boolean hasLocation = false;
while (buf.readableBytes() > 3) {
diff --git a/src/org/traccar/protocol/V680ProtocolDecoder.java b/src/org/traccar/protocol/V680ProtocolDecoder.java
index 5036817a5..f24076c9b 100644
--- a/src/org/traccar/protocol/V680ProtocolDecoder.java
+++ b/src/org/traccar/protocol/V680ProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -59,7 +59,7 @@ public class V680ProtocolDecoder extends BaseProtocolDecoder {
String sentence = (String) msg;
sentence = sentence.trim();
-
+
// Detect device ID
if (sentence.length() == 16) {
String imei = sentence.substring(1, sentence.length());
@@ -145,7 +145,7 @@ public class V680ProtocolDecoder extends BaseProtocolDecoder {
position.setTime(time.getTime());
return position;
}
-
+
return null;
}
diff --git a/src/org/traccar/protocol/VisiontekProtocolDecoder.java b/src/org/traccar/protocol/VisiontekProtocolDecoder.java
index 9a62f4e5c..d09673f00 100644
--- a/src/org/traccar/protocol/VisiontekProtocolDecoder.java
+++ b/src/org/traccar/protocol/VisiontekProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/WialonProtocolDecoder.java b/src/org/traccar/protocol/WialonProtocolDecoder.java
index 7d8382ad6..ef6ebeab8 100644
--- a/src/org/traccar/protocol/WialonProtocolDecoder.java
+++ b/src/org/traccar/protocol/WialonProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.TimeZone;
@@ -66,9 +66,9 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder {
channel.write(response.toString());
}
}
-
+
private Position decodePosition(String substring) {
-
+
// Parse message
Matcher parser = pattern.matcher(substring);
if (!hasDeviceId() || !parser.matches()) {
@@ -183,7 +183,7 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder {
else if (sentence.startsWith("#P#")) {
sendResponse(channel, "#AP#", null);
}
-
+
// Parse message
else if (sentence.startsWith("#SD#") || sentence.startsWith("#D#")) {
@@ -195,9 +195,9 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder {
return position;
}
}
-
+
else if (sentence.startsWith("#B#")) {
-
+
String[] messages = sentence.substring(sentence.indexOf('#', 1) + 1).split("\\|");
List<Position> positions = new LinkedList<>();
diff --git a/src/org/traccar/protocol/WondexFrameDecoder.java b/src/org/traccar/protocol/WondexFrameDecoder.java
index 09971c0d9..1a66c9373 100644
--- a/src/org/traccar/protocol/WondexFrameDecoder.java
+++ b/src/org/traccar/protocol/WondexFrameDecoder.java
@@ -22,7 +22,7 @@ import org.jboss.netty.handler.codec.frame.FrameDecoder;
import org.traccar.helper.ChannelBufferTools;
public class WondexFrameDecoder extends FrameDecoder {
-
+
private static final int KEEP_ALIVE_LENGTH = 8;
@Override
@@ -30,7 +30,7 @@ public class WondexFrameDecoder extends FrameDecoder {
ChannelHandlerContext ctx,
Channel channel,
ChannelBuffer buf) throws Exception {
-
+
if (buf.readableBytes() < KEEP_ALIVE_LENGTH) {
return null;
}
@@ -51,7 +51,7 @@ public class WondexFrameDecoder extends FrameDecoder {
buf.skipBytes(2);
return frame;
}
-
+
}
return null;
diff --git a/src/org/traccar/protocol/WondexProtocolDecoder.java b/src/org/traccar/protocol/WondexProtocolDecoder.java
index 4c35321cc..2a3d43b5b 100644
--- a/src/org/traccar/protocol/WondexProtocolDecoder.java
+++ b/src/org/traccar/protocol/WondexProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -97,23 +97,23 @@ public class WondexProtocolDecoder extends BaseProtocolDecoder {
int satellites = Integer.valueOf(parser.group(index++));
position.setValid(satellites >= 3);
position.set(Event.KEY_SATELLITES, satellites);
-
+
// Event
position.set(Event.KEY_EVENT, parser.group(index++));
-
+
// Battery
position.set(Event.KEY_BATTERY, parser.group(index++));
-
+
// Odometer
position.set(Event.KEY_ODOMETER, parser.group(index++));
-
+
// Input
position.set(Event.KEY_INPUT, parser.group(index++));
-
+
// ADC
position.set(Event.PREFIX_ADC + 1, parser.group(index++));
position.set(Event.PREFIX_ADC + 2, parser.group(index++));
-
+
// Output
position.set(Event.KEY_OUTPUT, parser.group(index++));
return position;
diff --git a/src/org/traccar/protocol/XexunProtocolDecoder.java b/src/org/traccar/protocol/XexunProtocolDecoder.java
index 95676d2e2..b248e083e 100644
--- a/src/org/traccar/protocol/XexunProtocolDecoder.java
+++ b/src/org/traccar/protocol/XexunProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/XirgoProtocolDecoder.java b/src/org/traccar/protocol/XirgoProtocolDecoder.java
index 81a3ac4c5..8e070694f 100644
--- a/src/org/traccar/protocol/XirgoProtocolDecoder.java
+++ b/src/org/traccar/protocol/XirgoProtocolDecoder.java
@@ -77,7 +77,7 @@ public class XirgoProtocolDecoder extends BaseProtocolDecoder {
position.setDeviceId(getDeviceId());
position.set(Event.KEY_EVENT, parser.group(index++));
-
+
// Date
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -102,7 +102,7 @@ public class XirgoProtocolDecoder extends BaseProtocolDecoder {
position.set(Event.KEY_BATTERY, parser.group(index++));
position.set(Event.KEY_GSM, parser.group(index++));
position.set(Event.KEY_ODOMETER, parser.group(index++));
-
+
// Validity
position.setValid(Integer.valueOf(parser.group(index++)) == 1);
diff --git a/src/org/traccar/protocol/Xt013ProtocolDecoder.java b/src/org/traccar/protocol/Xt013ProtocolDecoder.java
index b2056ea14..a35318532 100644
--- a/src/org/traccar/protocol/Xt013ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Xt013ProtocolDecoder.java
@@ -23,7 +23,7 @@ import org.traccar.model.Position;
import java.text.ParseException;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/src/org/traccar/protocol/YwtProtocolDecoder.java b/src/org/traccar/protocol/YwtProtocolDecoder.java
index 7e3001f86..c2d3058aa 100644
--- a/src/org/traccar/protocol/YwtProtocolDecoder.java
+++ b/src/org/traccar/protocol/YwtProtocolDecoder.java
@@ -16,7 +16,7 @@
package org.traccar.protocol;
import java.net.SocketAddress;
-import java.util.Calendar;
+import java.util.Calendar;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -68,17 +68,17 @@ public class YwtProtocolDecoder extends BaseProtocolDecoder {
if (end == -1) {
end = sentence.length();
}
-
+
channel.write("%AT+SN=" + sentence.substring(start, end));
return null;
}
-
+
// Parse message
Matcher parser = pattern.matcher(sentence);
if (!parser.matches()) {
return null;
}
-
+
// Create new position
Position position = new Position();
position.setProtocol(getProtocolName());
@@ -90,7 +90,7 @@ public class YwtProtocolDecoder extends BaseProtocolDecoder {
return null;
}
position.setDeviceId(getDeviceId());
-
+
// Time
Calendar time = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
time.clear();
@@ -113,7 +113,7 @@ public class YwtProtocolDecoder extends BaseProtocolDecoder {
Double latitude = Double.valueOf(parser.group(index++));
if (hemisphere.compareTo("S") == 0) latitude = -latitude;
position.setLatitude(latitude);
-
+
// Altitude
String altitude = parser.group(index++);
if (altitude != null) {
@@ -125,15 +125,15 @@ public class YwtProtocolDecoder extends BaseProtocolDecoder {
// Course
position.setCourse(Double.valueOf(parser.group(index++)));
-
+
// Satellites
int satellites = Integer.valueOf(parser.group(index++));
position.setValid(satellites >= 3);
position.set(Event.KEY_SATELLITES, satellites);
-
+
// Report identifier
String reportId = parser.group(index++);
-
+
// Status
position.set(Event.KEY_STATUS, parser.group(index++));