diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-03-19 09:30:16 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2016-03-19 09:30:16 +1300 |
commit | beddf46069c0e1a656cd2c2263fcb4309ccb0ac9 (patch) | |
tree | 5ed2059f92a811148cc3edcfedcfc88e9cc2c6c3 /src | |
parent | b965ff36e6daf270da8026e7828981ad3f4d67ab (diff) | |
download | traccar-server-beddf46069c0e1a656cd2c2263fcb4309ccb0ac9.tar.gz traccar-server-beddf46069c0e1a656cd2c2263fcb4309ccb0ac9.tar.bz2 traccar-server-beddf46069c0e1a656cd2c2263fcb4309ccb0ac9.zip |
Decode GSM data for GoSafe protocol
Diffstat (limited to 'src')
-rw-r--r-- | src/org/traccar/protocol/GoSafeProtocolDecoder.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/org/traccar/protocol/GoSafeProtocolDecoder.java b/src/org/traccar/protocol/GoSafeProtocolDecoder.java index dc9298e71..2e562d63e 100644 --- a/src/org/traccar/protocol/GoSafeProtocolDecoder.java +++ b/src/org/traccar/protocol/GoSafeProtocolDecoder.java @@ -64,7 +64,15 @@ public class GoSafeProtocolDecoder extends BaseProtocolDecoder { .expression(",?") .groupEnd() .groupBegin() - .text("GSM:").expression("[^,]*,?") + .text("GSM:") + .number("d+;") // registration + .number("d+;") // gsm signal + .number("(d+);") // mcc + .number("(d+);") // mnc + .number("(x+);") // lac + .number("(x+);") // cid + .number("-d+") // rssi + .expression("[^,]*,?") .groupEnd("?") .groupBegin() .text("COT:") @@ -139,6 +147,14 @@ public class GoSafeProtocolDecoder extends BaseProtocolDecoder { position.setAltitude(parser.nextDouble()); position.set(Event.KEY_HDOP, parser.next()); + + if (parser.hasNext(4)) { + position.set(Event.KEY_MCC, parser.nextInt()); + position.set(Event.KEY_MNC, parser.nextInt()); + position.set(Event.KEY_LAC, parser.nextInt(16)); + position.set(Event.KEY_CID, parser.nextInt(16)); + } + position.set(Event.KEY_ODOMETER, parser.next()); position.set(Event.KEY_POWER, parser.next()); position.set(Event.KEY_BATTERY, parser.next()); |