STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
anonymous_namespace{heartbeat_service_main.cpp} Namespace Reference

Heartbeat Service — C++ SERVER_HEARTBEAT broadcaster. More...

Functions

void signalHandler (int)
static constexpr uint8_t stateToEngine (uint8_t s)
void elodinThread (std::string host, uint16_t port)
std::vector< uint8_t > buildHeartbeatPacket (uint8_t engine_state)

Variables

std::atomic< bool > g_running {true}
std::atomic< uint8_t > g_engine_state {0}
constexpr int kElodinRecvTimeoutMs = 3000
constexpr uint8_t SERVER_HEARTBEAT_TYPE = 2
constexpr uint8_t DIABLO_VERSION = 0

Detailed Description

Heartbeat Service — C++ SERVER_HEARTBEAT broadcaster.

Subscribes to Elodin [0x5000] (SequencerState) for current state, maps it to the legacy EngineState enum (0-4), and broadcasts SERVER_HEARTBEAT (type 2) to all boards on the subnet every 1s.

Packet: type(1)=2, version(1)=0, timestamp_ms(4 LE), engine_state(1)

Usage: ./heartbeat_service [–config PATH] [–elodin-host HOST] [–elodin-port PORT] [–broadcast-ip IP] [–broadcast-port PORT] [–interval-ms MS]

Function Documentation

◆ buildHeartbeatPacket()

std::vector< uint8_t > anonymous_namespace{heartbeat_service_main.cpp}::buildHeartbeatPacket ( uint8_t engine_state)

Definition at line 156 of file heartbeat_service_main.cpp.

References DIABLO_VERSION, and SERVER_HEARTBEAT_TYPE.

Referenced by main().

◆ elodinThread()

void anonymous_namespace{heartbeat_service_main.cpp}::elodinThread ( std::string host,
uint16_t port )

◆ signalHandler()

void anonymous_namespace{heartbeat_service_main.cpp}::signalHandler ( int )

Definition at line 43 of file heartbeat_service_main.cpp.

References g_running.

◆ stateToEngine()

constexpr uint8_t anonymous_namespace{heartbeat_service_main.cpp}::stateToEngine ( uint8_t s)
staticconstexpr

Definition at line 59 of file heartbeat_service_main.cpp.

Referenced by elodinThread().

Variable Documentation

◆ DIABLO_VERSION

uint8_t anonymous_namespace{heartbeat_service_main.cpp}::DIABLO_VERSION = 0
constexpr

Definition at line 49 of file heartbeat_service_main.cpp.

Referenced by buildHeartbeatPacket().

◆ g_engine_state

std::atomic<uint8_t> anonymous_namespace{heartbeat_service_main.cpp}::g_engine_state {0}

Definition at line 38 of file heartbeat_service_main.cpp.

Referenced by elodinThread(), and main().

◆ g_running

std::atomic<bool> anonymous_namespace{heartbeat_service_main.cpp}::g_running {true}

Definition at line 37 of file heartbeat_service_main.cpp.

Referenced by elodinThread(), and signalHandler().

◆ kElodinRecvTimeoutMs

int anonymous_namespace{heartbeat_service_main.cpp}::kElodinRecvTimeoutMs = 3000
constexpr

Definition at line 41 of file heartbeat_service_main.cpp.

Referenced by elodinThread().

◆ SERVER_HEARTBEAT_TYPE

uint8_t anonymous_namespace{heartbeat_service_main.cpp}::SERVER_HEARTBEAT_TYPE = 2
constexpr

Definition at line 48 of file heartbeat_service_main.cpp.

Referenced by buildHeartbeatPacket().