diff options
Diffstat (limited to 'src/org/traccar/protocol')
-rw-r--r-- | src/org/traccar/protocol/MeiligaoProtocolDecoder.java | 92 |
1 files changed, 45 insertions, 47 deletions
diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java index ee41c26c3..3d57eecfd 100644 --- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java +++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java @@ -39,31 +39,31 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { } private static final Pattern PATTERN = new PatternBuilder() - .number("(dd)(dd)(dd).?(d+)?,") // time - .expression("([AV]),") // validity - .number("(d+)(dd.d+),") // latitude + .number("(dd)(dd)(dd).?(d+)?,") // time + .expression("([AV]),") // validity + .number("(d+)(dd.d+),") // latitude .expression("([NS]),") - .number("(d+)(dd.d+),") // longitude + .number("(d+)(dd.d+),") // longitude .expression("([EW]),") - .number("(d+.?d*)?,") // speed - .number("(d+.?d*)?,") // course - .number("(dd)(dd)(dd)") // date (ddmmyy) + .number("(d+.?d*)?,") // speed + .number("(d+.?d*)?,") // course + .number("(dd)(dd)(dd)") // date (ddmmyy) .expression("[^\\|]*") .groupBegin() - .number("|(d+.d+)?") // hdop - .number("|(-?d+.?d*)?") // altitude - .number("|(xxxx)?") // state + .number("|(d+.d+)?") // hdop + .number("|(-?d+.?d*)?") // altitude + .number("|(xxxx)?") // state .groupBegin() - .number("|(xxxx),(xxxx)") // adc + .number("|(xxxx),(xxxx)") // adc .number("(?:,(xxxx),(xxxx),(xxxx),(xxxx),(xxxx),(xxxx))?") .groupBegin() - .number("|x{16}") // cell - .number("|(xx)") // gsm - .number("|(x{8})") // odometer + .number("|x{16}") // cell + .number("|(xx)") // gsm + .number("|(x{8})") // odometer .or() - .number("|(x{9})") // odometer + .number("|(x{9})") // odometer .groupBegin() - .number("|(x{5,})") // rfid + .number("|(x{5,})") // rfid .groupEnd("?") .groupEnd("?") .groupEnd("?") @@ -72,53 +72,51 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { .compile(); private static final Pattern PATTERN_RFID = new PatternBuilder() - .number("|(dd)(dd)(dd),") // time - .number("(dd)(dd)(dd),") // Date (ddmmyy) - .number("(d+)(dd.d+),") // latitude + .number("|(dd)(dd)(dd),") // time + .number("(dd)(dd)(dd),") // Date (ddmmyy) + .number("(d+)(dd.d+),") // latitude .expression("([NS]),") - .number("(d+)(dd.d+),") // longitude + .number("(d+)(dd.d+),") // longitude .expression("([EW])") .compile(); private static final Pattern PATTERN_OBD = new PatternBuilder() - .number("(d+.d+),") // battery - .number("(d+),") // rpm - .number("(d+),") // speed - .number("(d+.d+),") // throttle - .number("(d+.d+),") // engine load - .number("(-?d+),") // coolant temp - .number("(d+.d+),") // instantaneous fuel - .number("(d+.d+),") // average fuel - .number("(d+.d+),") // driving range - .number("(d+.?d*),") // odometer - .number("(d+.d+),") // Single Fuel Consumption - .number("(d+.d+),") // Total Fuel Consumption - .number("(d+),") // error code count - .number("(d+),") // harsh acceleration count - .number("(d+)") // harsh break count + .number("(d+.d+),") // battery + .number("(d+),") // rpm + .number("(d+),") // speed + .number("(d+.d+),") // throttle + .number("(d+.d+),") // engine load + .number("(-?d+),") // coolant temp + .number("(d+.d+),") // instantaneous fuel + .number("(d+.d+),") // average fuel + .number("(d+.d+),") // driving range + .number("(d+.?d*),") // odometer + .number("(d+.d+),") // Single Fuel Consumption + .number("(d+.d+),") // Total Fuel Consumption + .number("(d+),") // error code count + .number("(d+),") // harsh acceleration count + .number("(d+)") // harsh break count .compile(); private static final Pattern PATTERN_OBDA = new PatternBuilder() - .number("(d+),") // Total ignition - .number("(d+.d+),") // Total driving time - .number("(d+.d+),") // Total idling time - .number("(d+),") // Average hot start time - .number("(d+),") // Average speed - .number("(d+),") // history hightest speed - .number("(d+),") // history hightest rpm - .number("(d+),") // total harsh acceleration - .number("(d+)") // total harsh break n0 + .number("(d+),") // Total ignition + .number("(d+.d+),") // Total driving time + .number("(d+.d+),") // Total idling time + .number("(d+),") // Average hot start time + .number("(d+),") // Average speed + .number("(d+),") // history hightest speed + .number("(d+),") // history hightest rpm + .number("(d+),") // total harsh acceleration + .number("(d+)") // total harsh break n0 .compile(); public static final int MSG_HEARTBEAT = 0x0001; public static final int MSG_SERVER = 0x0002; public static final int MSG_LOGIN = 0x5000; public static final int MSG_LOGIN_RESPONSE = 0x4000; - public static final int MSG_POSITION = 0x9955; public static final int MSG_POSITION_LOGGED = 0x9016; public static final int MSG_ALARM = 0x9999; - public static final int MSG_RFID = 0x9966; public static final int MSG_OBD_RT = 0x9901; @@ -302,7 +300,7 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_ODOMETER, parser.nextDouble()); position.set(Position.KEY_OBD_SINGLE_FUEL_CONSUMPTION, parser.nextDouble()); position.set(Position.KEY_OBD_TOTAL_FUEL_CONSUMPTION, parser.nextDouble()); - position.set(Position.KEY_OBD_CURRENT_ERROR, parser.nextInt()); + position.set(Position.KEY_DTCS, parser.nextInt()); position.set(Position.KEY_OBD_HARSH_ACCELERATION, parser.nextInt()); position.set(Position.KEY_OBD_HARSH_BREAK, parser.nextInt()); return position; |