Search in sources :

Example 71 with Parser

use of org.traccar.helper.Parser in project traccar by tananaev.

the class MegastekProtocolDecoder method parseLocation.

private boolean parseLocation(String location, Position position) {
    Parser parser = new Parser(PATTERN_GPRMC, location);
    if (!parser.matches()) {
        return false;
    }
    DateBuilder dateBuilder = new DateBuilder().setTime(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0), parser.nextInt(0));
    position.setValid(parser.next().equals("A"));
    position.setLatitude(parser.nextCoordinate());
    position.setLongitude(parser.nextCoordinate());
    position.setSpeed(parser.nextDouble(0));
    position.setCourse(parser.nextDouble(0));
    dateBuilder.setDateReverse(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0));
    position.setTime(dateBuilder.getDate());
    return true;
}
Also used : DateBuilder(org.traccar.helper.DateBuilder) Parser(org.traccar.helper.Parser)

Example 72 with Parser

use of org.traccar.helper.Parser in project traccar by tananaev.

the class MegastekProtocolDecoder method decodeNew.

private Position decodeNew(Channel channel, SocketAddress remoteAddress, String sentence) {
    Parser parser = new Parser(PATTERN_NEW, sentence);
    if (!parser.matches()) {
        return null;
    }
    DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parser.next());
    if (deviceSession == null) {
        return null;
    }
    Position position = new Position(getProtocolName());
    position.setDeviceId(deviceSession.getDeviceId());
    if (parser.next().equals("S")) {
        position.set(Position.KEY_ARCHIVE, true);
    }
    position.setTime(parser.nextDateTime(Parser.DateTimeFormat.DMY_HMS));
    position.setValid(parser.next().equals("A"));
    position.setLatitude(parser.nextCoordinate());
    position.setLongitude(parser.nextCoordinate());
    position.set(Position.KEY_SATELLITES, parser.nextInt(0));
    position.set(Position.KEY_HDOP, parser.nextDouble(0));
    position.setSpeed(parser.nextDouble(0));
    position.setCourse(parser.nextDouble(0));
    position.setAltitude(parser.nextDouble(0));
    if (parser.hasNext()) {
        position.set(Position.KEY_ODOMETER, parser.nextDouble(0) * 1000);
    }
    position.setNetwork(new Network(CellTower.from(parser.nextInt(0), parser.nextInt(0), parser.nextHexInt(0), parser.nextHexInt(0), parser.nextInt(0))));
    position.set(Position.KEY_INPUT, parser.nextBinInt(0));
    position.set(Position.KEY_OUTPUT, parser.nextBinInt(0));
    for (int i = 1; i <= 3; i++) {
        position.set(Position.PREFIX_ADC + i, parser.nextInt(0));
    }
    for (int i = 1; i <= 2; i++) {
        String adc = parser.next();
        if (adc != null) {
            position.set(Position.PREFIX_TEMP + i, Double.parseDouble(adc));
        }
    }
    position.set(Position.KEY_DRIVER_UNIQUE_ID, parser.next());
    String battery = parser.next();
    if (battery != null) {
        position.set(Position.KEY_BATTERY, Integer.parseInt(battery));
    }
    position.set(Position.KEY_ALARM, decodeAlarm(parser.next()));
    return position;
}
Also used : DeviceSession(org.traccar.DeviceSession) Position(org.traccar.model.Position) Network(org.traccar.model.Network) Parser(org.traccar.helper.Parser)

Example 73 with Parser

use of org.traccar.helper.Parser in project traccar by tananaev.

the class MeiligaoProtocolDecoder method decodeObdA.

private Position decodeObdA(Position position, String sentence) {
    Parser parser = new Parser(PATTERN_OBDA, sentence);
    if (!parser.matches()) {
        return null;
    }
    getLastLocation(position, null);
    position.set("totalIgnitionNo", parser.nextInt(0));
    position.set("totalDrivingTime", parser.nextDouble(0));
    position.set("totalIdlingTime", parser.nextDouble(0));
    position.set("averageHotStartTime", parser.nextInt(0));
    position.set("averageSpeed", parser.nextInt(0));
    position.set("historyHighestSpeed", parser.nextInt(0));
    position.set("historyHighestRpm", parser.nextInt(0));
    position.set("totalHarshAccerleration", parser.nextInt(0));
    position.set("totalHarshBrake", parser.nextInt(0));
    return position;
}
Also used : Parser(org.traccar.helper.Parser)

