Package-level declarations

Types

Link copied to clipboard

Supplies the bundled server / client PKCS#12 bytes for TAKDataPackageGenerator. Platform implementations live in jvmAndroidMain.

Link copied to clipboard
@Serializable
data class CoTChat(val message: String, val senderCallsign: String? = null, val chatroom: String = "All Chat Rooms")
Link copied to clipboard
@Serializable
data class CoTContact(val callsign: String, val endpoint: String? = null, val phone: String? = null)
Link copied to clipboard
@Serializable
data class CoTGroup(val name: String, val role: String)
Link copied to clipboard
@Serializable
data class CoTMessage(val uid: String, val type: String, val time: Instant = Clock.System.now(), val start: Instant = time, val stale: Instant, val how: String = "m-g", val latitude: Double = 0.0, val longitude: Double = 0.0, val hae: Double = TAK_UNKNOWN_POINT_VALUE, val ce: Double = TAK_UNKNOWN_POINT_VALUE, val le: Double = TAK_UNKNOWN_POINT_VALUE, val contact: CoTContact? = null, val group: CoTGroup? = null, val status: CoTStatus? = null, val track: CoTTrack? = null, val chat: CoTChat? = null, val remarks: String? = null, val rawDetailXml: String? = null, val parsedDetailXml: String? = null, val sourceEventXml: String? = null)
Link copied to clipboard
@Serializable
data class CoTStatus(val battery: Int)
Link copied to clipboard
@Serializable
data class CoTTrack(val speed: Double, val course: Double)
Link copied to clipboard
class CoTXmlParser(xml: String)
Link copied to clipboard
data class InboundCoTMessage(val cotMessage: CoTMessage, val clientInfo: TAKClientInfo? = null)

A CoT message received from a connected TAK client, paired with the client's identity.

Link copied to clipboard

Converts route CoT XML (b-m-r) into ATAK-importable KML data packages.

Link copied to clipboard
data class TAKClientInfo(val id: String, val endpoint: String, val callsign: String? = null, val uid: String? = null, val connectedAt: Long = Clock.System.now().toEpochMilliseconds())
Link copied to clipboard
sealed class TAKConnectionEvent
Link copied to clipboard

Generates TAK data packages (.zip) compatible with ATAK/iTAK/WinTAK import.

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

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

Link copied to clipboard
class TakMeshTestRunner(commandSender: CommandSender)

Debug-only test runner that sends the SDK's CoT XML test fixtures through the real TAK mesh pipeline: strip → parse → compress → send to mesh radio.

Link copied to clipboard

Legacy v1 CoT <-> TAKPacket conversion for firmware <= 2.7.x.

Link copied to clipboard

Conversion between CoTMessage and TAKPacketV2 (v2 wire protocol).

Link copied to clipboard
interface TAKServer

Platform-agnostic contract for the Meshtastic TAK server.

Link copied to clipboard
Link copied to clipboard
data class TakTestResult(val fixtureName: String, val xmlBytes: Int, val compressedBytes: Int, val passed: Boolean, val error: String? = null)

Result of sending a single test fixture through the TAK mesh pipeline.

Functions

Link copied to clipboard
expect fun createTAKServer(dispatchers: CoroutineDispatchers, port: Int = DEFAULT_TAK_PORT): TAKServer

Platform factory for TAKServer. The JVM/Android implementation lives in jvmAndroidMain and uses JSSE (SSLServerSocket) with the bundled server.p12 identity and ca.pem client trust store.

actual fun createTAKServer(dispatchers: ERROR CLASS: Symbol not found for CoroutineDispatchers, port: Int): TAKServer

actual factory for the KMP expect fun createTAKServer declared in commonMain. Both the Desktop JVM target and the Android target share this source set, so both run the same JSSE-based TLS listener.

Link copied to clipboard
fun User.toCoTMessage(position: Position?, team: String = DEFAULT_TAK_TEAM_NAME, role: String = DEFAULT_TAK_ROLE_NAME, battery: Int = DEFAULT_TAK_BATTERY): CoTMessage
fun Position.toCoTMessage(uid: String, callsign: String, team: String = DEFAULT_TAK_TEAM_NAME, role: String = DEFAULT_TAK_ROLE_NAME, battery: Int = DEFAULT_TAK_BATTERY): CoTMessage
Link copied to clipboard

Serialize this CoTMessage to a single <event> XML element suitable for the CoT streaming TCP protocol used by ATAK / iTAK / WinTAK clients.