aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/helper/DataConverter.java2
-rw-r--r--src/org/traccar/protocol/LaipacProtocolDecoder.java13
2 files changed, 5 insertions, 10 deletions
diff --git a/src/org/traccar/helper/DataConverter.java b/src/org/traccar/helper/DataConverter.java
index 0df0219ad..7abd4ae93 100644
--- a/src/org/traccar/helper/DataConverter.java
+++ b/src/org/traccar/helper/DataConverter.java
@@ -26,7 +26,7 @@ public final class DataConverter {
public static byte[] parseHex(String string) {
try {
- return Hex.decodeHex(string.toCharArray());
+ return Hex.decodeHex(string);
} catch (DecoderException e) {
throw new RuntimeException(e);
}
diff --git a/src/org/traccar/protocol/LaipacProtocolDecoder.java b/src/org/traccar/protocol/LaipacProtocolDecoder.java
index f243fc629..0a7df26fa 100644
--- a/src/org/traccar/protocol/LaipacProtocolDecoder.java
+++ b/src/org/traccar/protocol/LaipacProtocolDecoder.java
@@ -48,7 +48,7 @@ public class LaipacProtocolDecoder extends BaseProtocolDecoder {
.number("(d+.d+),") // course
.number("(dd)(dd)(dd),") // date (ddmmyy)
.expression("([abZXTSMHFE86430]),") // event code
- .number("(d+)").expression("(\\.?)").number("(d*),") // battery voltage
+ .number("(d.+),") // battery voltage
.number("(d+),") // current mileage
.number("(d),") // GPS on/off (1 = on, 0 = off)
.number("(d+),") // Analog port 1
@@ -105,14 +105,9 @@ public class LaipacProtocolDecoder extends BaseProtocolDecoder {
position.set(Position.KEY_ALARM, decodeAlarm(eventCode));
position.set(Position.KEY_EVENT, eventCode);
- double batteryVoltage = parser.nextDouble();
- if (parser.next().isEmpty()) {
- parser.next();
- batteryVoltage *= 0.001;
- } else {
- batteryVoltage += parser.nextDouble() * 0.001;
- }
- position.set(Position.KEY_BATTERY, batteryVoltage);
+ String batteryVoltage = parser.next();
+ batteryVoltage = batteryVoltage.replaceAll("\\.","");
+ position.set(Position.KEY_BATTERY, Double.parseDouble(batteryVoltage) * 0.001);
position.set(Position.KEY_ODOMETER, parser.nextDouble());
position.set(Position.KEY_GPS, parser.nextInt());