aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-08-01 19:06:04 -0700
committerAnton Tananaev <anton@traccar.org>2022-08-01 19:06:04 -0700
commit910965c3d08745d68cbf812ed96eef7323dbb893 (patch)
treed4088e6df1ee46e7e480988746784017edd9c473 /src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java
parent2d0d2cd39b40a1b62435efaa193bcf4680f109db (diff)
downloadtrackermap-server-910965c3d08745d68cbf812ed96eef7323dbb893.tar.gz
trackermap-server-910965c3d08745d68cbf812ed96eef7323dbb893.tar.bz2
trackermap-server-910965c3d08745d68cbf812ed96eef7323dbb893.zip
Handle GPS103 no GPS (fix #4915)
Diffstat (limited to 'src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java')
-rw-r--r--src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java b/src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java
index b63bcd0c0..28efa3c30 100644
--- a/src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/Gps103ProtocolDecoder.java
@@ -56,9 +56,12 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
.groupEnd()
.expression("([^,]+)?,") // rfid
.groupBegin()
- .text("L,,,")
+ .text("L,")
+ .groupBegin()
+ .text(",,")
.number("(x+),,") // lac
.number("(x+),,,") // cid
+ .groupEnd("?")
.or()
.text("F,")
.groupBegin()
@@ -218,13 +221,11 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
}
if (parser.hasNext(2)) {
-
- getLastLocation(position, null);
-
position.setNetwork(new Network(CellTower.fromLacCid(
getConfig(), parser.nextHexInt(0), parser.nextHexInt(0))));
+ }
- } else {
+ if (parser.hasNext(20)) {
String utcHours = parser.next();
String utcMinutes = parser.next();
@@ -262,6 +263,10 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
position.set("fuel2", parser.nextDouble());
position.set(Position.PREFIX_TEMP + 1, parser.nextInt());
+ } else {
+
+ getLastLocation(position, null);
+
}
return position;