STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
test_actuator_state_machine.cpp File Reference
#include <unity.h>
#include <cstring>
#include <set>
#include <vector>
#include "DiabloEnums.h"
#include "DiabloPacketUtils.cpp"
#include "DiabloPacketUtils.h"
#include "DiabloPackets.h"
Include dependency graph for test_actuator_state_machine.cpp:

Go to the source code of this file.

Enumerations

enum class  ActuatorControllerState : uint8_t {
  WaitingForServer , Active , StandardAbort , NoConnectionAbort ,
  PTAbort , NoPTAbort , AbortFinished , ConnectionLossDetected ,
  StandaloneAbort , WaitingForServer , Active , StandardAbort ,
  NoConnectionAbort , AbortFinished , ConnectionLossDetected , WaitingForServer = 1 ,
  Active = 2 , ConnectionLossDetected = 3 , NoConnectionAbort = 4 , NoConnAbortFollower = 5 ,
  PTAbort = 6 , NoPTAbort = 7 , AbortFinished = 8 , WaitingForServer = 1 ,
  Active = 2 , ConnectionLossDetected = 3 , NoConnectionAbort = 4 , NoConnAbortFollower = 5 ,
  PTAbort = 6 , NoPTAbort = 7 , AbortFinished = 8
}
 Actuator state machine unit tests. More...
enum class  IncomingPacketKind {
  None , ServerHeartbeat , Config , Abort ,
  AbortDone , ClearAbort , SensorData , None ,
  ServerHeartbeat , Config , Abort , AbortDone ,
  ClearAbort , None , ServerHeartbeat , Config ,
  Abort , AbortDone , ClearAbort , SensorData ,
  NoConnAbort , None , ServerHeartbeat , Config ,
  Abort , AbortDone , ClearAbort , SensorData ,
  NoConnAbort , None , ServerHeartbeat , SensorConfig ,
  ClearAbort , NoConnAbort
}

Functions

static daq::BoardState getBoardStateForHeartbeat (ActuatorControllerState state)
static ActuatorControllerState applyPacketTransition (ActuatorControllerState state, IncomingPacketKind kind, bool is_abort_controller, bool enable_transitions)
void test_actuator_waiting_config_goes_active ()
void test_actuator_waiting_heartbeat_stays ()
void test_actuator_connloss_heartbeat_goes_active ()
void test_actuator_abort_finished_clear_goes_active ()
void test_actuator_active_abort_stays_active ()
void test_actuator_active_abort_goes_abort_finished ()
void test_actuator_active_abort_done_stays_active ()
void test_actuator_active_abort_done_goes_abort_finished ()
void test_actuator_active_noconn_abort_stays_active ()
void test_actuator_active_noconn_abort_goes_follower ()
void test_actuator_noconn_abort_state_clear_doesnt_transition ()
void test_actuator_pt_abort_clear_doesnt_transition ()
void test_actuator_none_kind_stays ()
void test_actuator_heartbeat_state_mapping_table ()
void test_actuator_heartbeat_board_id_preserved ()
void setUp ()
void tearDown ()
int main (int argc, char **argv)

Enumeration Type Documentation

◆ ActuatorControllerState

enum class ActuatorControllerState : uint8_t
strong

Actuator state machine unit tests.

Tests the actuator applyPacketTransition() and getBoardStateForHeartbeat() functions. Because these are static in Actuator_Hotfire/main.cpp with tightly coupled globals, we extract the pure logic here for testing.

Enumerator
WaitingForServer 
Active 
StandardAbort 
NoConnectionAbort 
PTAbort 
NoPTAbort 
AbortFinished 
ConnectionLossDetected 
StandaloneAbort 
WaitingForServer 
Active 
StandardAbort 
NoConnectionAbort 
AbortFinished 
ConnectionLossDetected 
WaitingForServer 
Active 
ConnectionLossDetected 
NoConnectionAbort 
NoConnAbortFollower 
PTAbort 
NoPTAbort 
AbortFinished 
WaitingForServer 
Active 
ConnectionLossDetected 
NoConnectionAbort 
NoConnAbortFollower 
PTAbort 
NoPTAbort 
AbortFinished 

Definition at line 25 of file test_actuator_state_machine.cpp.

◆ IncomingPacketKind

