Telemetry Service

group Telemetry Service

Collects, organizes, and exposes system-wide data.

The Telemetry service decouples data collection from data transmission. It ensures that when the OBC requests a status update, the data is already aggregated and ready to read.

group Types

Types for telemetry.

struct uart_telemetry_t
#include <telemetry.h>

Telemetry snapshot for a single UART port.

Public Members

uint32_t rx_byte_count

Total received bytes

uint32_t rx_packet_count

Total packets decoded

uint32_t rx_crc_error_count

Total errors counted

bool initialized

True if initialized

struct eps_telemetry_t
#include <telemetry.h>

The Master Telemetry Packet.

This structure contains a snapshot of the entire EPS state. It may include nested structures from other services.

Public Members

battery_status_t battery

BMS status telemetry

mppt_channel_t mppt_channels[NUM_MPPT_CHANNELS]

Solar/MPPT channels telemetry

rail_t rails[NUM_POWER_RAILS]

Power rails telemetry

redundancy_telemetry_t redundancy

Redundancy manager telemetry

uart_telemetry_t uart1

USART1 telemetry

uart_telemetry_t uart3

USART3 telemetry

struct telemetry_t
#include <telemetry.h>

Service state container.

Holds the actual instance data for the telemetry service, including the current snapshot of the system state.

Public Members

eps_telemetry_t telemetry

The current aggregated data snapshot.

uint32_t tick_counter

Internal counter for timing telemetry collection

bool initialized

Whether the telemetry service has been initialized

group Public API

Functions for updating and retrieving telemetry.

Functions

void telemetry_init(telemetry_t *telemetry)

Initialize the Telemetry aggregator instance.

Prepares the internal data structures and zeroes out the telemetry packet within the provided handle.

Parameters:

telemetry[out] Pointer to the telemetry service instance to initialize.

void telemetry_update(telemetry_t *telemetry)

Periodic update task.

This function queries all other active services (Battery, Rails, etc.) to get their latest status and updates the snapshot inside the provided handle.

Parameters:

telemetry[inout] Pointer to the telemetry service instance to update.

eps_telemetry_t telemetry_get_all(telemetry_t *telemetry)

Retrieve the latest full system snapshot.

Parameters:

telemetry[in] Pointer to the telemetry service instance to read from.

Returns:

eps_telemetry_t A copy of the aggregated telemetry data.