File tree Expand file tree Collapse file tree
vortex_utils_ros/include/vortex/utils/ros
vortex_utils/include/vortex/utils Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -403,7 +403,7 @@ struct LineSegment2D {
403403/* *
404404 * @brief Enum class for operation modes.
405405 */
406- enum class Mode : uint8_t { manual, autonomous , reference };
406+ enum class Mode : int { autonomous, manual , reference };
407407
408408/* *
409409 * @brief Convert Mode enum to string for logging or display purposes.
@@ -419,7 +419,8 @@ inline std::string mode_to_string(Mode mode) {
419419 case Mode::reference:
420420 return " reference mode" ;
421421 default :
422- throw std::runtime_error (" Invalid operation mode." );
422+ throw std::runtime_error (
423+ " String conversion failed, invalid mode value" );
423424 }
424425}
425426
Original file line number Diff line number Diff line change @@ -193,7 +193,32 @@ inline vortex::utils::types::Mode convert_from_ros(
193193 case vortex_msgs::msg::OperationMode::REFERENCE :
194194 return vortex::utils::types::Mode::reference;
195195 }
196- throw std::runtime_error (" Invalid operation mode." );
196+ throw std::runtime_error (" Conversion failed, invalid operation mode value" );
197+ }
198+
199+ /* *
200+ * @brief Converts an internal Mode enum to a ROS
201+ * vortex_msgs::msg::OperationMode.
202+ * @param mode vortex::utils::types::Mode
203+ * @return vortex_msgs::msg::OperationMode ROS mode message
204+ */
205+ inline vortex_msgs::msg::OperationMode convert_to_ros (
206+ const vortex::utils::types::Mode& mode) {
207+ vortex_msgs::msg::OperationMode mode_msg;
208+ switch (mode) {
209+ case vortex::utils::types::Mode::manual:
210+ mode_msg.operation_mode = vortex_msgs::msg::OperationMode::MANUAL ;
211+ return mode_msg;
212+ case vortex::utils::types::Mode::autonomous:
213+ mode_msg.operation_mode =
214+ vortex_msgs::msg::OperationMode::AUTONOMOUS ;
215+ return mode_msg;
216+ case vortex::utils::types::Mode::reference:
217+ mode_msg.operation_mode =
218+ vortex_msgs::msg::OperationMode::REFERENCE ;
219+ return mode_msg;
220+ }
221+ throw std::runtime_error (" Conversion failed, invalid operation mode value" );
197222}
198223
199224} // namespace vortex::utils::ros_conversions
You can’t perform that action at this time.
0 commit comments