Loop Timing Witness
Native controller and runtime interfaces; hardware qualification pending
Loading...
Searching...
No Matches
witness_controller.h
Go to the documentation of this file.
1// SPDX-License-Identifier: AGPL-3.0-or-later
2// Commercial license available
3// © Concepts 1996–2026 Miroslav Šotek. All rights reserved.
4// © Code 2020–2026 Miroslav Šotek. All rights reserved.
5// ORCID: 0009-0009-3560-0851
6// Contact: www.anulum.li | protoscience@anulum.li
7// Loop Timing Witness — controllers/c/witness_controller.h
8
12
13#ifndef WITNESS_CONTROLLER_H
14#define WITNESS_CONTROLLER_H
15
16#include <stdbool.h>
17#include <stdint.h>
18
25
31
33typedef struct {
34 uint32_t cycle;
38
41
44
55 uint32_t cycle, int32_t reference, int32_t position,
56 witness_command *command);
57
64bool witness_lqr_step(const witness_coefficients *coefficients, uint32_t cycle, int32_t reference,
65 int32_t position, int32_t velocity, witness_command *command);
66
130
131#endif
bool witness_lqr_step(const witness_coefficients *coefficients, uint32_t cycle, int32_t reference, int32_t position, int32_t velocity, witness_command *command)
void witness_pid_reset(witness_pid_state *state)
bool witness_pid_step(const witness_coefficients *coefficients, witness_pid_state *state, uint32_t cycle, int32_t reference, int32_t position, witness_command *command)
bool witness_coefficients_valid(const witness_coefficients *coefficients)