ASCO Aerial Autonomy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
controller_status.h
Go to the documentation of this file.
1 #pragma once
2 // Define strings
3 #include <string>
4 // Vector for debug info
5 #include <vector>
6 
11 public:
15  enum Status {
20  };
21 
22 private:
23  Status status_;
24  std::string status_description_;
25  std::string debug_header;
26  std::vector<double> debug_info;
27 
36  friend bool operator==(const ControllerStatus &controller_status,
37  const Status &status_enum);
47  friend bool operator==(const ControllerStatus &lhs_controller_status,
48  const ControllerStatus &rhs_controller_status);
49 
59  friend bool operator!=(const ControllerStatus &lhs_controller_status,
60  const ControllerStatus &rhs_controller_status);
69  friend ControllerStatus &operator<<(ControllerStatus &cs, const double &data);
70 
80  const std::string &data);
81 
82 public:
92  std::string status_description = "");
98  std::string getHtmlStatusString();
99 
107  std::string status_description = "") {
108  status_ = status;
109  status_description_ = status_description;
110  }
111 
121  explicit operator bool() const {
122  return status_ == ControllerStatus::Completed;
123  }
124 };
ControllerStatus(ControllerStatus::Status status=ControllerStatus::NotEngaged, std::string status_description="")
Constructor with default status as not engaged and short message describing the status.
Definition: controller_status.cpp:7
Status of the controller.
Definition: controller_status.h:10
friend bool operator==(const ControllerStatus &controller_status, const Status &status_enum)
An overload for comparing against an enum.
Definition: controller_status.cpp:44
This status is used when no controller is engaged.
Definition: controller_status.h:19
Status
Types of status available for a controller.
Definition: controller_status.h:15
void setStatus(ControllerStatus::Status status, std::string status_description="")
Set the internal status of controller status.
Definition: controller_status.h:106
Controller active.
Definition: controller_status.h:16
Controller completed.
Definition: controller_status.h:17
friend ControllerStatus & operator<<(ControllerStatus &cs, const double &data)
Add data to controller status.
Definition: controller_status.cpp:59
friend bool operator!=(const ControllerStatus &lhs_controller_status, const ControllerStatus &rhs_controller_status)
An overload function to compare two controller status classes.
Definition: controller_status.cpp:54
Controller is critical and unable to continue.
Definition: controller_status.h:18
std::string getHtmlStatusString()
Get a Html text describing the controller status.
Definition: controller_status.cpp:12