Tak Packet V2Data
Platform-agnostic data model for a TAKPacketV2 — the SDK's internal representation, decoupled from any specific protobuf library.
The parser (CotXmlParser) produces it from CoT XML; the builder (CotXmlBuilder) renders it back; TakPacketV2Serializer converts it to/from protobuf wire bytes (each platform uses its native protobuf library).
Shape: 26 envelope fields (the always-present scalars below) plus a single payload of type Payload (a sealed hierarchy with one variant per oneof arm). Two optional top-level annotations — environment and sensorFov — attach to any payload variant. PLI is implicit: there is no bool pli field; a packet whose payload is Payload.None (modeled here as Payload.Pli) and whose cotTypeId is an a-f-* friendly type IS a PLI position report.
All numeric fields carry the wire units documented per-property below (degrees×1e7 coordinates, cm/s speed, degrees×100 course, meters-HAE altitude); the data model stores already-converted integers, not floats.
Constructors
Types
Weather annotation from a CoT <environment> detail element.
Sensor field-of-view cone from a CoT <sensor> detail element.
Properties
well-known CoT type as a CotType enum int (see CotTypeMapper); CotTypeMapper.COTTYPE_OTHER when the type is unknown.
raw CoT type string, set only when cotTypeId is CotTypeMapper.COTTYPE_OTHER so unknown types round-trip losslessly; null otherwise.
device identifier from <uid Droid="…"/>.
Observed weather annotation from <environment> CoT detail element. Attaches to any payload variant. null means the source XML had no <environment> element — preserved as proto3 optional on the wire.
position source as a GeoPointSource enum int (see the GEOSRC_* constants in CotXmlParser).
coordinate-generation method as a CotHow enum int (see CotTypeMapper).
longitude in degrees × 1e7 (sfixed32 wire convention).
optional free-text <remarks> for non-chat payload types; stripped by TakCompressor.compressWithRemarksFallback when over MTU.
Sensor field-of-view cone from <sensor> CoT detail element. Attaches to any payload variant. null means the source XML had no <sensor> element.
seconds from the event's time to its stale timestamp; the builder floors this at 45 s on emit.
the low 14 bits of the event's start as epoch seconds, or null when the sender did not supply one. Carried so a receiver can tell how old a report actually is: without it the builder has nothing to rebuild start from and stamps the decode time, which makes every packet look equally fresh however long it spent in transit. See StartEpoch for the reconstruction, which is not a plain bit-splice.
TAK platform (ATAK-CIV, iTAK, WinTAK).
TAK client version string.
Team palette enum value (1..14; see AtakPalette), 0 = unspecified.