Example 74 with Parser

use of org.traccar.helper.Parser in project traccar by tananaev.

the class MeiligaoProtocolDecoder method decodeRegular.

private Position decodeRegular(Position position, String sentence) {
    Parser parser = new Parser(PATTERN, sentence);
    if (!parser.matches()) {
        return null;
    }
    DateBuilder dateBuilder = new DateBuilder().setTime(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0));
    position.setValid(parser.next().equals("A"));
    position.setLatitude(parser.nextCoordinate());
    position.setLongitude(parser.nextCoordinate());
    if (parser.hasNext()) {
        position.setSpeed(parser.nextDouble(0));
    }
    if (parser.hasNext()) {
        position.setCourse(parser.nextDouble(0));
    }
    dateBuilder.setDateReverse(parser.nextInt(0), parser.nextInt(0), parser.nextInt(0));
    position.setTime(dateBuilder.getDate());
    position.set(Position.KEY_HDOP, parser.nextDouble());
    if (parser.hasNext()) {
        position.setAltitude(parser.nextDouble(0));
    }
    position.set(Position.KEY_STATUS, parser.next());
    for (int i = 1; i <= 8; i++) {
        position.set(Position.PREFIX_ADC + i, parser.nextHexInt());
    }
    position.set(Position.KEY_RSSI, parser.nextHexInt());
    position.set(Position.KEY_ODOMETER, parser.nextHexLong());
    position.set(Position.KEY_SATELLITES, parser.nextHexInt());
    position.set("driverLicense", parser.next());
    position.set(Position.KEY_ODOMETER, parser.nextLong());
    position.set(Position.KEY_DRIVER_UNIQUE_ID, parser.next());
    return position;
}
Also used : DateBuilder(org.traccar.helper.DateBuilder) Parser(org.traccar.helper.Parser)

Example 75 with Parser

use of org.traccar.helper.Parser in project traccar by tananaev.

the class MeiligaoProtocolDecoder method decodeObd.

private Position decodeObd(Position position, String sentence) {
    Parser parser = new Parser(PATTERN_OBD, sentence);
    if (!parser.matches()) {
        return null;
    }
    getLastLocation(position, null);
    position.set(Position.KEY_BATTERY, parser.nextDouble());
    position.set(Position.KEY_RPM, parser.nextInt());
    position.set(Position.KEY_OBD_SPEED, parser.nextInt());
    position.set(Position.KEY_THROTTLE, parser.nextDouble());
    position.set(Position.KEY_ENGINE_LOAD, parser.nextDouble());
    position.set(Position.KEY_COOLANT_TEMP, parser.nextInt());
    position.set(Position.KEY_FUEL_CONSUMPTION, parser.nextDouble());
    position.set("averageFuelConsumption", parser.nextDouble());
    position.set("drivingRange", parser.nextDouble());
    position.set(Position.KEY_ODOMETER, parser.nextDouble());
    position.set("singleFuelConsumption", parser.nextDouble());
    position.set("totalFuelConsumption", parser.nextDouble());
    position.set(Position.KEY_DTCS, parser.nextInt());
    position.set("hardAccelerationCount", parser.nextInt());
    position.set("hardBrakingCount", parser.nextInt());
    return position;
}
Also used : Parser(org.traccar.helper.Parser)

Aggregations

Parser (org.traccar.helper.Parser)137 Position (org.traccar.model.Position)129 DeviceSession (org.traccar.DeviceSession)110 DateBuilder (org.traccar.helper.DateBuilder)41 Network (org.traccar.model.Network)25 WifiAccessPoint (org.traccar.model.WifiAccessPoint)8 Date (java.util.Date)7 ChannelBuffer (org.jboss.netty.buffer.ChannelBuffer)7 LinkedList (java.util.LinkedList)4 Pattern (java.util.regex.Pattern)4 Matcher (java.util.regex.Matcher)2 HttpRequest (org.jboss.netty.handler.codec.http.HttpRequest)2 QueryStringDecoder (org.jboss.netty.handler.codec.http.QueryStringDecoder)2 ParseException (java.text.ParseException)1 SimpleDateFormat (java.text.SimpleDateFormat)1 ArrayList (java.util.ArrayList)1 Calendar (java.util.Calendar)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1