Struct robot_interfaces::Status

struct Status : public robot_interfaces::Loggable, public robot_interfaces::Loggable

Status information from the backend.

Used to report status information that is not directly robot-related from the backend to the frontend.

Public Types

enum class ErrorStatus

Different types of errors that can occur in the backend.

Values:

enumerator NO_ERROR

Indicates that there is no error.

enumerator DRIVER_ERROR

Error reported from the RobotDriver.

An error reported by the low level robot driver (see RobotDriver). This is depending on the driver implementation. It can, for example, be used to report some hardware failure).

enumerator BACKEND_ERROR

Error from the RobotBackend.

An error which is issued by the back end itself, for example if no new action is provided and the allowed number of repetitions is exceeded.

enumerator NO_ERROR

Indicates that there is no error.

enumerator DRIVER_ERROR

Error reported from the RobotDriver.

An error reported by the low level robot driver (see RobotDriver). This is depending on the driver implementation. It can, for example, be used to report some hardware failure).

enumerator BACKEND_ERROR

Error from the RobotBackend.

An error which is issued by the back end itself, for example if no new action is provided and the allowed number of repetitions is exceeded.

enum class ErrorStatus

Different types of errors that can occur in the backend.

Values:

enumerator NO_ERROR

Indicates that there is no error.

enumerator DRIVER_ERROR

Error reported from the RobotDriver.

An error reported by the low level robot driver (see RobotDriver). This is depending on the driver implementation. It can, for example, be used to report some hardware failure).

enumerator BACKEND_ERROR

Error from the RobotBackend.

An error which is issued by the back end itself, for example if no new action is provided and the allowed number of repetitions is exceeded.

enumerator NO_ERROR

Indicates that there is no error.

enumerator DRIVER_ERROR

Error reported from the RobotDriver.

An error reported by the low level robot driver (see RobotDriver). This is depending on the driver implementation. It can, for example, be used to report some hardware failure).

enumerator BACKEND_ERROR

Error from the RobotBackend.

An error which is issued by the back end itself, for example if no new action is provided and the allowed number of repetitions is exceeded.

Public Functions

inline void set_error(ErrorStatus error_type, const std::string &message)

Set error.

If another error was set before, the old one is kept and the new one ignored.

Parameters:
  • error_type – The type of the error.

  • message – Error message. Will be shortened if it exceeds ERROR_MESSAGE_LENGTH.

inline bool has_error() const

Check if an error is set.

See error_status and error_message for more details on the error.

Note

If there is an error reported in the status, the robot is not in an operational state anymore. Trying to append another action in the RobotFrontend will result in an exception in this case.

inline std::string get_error_message() const

Get the error message as std::string.

template<class Archive>
inline void serialize(Archive &archive)
inline virtual std::vector<std::string> get_name() override
inline virtual std::vector<std::vector<double>> get_data() override
inline void set_error(ErrorStatus error_type, const std::string &message)

Set error.

If another error was set before, the old one is kept and the new one ignored.

Parameters:
  • error_type – The type of the error.

  • message – Error message. Will be shortened if it exceeds ERROR_MESSAGE_LENGTH.

inline bool has_error() const

Check if an error is set.

See error_status and error_message for more details on the error.

Note

If there is an error reported in the status, the robot is not in an operational state anymore. Trying to append another action in the RobotFrontend will result in an exception in this case.

inline std::string get_error_message() const

Get the error message as std::string.

template<class Archive>
inline void serialize(Archive &archive)
inline virtual std::vector<std::string> get_name() override
inline virtual std::vector<std::vector<double>> get_data() override

Public Members

uint32_t action_repetitions = 0

Number of times the current action has been repeated.

If the back end wants to apply the next action but no new action was provided by the user in time, it may (depending on configuration) repeat the previous action. Each time this happens, action_repetitions is increased by one. Once a new action is provided, it will be reset to zero.

See also next-action-not-in-time.

ErrorStatus error_status = ErrorStatus::NO_ERROR

Indicates if there is an error and, if yes, in which component.

See also

error_message for more information on the error.

See also

has_error()

Note

If there is an error reported in the status, the robot is not in an operational state anymore. Trying to append another action in the RobotFrontend will result in an exception in this case.

Public Static Attributes

static constexpr unsigned int ERROR_MESSAGE_LENGTH = 64

Maximum length of error messages (including terminating \0)