enum class IncomingPacketKind
strong
Enumerator
None 
ServerHeartbeat 
Config 
Abort 
AbortDone 
ClearAbort 
SensorData 
None 
ServerHeartbeat 
Config 
Abort 
AbortDone 
ClearAbort 
None 
ServerHeartbeat 
Config 
Abort 
AbortDone 
ClearAbort 
SensorData 
NoConnAbort 
None 
ServerHeartbeat 
Config 
Abort 
AbortDone 
ClearAbort 
SensorData 
NoConnAbort 
None 
ServerHeartbeat 
SensorConfig 
ClearAbort 
NoConnAbort 

Definition at line 36 of file test_actuator_state_machine.cpp.

Function Documentation

◆ applyPacketTransition()

◆ getBoardStateForHeartbeat()

◆ main()

◆ setUp()

void setUp ( void )

Definition at line 288 of file test_actuator_state_machine.cpp.

◆ tearDown()

void tearDown ( void )

Definition at line 290 of file test_actuator_state_machine.cpp.

◆ test_actuator_abort_finished_clear_goes_active()

void test_actuator_abort_finished_clear_goes_active ( )

Definition at line 140 of file test_actuator_state_machine.cpp.

References AbortFinished, Active, applyPacketTransition(), ClearAbort, and result.

Referenced by main().

◆ test_actuator_active_abort_done_goes_abort_finished()

void test_actuator_active_abort_done_goes_abort_finished ( )

Definition at line 168 of file test_actuator_state_machine.cpp.

References AbortDone, AbortFinished, Active, applyPacketTransition(), and result.

Referenced by main().

◆ test_actuator_active_abort_done_stays_active()

void test_actuator_active_abort_done_stays_active ( )

Definition at line 161 of file test_actuator_state_machine.cpp.

References AbortDone, Active, applyPacketTransition(), and result.

Referenced by main().

◆ test_actuator_active_abort_goes_abort_finished()

void test_actuator_active_abort_goes_abort_finished ( )

Definition at line 154 of file test_actuator_state_machine.cpp.

References Abort, AbortFinished, Active, applyPacketTransition(), and result.

Referenced by main().

◆ test_actuator_active_abort_stays_active()

void test_actuator_active_abort_stays_active ( )

Definition at line 147 of file test_actuator_state_machine.cpp.

References Abort, Active, applyPacketTransition(), and result.

Referenced by main().

◆ test_actuator_active_noconn_abort_goes_follower()

void test_actuator_active_noconn_abort_goes_follower ( )

Definition at line 183 of file test_actuator_state_machine.cpp.

References Active, applyPacketTransition(), NoConnAbort, NoConnAbortFollower, and result.

Referenced by main().

◆ test_actuator_active_noconn_abort_stays_active()

void test_actuator_active_noconn_abort_stays_active ( )

Definition at line 175 of file test_actuator_state_machine.cpp.

References Active, applyPacketTransition(), NoConnAbort, and result.

Referenced by main().

◆ test_actuator_connloss_heartbeat_goes_active()

void test_actuator_connloss_heartbeat_goes_active ( )

◆ test_actuator_heartbeat_board_id_preserved()

void test_actuator_heartbeat_board_id_preserved ( )

◆ test_actuator_heartbeat_state_mapping_table()

◆ test_actuator_noconn_abort_state_clear_doesnt_transition()

void test_actuator_noconn_abort_state_clear_doesnt_transition ( )

Definition at line 193 of file test_actuator_state_machine.cpp.

References applyPacketTransition(), ClearAbort, NoConnectionAbort, and result.

Referenced by main().

◆ test_actuator_none_kind_stays()

void test_actuator_none_kind_stays ( )

Definition at line 209 of file test_actuator_state_machine.cpp.

References Active, applyPacketTransition(), None, and result.

Referenced by main().

◆ test_actuator_pt_abort_clear_doesnt_transition()

void test_actuator_pt_abort_clear_doesnt_transition ( )

Definition at line 202 of file test_actuator_state_machine.cpp.

References applyPacketTransition(), ClearAbort, PTAbort, and result.

Referenced by main().

◆ test_actuator_waiting_config_goes_active()

void test_actuator_waiting_config_goes_active ( )

Definition at line 118 of file test_actuator_state_machine.cpp.

References Active, applyPacketTransition(), Config, result, and WaitingForServer.

Referenced by main().

◆ test_actuator_waiting_heartbeat_stays()

void test_actuator_waiting_heartbeat_stays ( )

Definition at line 125 of file test_actuator_state_machine.cpp.

References applyPacketTransition(), result, ServerHeartbeat, and WaitingForServer.

Referenced by main().