diff --git a/src/main/java/org/traccar/protocol/TeltonikaProtocolDecoder.java b/src/main/java/org/traccar/protocol/TeltonikaProtocolDecoder.java index 2531c0c2f..bb49d5bfa 100644 --- a/src/main/java/org/traccar/protocol/TeltonikaProtocolDecoder.java +++ b/src/main/java/org/traccar/protocol/TeltonikaProtocolDecoder.java @@ -196,6 +196,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { Predicate any = (m) -> true; Predicate fmbXXX = (m) -> m != null && m.matches("FM[B-Z]...|MTB100|MSP500"); Predicate fmb6XX = (m) -> m != null && m.matches("FM.6.."); + Predicate tatXXX = (m) -> m != null && m.matches("T.T..."); register(1, any, (p, b) -> p.set(Position.PREFIX_IN + 1, b.readUnsignedByte() > 0)); register(2, any, (p, b) -> p.set(Position.PREFIX_IN + 2, b.readUnsignedByte() > 0)); @@ -258,8 +259,8 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { register(182, any, (p, b) -> p.set(Position.KEY_HDOP, b.readUnsignedShort() / 10.0)); register(199, any, (p, b) -> p.set(Position.KEY_ODOMETER_TRIP, b.readUnsignedInt())); register(200, fmbXXX, (p, b) -> p.set("sleepMode", b.readUnsignedByte())); - register(205, fmbXXX, (p, b) -> p.set("cid2g", b.readUnsignedShort())); - register(206, fmbXXX, (p, b) -> p.set("lac", b.readUnsignedShort())); + register(205, fmbXXX.or(tatXXX), (p, b) -> p.set("cid2g", b.readUnsignedShort())); + register(206, fmbXXX.or(tatXXX), (p, b) -> p.set("lac", b.readUnsignedShort())); register(236, any, (p, b) -> p.addAlarm(b.readUnsignedByte() > 0 ? Position.ALARM_GENERAL : null)); register(239, any, (p, b) -> p.set(Position.KEY_IGNITION, b.readUnsignedByte() > 0)); register(240, any, (p, b) -> p.set(Position.KEY_MOTION, b.readUnsignedByte() > 0)); @@ -279,7 +280,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder { register(175, fmbXXX, (p, b) -> { p.addAlarm(b.readUnsignedByte() > 0 ? Position.ALARM_GEOFENCE_ENTER : Position.ALARM_GEOFENCE_EXIT); }); - register(636, fmbXXX, (p, b) -> p.set("cid4g", b.readUnsignedInt())); + register(636, fmbXXX.or(tatXXX), (p, b) -> p.set("cid4g", b.readUnsignedInt())); register(662, fmbXXX, (p, b) -> p.set(Position.KEY_DOOR, b.readUnsignedByte() > 0)); register(10644, fmbXXX, (p, b) -> p.set("tempProbe1", b.readShort() / 100.0)); register(10645, fmbXXX, (p, b) -> p.set("tempProbe2", b.readShort() / 100.0));