From 9879e67c1f522fe6940b7a3ca5fde5c93875dcfb Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 29 Mar 2017 04:58:23 +1300 Subject: Handle no power value from Telic --- src/org/traccar/protocol/TelicProtocolDecoder.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/org') diff --git a/src/org/traccar/protocol/TelicProtocolDecoder.java b/src/org/traccar/protocol/TelicProtocolDecoder.java index bbd4b0574..8207e5956 100644 --- a/src/org/traccar/protocol/TelicProtocolDecoder.java +++ b/src/org/traccar/protocol/TelicProtocolDecoder.java @@ -54,7 +54,7 @@ public class TelicProtocolDecoder extends BaseProtocolDecoder { .expression("(?:[^,]*,){7}") .number("(d+),") // battery .expression("[^,]*,") - .number("(d+)") // external + .number("(d+)?") // external .any() .compile(); @@ -83,6 +83,8 @@ public class TelicProtocolDecoder extends BaseProtocolDecoder { @Override protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { + org.traccar.helper.PatternUtil.MatchResult matchResult = + org.traccar.helper.PatternUtil.checkPattern(PATTERN.pattern(), (String) msg); Parser parser = new Parser(PATTERN, (String) msg); if (!parser.matches()) { @@ -130,7 +132,10 @@ public class TelicProtocolDecoder extends BaseProtocolDecoder { } position.set(Position.KEY_BATTERY, parser.nextInt()); - position.set(Position.KEY_POWER, parser.nextInt()); + + if (parser.hasNext()) { + position.set(Position.KEY_POWER, parser.nextInt()); + } return position; } -- cgit v1.2.3