diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2017-05-19 05:48:03 +1200 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2017-05-19 05:48:03 +1200 |
commit | d9c3568535f8a3ef9cedb43f7c48e839e2940d1f (patch) | |
tree | 47c87e8fdcc8322175f33bd07e10eacc523fcc70 | |
parent | 6b16c0ddf2ac1ce497e1d8bc17a47eceeabca113 (diff) | |
download | trackermap-server-d9c3568535f8a3ef9cedb43f7c48e839e2940d1f.tar.gz trackermap-server-d9c3568535f8a3ef9cedb43f7c48e839e2940d1f.tar.bz2 trackermap-server-d9c3568535f8a3ef9cedb43f7c48e839e2940d1f.zip |
Handle StarLink no location data
-rw-r--r-- | src/org/traccar/protocol/StarLinkProtocolDecoder.java | 7 | ||||
-rw-r--r-- | test/org/traccar/protocol/StarLinkProtocolDecoderTest.java | 15 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/org/traccar/protocol/StarLinkProtocolDecoder.java b/src/org/traccar/protocol/StarLinkProtocolDecoder.java index 0e9840766..8fbecc35e 100644 --- a/src/org/traccar/protocol/StarLinkProtocolDecoder.java +++ b/src/org/traccar/protocol/StarLinkProtocolDecoder.java @@ -100,6 +100,9 @@ public class StarLinkProtocolDecoder extends BaseProtocolDecoder { int event = 0; for (int i = 0; i < Math.min(data.length, dataTags.length); i++) { + if (data[i].isEmpty()) { + continue; + } switch (dataTags[i]) { case "#EDT#": position.setDeviceTime(dateFormat.parse(data[i])); @@ -180,6 +183,10 @@ public class StarLinkProtocolDecoder extends BaseProtocolDecoder { } } + if (position.getFixTime() == null) { + getLastLocation(position, null); + } + if (lac != null && cid != null) { position.setNetwork(new Network(CellTower.fromLacCid(lac, cid))); } diff --git a/test/org/traccar/protocol/StarLinkProtocolDecoderTest.java b/test/org/traccar/protocol/StarLinkProtocolDecoderTest.java index 8726b1e18..ab50e84ca 100644 --- a/test/org/traccar/protocol/StarLinkProtocolDecoderTest.java +++ b/test/org/traccar/protocol/StarLinkProtocolDecoderTest.java @@ -10,6 +10,21 @@ public class StarLinkProtocolDecoderTest extends ProtocolTest { StarLinkProtocolDecoder decoder = new StarLinkProtocolDecoder(new StarLinkProtocol()); + verifyAttributes(decoder, text( + "$SLU068328,06,55,170518122023,16,,,,,,000000,1,1,0,0,0,0,0,0,10443,32722,12.664,03.910,,0,0,,01000001FDB3A9*BF")); + + verifyAttributes(decoder, text( + "$SLU068328,06,56,170518122023,20,,,,,,000000,1,1,0,0,0,0,0,0,10443,32722,12.664,03.910,,0,0,2,01000001FDB3A9,00000000000000000000*D9")); + + verifyAttributes(decoder, text( + "$SLU068328,06,57,170518122038,01,,,,,,000000,1,1,0,0,1,0,0,0,10443,32722,12.669,03.910,,0,0,0,99*6E")); + + verifyAttributes(decoder, text( + "$SLU068328,06,58,170518122045,19,,,,,,000000,1,1,0,0,1,0,0,0,10443,32722,12.678,03.910,,0,0*7C")); + + verifyAttributes(decoder, text( + "$SLU068328,06,59,170518122054,16,,,,,,000000,1,1,0,0,0,0,0,0,10443,32723,12.678,03.910,,0,0,01000001FDB3A9,01000001ACE0A6*BF")); + verifyPosition(decoder, text( "$SLU031B2B,06,622,170329035057,01,170329035057,+3158.0018,+03446.6968,004.9,007,000099,1,1,0,0,0,0,0,0,,,14.176,03.826,,1,1,1,4*B0")); |