6 #ifndef MOTORCORTEX_CORE_DRIVE_CIA402_FSM_DATA_H
7 #define MOTORCORTEX_CORE_DRIVE_CIA402_FSM_DATA_H
11 #include "drive_command.h"
12 #include "drive_state.h"
13 #include "drive_mode.h"
36 CIA402_CMD_SWITCH_ON = 0,
37 CIA402_CMD_DISABLE_VOLTAGE = 1,
38 CIA402_CMD_QUICK_STOP = 2,
39 CIA402_CMD_ENABLE_OPERATION = 3,
40 CIA402_CMD_MODE_ACTION = 4,
41 CIA402_CMD_FAULT_REST = 7
45 CIA402_MODE_NOMODE = 0,
46 CIA402_MODE_PROFILED_POSITION = 1,
47 CIA402_MODE_VELOCITY = 2,
48 CIA402_MODE_PROFILED_VELOCITY = 3,
49 CIA402_MODE_PROFILED_TORQUE = 4,
50 CIA402_MODE_HOMING = 6,
51 CIA402_MODE_INTERPOLATED_POSITION = 7,
52 CIA402_MODE_CYCLIC_SYNC_POSITION = 8,
53 CIA402_MODE_CYCLIC_SYNC_VELOCITY = 9,
54 CIA402_MODE_CYCLIC_SYNC_TORQUE = 10
58 CIA402_STATUS_READY_TO_SWITCH_ON = 0,
59 CIA402_STATUS_SWITCHED_ON = 1,
60 CIA402_STATUS_OPERATION_ENABLED = 2,
61 CIA402_STATUS_FAULT = 3,
62 CIA402_STATUS_VOLTAGE_DISABLED = 4,
63 CIA402_STATUS_QUICK_STOP_NOT_ACTIVE = 5,
64 CIA402_STATUS_SWITCH_ON_DISABLED = 6,
65 CIA402_STATUS_WARNING = 7,
69 explicit Cia402FsmData(std::string name) : fsm_name{std::move(name)} {};
71 const std::string fsm_name;
72 DriveState drive_state{DriveState::DRIVE_STATE_OFF};
73 bool upload_error_code{};
74 unsigned int cia402_cmd{};
75 unsigned int cia402_mode{};
76 unsigned int cia402_state{};
81 double disable_voltage{1};
83 double disable_operation{1};
84 double enable_operation{1};
85 double upload_code{0.01};
88 double enable_operation{0};
96 #endif //MOTORCORTEX_CORE_DRIVE_CIA402_FSM_DATA_H