textMessages

val RadioClient.textMessages: Flow<MeshPacket>(source)

Filters RadioClient.packets to only text-message packets — those with decoded.portnum == [PortNum.TEXT_MESSAGE_APP].

Each emitted MeshPacket can be accessed via:

  • asText() — decoded UTF-8 body; returns null if the payload is empty

  • NodeId(packet.from) — sender node

  • ChannelIndex(packet.channel) — channel index (0–7)

  • packet.rx_time — receive timestamp (Unix seconds, Int)

  • packet.to — destination node num (0xFFFFFFFF = broadcast)

This flow is hot with no replay — it inherits RadioClient.packets semantics. Subscribers receive only packets that arrive after they start collecting.