STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
ControlMessages.hpp
Go to the documentation of this file.
1#ifndef DAQ_CONTROL_MESSAGES_HPP
2#define DAQ_CONTROL_MESSAGES_HPP
3
4#include <cstdint>
5
7
8namespace comms {
9namespace messages {
10namespace control {
11
12// Import CommsMessage from parent namespace
13using comms::CommsMessage;
14
15/**
16 * @brief Actuator command message
17 *
18 * Contains commands sent to actuators (valves, igniters, etc.).
19 */
21 CommsMessage<uint64_t, // (0) timestamp_ns - monotonic timestamp
22 uint8_t, // (1) actuator_id - Actuator identifier
23 uint8_t, // (2) command_type - Command type (OPEN, CLOSE, PULSE, etc.)
24 float, // (3) value - Command value (duration, duty cycle, etc.)
25 uint8_t // (4) status - Command status/acknowledgment
26 >;
27
28/**
29 * @brief Control state message
30 *
31 * Contains current control system state (PID terms, setpoints, etc.).
32 */
33using ControlStateMessage = CommsMessage<uint64_t, // (0) timestamp_ns - monotonic timestamp
34 double, // (1) setpoint_x - X-axis setpoint
35 double, // (2) setpoint_y - Y-axis setpoint
36 double, // (3) setpoint_z - Z-axis setpoint
37 double, // (4) pid_p_x - X-axis proportional term
38 double, // (5) pid_i_x - X-axis integral term
39 double, // (6) pid_d_x - X-axis derivative term
40 double, // (7) pid_p_y - Y-axis proportional term
41 double, // (8) pid_i_y - Y-axis integral term
42 double, // (9) pid_d_y - Y-axis derivative term
43 double, // (10) pid_p_z - Z-axis proportional term
44 double, // (11) pid_i_z - Z-axis integral term
45 double // (12) pid_d_z - Z-axis derivative term
46 >;
47
48} // namespace control
49} // namespace messages
51} // namespace comms
52
53#endif // DAQ_CONTROL_MESSAGES_HPP
CommsMessage< uint64_t, uint8_t, uint8_t, float, uint8_t > ActuatorCommandMessage
Actuator command message.
CommsMessage< uint64_t, double, double, double, double, double, double, double, double, double, double, double, double > ControlStateMessage
Control state message.
Central message header for all communication messages.
CommsMessage - Template-based message serialization.