TAKMeshIntegration

class TAKMeshIntegration(takServerManager: TAKServerManager, commandSender: CommandSender, serviceRepository: ServiceRepository, meshConfigHandler: MeshConfigHandler, nodeRepository: NodeRepository)(source)

Bidirectional bridge between the local TAK server and the Meshtastic mesh network.

Outbound traffic (TAK client -> mesh) is version-gated on the connected radio's firmware version, exposed via Capabilities.supportsTakV2:

  • Firmware >= 2.8.0: TAKPacketV2 on port 78 (ATAK_PLUGIN_V2) with zstd dictionary compression via TAKPacket-SDK. Supports all CoT payload types (PLI, GeoChat, DrawnShape, Marker, Route, Aircraft, Casevac, Emergency, Task) with compact typed encodings that fit under the 237B LoRa MTU.

  • Firmware <= 2.7.x: Legacy TAKPacket on port 72 (ATAK_PLUGIN) with bare protobuf encoding. Supports only PLI and GeoChat — shapes, markers, routes, and other typed CoT events are dropped (with a warning) because the legacy schema cannot represent them.

Inbound traffic (mesh -> TAK client) is always dual-path tolerant — both port 72 and port 78 are dispatched regardless of the local radio's firmware version, so a v2-capable node can still relay legacy v1 packets received from older nodes in mixed-firmware mesh deployments.

Constructors

Link copied to clipboard
constructor(takServerManager: TAKServerManager, commandSender: CommandSender, serviceRepository: ServiceRepository, meshConfigHandler: MeshConfigHandler, nodeRepository: NodeRepository)

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun start(scope: CoroutineScope)
Link copied to clipboard
fun stop()