00001 00011 #ifndef UCL_DRONE_DRONE_ROLES_H 00012 #define UCL_DRONE_DRONE_ROLES_H 00013 00014 #include <stdarg.h> 00015 00016 // ROS Header files 00017 #include <ros/package.h> 00018 #include <ros/ros.h> 00019 00020 // messages 00021 #include <ucl_drone/DroneRole.h> 00022 #include <ucl_drone/DroneRoles.h> 00023 #include <ucl_drone/Pose3D.h> 00024 00025 // ucl_drone 00026 #include <ucl_drone/ucl_drone.h> 00027 00032 class DroneRole 00033 { 00034 private: 00035 // Attributes 00036 00037 int role; 00038 std::vector< std::string > parameters; 00039 std::string name; 00040 00041 public: 00044 DroneRole(std::string name); 00045 00047 ~DroneRole(); 00048 00049 void SetDroneRole(int role); 00050 void SetDroneRole(int role, std::vector< std::string > params); 00051 void SetDroneRole(int role, std::string param); 00052 void SetDroneRole(int role, int number_of_params, ...); 00053 00054 int GetDroneRole(); 00055 00056 ucl_drone::DroneRole DroneRoleToMsg(); 00057 00058 void MsgToDroneRole(); 00059 00060 static ucl_drone::DroneRoles DroneRolesToMsg(std::vector< DroneRole > roles); 00061 }; 00062 00063 #endif /* UCL_DRONE_DRONE_ROLES_H */