Update custom T55 protocol format

This commit is contained in:
Anton Tananaev
2016-07-27 13:58:37 +12:00
parent 71c38dce9f
commit 457bda5a0e
2 changed files with 10 additions and 3 deletions

View File

@@ -50,7 +50,9 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder {
.expression("[^,]+")
.number(",(d+)") // satellites
.number(",(d+)") // imei
.number(",(d+)").optional(3)
.number(",([01])") // ignition
.number(",(d+)") // fuel
.number(",(d+)").optional(5) // battery
.any()
.compile();
@@ -123,13 +125,18 @@ public class T55ProtocolDecoder extends BaseProtocolDecoder {
dateBuilder.setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt());
position.setTime(dateBuilder.getDate());
if (parser.hasNext(3)) {
if (parser.hasNext(5)) {
position.set(Position.KEY_SATELLITES, parser.next());
deviceSession = getDeviceSession(channel, remoteAddress, parser.next());
if (deviceSession == null) {
return null;
}
position.setDeviceId(deviceSession.getDeviceId());
position.set(Position.KEY_IGNITION, parser.hasNext() && parser.next().equals("1"));
position.set(Position.KEY_FUEL, parser.nextInt());
position.set(Position.KEY_BATTERY, parser.nextInt());
}
if (deviceSession != null) {

View File

@@ -23,7 +23,7 @@ public class T55ProtocolDecoderTest extends ProtocolTest {
"4711/022789000688081/$GPRMC,133343,A,5308.56325,N,1029.12850,E,0.000000,0.000000,290316,,*2A"));
verifyPosition(decoder, text(
"$GPRMC,073501.000,A,1255.5125,N,07738.2948,E,0.00,0.53,080316,,,D*73,12,865733027593268,10011"));
"$GPRMC,073446.000,A,1255.5125,N,07738.2948,E,0.00,0.53,080316,D*71,11,865733027593268,1,090,086"));
verifyNothing(decoder, text(
"$GPFID,ID123456ABC"));