Parameter manipulation plugin. More...
Public Member Functions | |
std::string const | get_name () const |
Plugin name (CamelCase) | |
const message_map | get_rx_handlers () |
Return map with message rx handlers. | |
void | initialize (UAS &uas_, ros::NodeHandle &nh, diagnostic_updater::Updater &diag_updater) |
Plugin initializer. | |
ParamPlugin () | |
Private Types | |
enum | { PR_IDLE, PR_RXLIST, PR_RXPARAM, PR_TXPARAM } |
Private Member Functions | |
void | connection_cb (bool connected) |
Parameter::param_t | from_param_value (mavlink_param_value_t &msg) |
bool | get_cb (mavros::ParamGet::Request &req, mavros::ParamGet::Response &res) |
get parameter ~param/get | |
void | go_idle () |
void | handle_param_value (const mavlink_message_t *msg, uint8_t sysid, uint8_t compid) |
void | param_request_list () |
void | param_request_read (std::string id, int16_t index=-1) |
void | param_set (Parameter ¶m) |
bool | pull_cb (mavros::ParamPull::Request &req, mavros::ParamPull::Response &res) |
fetches all parameters from device ~param/pull | |
bool | push_cb (mavros::ParamPush::Request &req, mavros::ParamPush::Response &res) |
push all parameter value to device ~param/push | |
void | restart_timeout_timer () |
bool | send_param_set_and_wait (Parameter ¶m) |
bool | set_cb (mavros::ParamSet::Request &req, mavros::ParamSet::Response &res) |
sets parameter value ~param/set | |
void | shedule_cb (const ros::TimerEvent &event) |
void | shedule_pull (const ros::Duration &dt) |
void | timeout_cb (const ros::TimerEvent &event) |
mavlink_param_union_t | to_param_union (Parameter::param_t p) |
bool | wait_fetch_all () |
bool | wait_param_set_ack_for (ParamSetOpt *opt) |
Private Attributes | |
const ros::Duration | BOOTUP_TIME_DT |
ros::ServiceServer | get_srv |
bool | is_timedout |
std::mutex | list_cond_mutex |
std::condition_variable | list_receiving |
const ros::Duration | LIST_TIMEOUT_DT |
std::recursive_mutex | mutex |
ssize_t | param_count |
ros::NodeHandle | param_nh |
size_t | param_rx_retries |
enum mavplugin::ParamPlugin:: { ... } | param_state |
const ros::Duration | PARAM_TIMEOUT_DT |
std::map< std::string, Parameter > | parameters |
std::list< uint16_t > | parameters_missing_idx |
ros::ServiceServer | pull_srv |
ros::ServiceServer | push_srv |
std::map< std::string, ParamSetOpt * > | set_parameters |
ros::ServiceServer | set_srv |
ros::Timer | shedule_timer |
for startup shedule fetch | |
ros::Timer | timeout_timer |
for timeout resend | |
UAS * | uas |
Static Private Attributes | |
static constexpr int | BOOTUP_TIME_MS = 10000 |
APM boot time. | |
static constexpr int | LIST_TIMEOUT_MS = 30000 |
Receive all time. | |
static constexpr int | PARAM_TIMEOUT_MS = 1000 |
Param wait time. | |
static constexpr int | RETRIES_COUNT = 3 |