STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
self_test.h
Go to the documentation of this file.
1#ifndef STAR_SELF_TEST_H
2#define STAR_SELF_TEST_H
3
4#include "self_test_port.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#define SELF_TEST_DEFAULT_SESSION_TIMEOUT_MS 29000U
11
12typedef struct {
13 uint16_t device_id;
16
17typedef struct {
18 uint8_t device_count;
29 /* Zero selects 29 s; explicit values must be 1..29000 ms. */
32
33typedef struct {
34 uint32_t started_at_ms;
35 uint32_t retry_at_ms;
36 bool started;
39
40/* Fixed caller-owned storage. Zero-initialize; treat fields as private. */
57
58/* Inputs are copied and must not alias test's storage. Missing callbacks are
59 * supported and report NOT_IMPLEMENTED. Invalid config disables the instance.
60 */
62 const self_test_port_t* port, void* context,
63 uint32_t now_ms);
64bool self_test_reset(self_test_t* test, uint32_t now_ms);
65/* One owner, monotonic modular milliseconds, tick gaps < 2^31 ms. */
66void self_test_tick(self_test_t* test, uint32_t now_ms);
67/* Borrowed until next tick/reset; NULL for an invalid instance. */
69
70#ifdef __cplusplus
71}
72#endif
73#endif
static const emmc_port_t port
Definition emmc_stm32.c:210
static const idle_config_t config
Definition idle_task.c:17
bool self_test_reset(self_test_t *test, uint32_t now_ms)
Definition self_test.c:74
bool self_test_init(self_test_t *test, const self_test_config_t *config, const self_test_port_t *port, void *context, uint32_t now_ms)
Definition self_test.c:98
const self_test_status_t * self_test_status(const self_test_t *test)
Definition self_test.c:270
void self_test_tick(self_test_t *test, uint32_t now_ms)
Definition self_test.c:244
#define SELF_TEST_MAX_DEVICES
uint32_t heartbeat_interval_ms
Definition self_test.h:22
uint32_t session_timeout_ms
Definition self_test.h:30
self_test_device_t devices[SELF_TEST_MAX_DEVICES]
Definition self_test.h:19
uint32_t callback_budget_ms
Definition self_test.h:25
uint32_t retry_interval_ms
Definition self_test.h:21
uint32_t battery_interval_ms
Definition self_test.h:23
uint32_t probe_timeout_ms
Definition self_test.h:20
uint8_t device_count
Definition self_test.h:18
uint8_t publication_max_attempts
Definition self_test.h:28
uint32_t battery_max_age_ms
Definition self_test.h:24
uint8_t probe_max_attempts
Definition self_test.h:27
uint32_t tick_budget_ms
Definition self_test.h:26
uint16_t device_id
Definition self_test.h:13
uint32_t last_heartbeat_ms
Definition self_test.h:48
bool battery_started
Definition self_test.h:53
uint32_t last_battery_ms
Definition self_test.h:49
self_test_probe_state_t probes[SELF_TEST_MAX_DEVICES]
Definition self_test.h:46
uint8_t next_probe
Definition self_test.h:51
bool heartbeat_started
Definition self_test.h:52
self_test_config_t config
Definition self_test.h:42
self_test_port_t port
Definition self_test.h:43
uint32_t session_started_ms
Definition self_test.h:47
bool publication_retry
Definition self_test.h:54
bool initialized
Definition self_test.h:55
self_test_status_t status
Definition self_test.h:45
void * context
Definition self_test.h:44
uint32_t last_publication_ms
Definition self_test.h:50