Raxol.Swarm.OverlayRenderer (Raxol v2.6.0)

View Source

Composites multi-node state into cell tuples for rendering.

Pure functional module. Takes tactical overlay state and renders it into a list of positioned cell tuples {x, y, char, fg, bg, attrs}.

Staleness rendering: data older than 5s renders dimmed with "[stale]". Data older than 30s renders as "[OFFLINE]".

Summary

Functions

Renders comms link quality per node.

Renders the full tactical overlay into cell tuples.

Renders a condensed wingmate summary for each connected node.

Types

cell()

@type cell() ::
  {non_neg_integer(), non_neg_integer(), String.t(), atom(), atom(), map()}

region()

@type region() :: {non_neg_integer(), non_neg_integer(), pos_integer(), pos_integer()}

Functions

render_comms_status(arg, links)

@spec render_comms_status(region(), %{required(node()) => map()}) :: [cell()]

Renders comms link quality per node.

Format per node: node_name [====] 12ms

render_overlay(overlay_state, opts \\ [])

@spec render_overlay(
  map(),
  keyword()
) :: [cell()]

Renders the full tactical overlay into cell tuples.

Returns a list of {x, y, char, fg, bg, attrs} tuples.

render_wingmate_summary(arg, node_statuses, opts \\ [])

@spec render_wingmate_summary(region(), [map()], keyword()) :: [cell()]

Renders a condensed wingmate summary for each connected node.

Format per node: [role] node_name RTT:12ms status