Support network for TATxxx devices (fix #5284)

This commit is contained in:
Anton Tananaev
2026-05-23 14:32:01 -07:00
parent 5c11ec7a6e
commit f9af7cdf16

View File

@@ -196,6 +196,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
Predicate<String> any = (m) -> true;
Predicate<String> fmbXXX = (m) -> m != null && m.matches("FM[B-Z]...|MTB100|MSP500");
Predicate<String> fmb6XX = (m) -> m != null && m.matches("FM.6..");
Predicate<String> 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));