# {py:mod}`ros_sugar.base_clients` ```{py:module} ros_sugar.base_clients ``` ```{autodoc2-docstring} ros_sugar.base_clients :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ServiceClientConfig ` - ```{autodoc2-docstring} ros_sugar.base_clients.ServiceClientConfig :summary: ``` * - {py:obj}`ActionClientConfig ` - ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientConfig :summary: ``` * - {py:obj}`ServiceClientHandler ` - ```{autodoc2-docstring} ros_sugar.base_clients.ServiceClientHandler :summary: ``` * - {py:obj}`ActionClientHandler ` - ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler :summary: ``` ```` ### API ````{py:class} ServiceClientConfig :canonical: ros_sugar.base_clients.ServiceClientConfig Bases: {py:obj}`ros_sugar.config.BaseAttrs` ```{autodoc2-docstring} ros_sugar.base_clients.ServiceClientConfig ``` ```` ````{py:class} ActionClientConfig :canonical: ros_sugar.base_clients.ActionClientConfig Bases: {py:obj}`ros_sugar.config.BaseAttrs` ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientConfig ``` ```` `````{py:class} ServiceClientHandler(client_node: rclpy.node.Node, config: typing.Optional[ros_sugar.base_clients.ServiceClientConfig] = None, srv_name: typing.Optional[str] = None, srv_type: typing.Optional[type] = None) :canonical: ros_sugar.base_clients.ServiceClientHandler ```{autodoc2-docstring} ros_sugar.base_clients.ServiceClientHandler ``` ````{py:method} send_request_from_dict(request_fields: typing.Dict[str, typing.Union[str, typing.Dict]], executor: typing.Optional[rclpy.executors.Executor] = None) :canonical: ros_sugar.base_clients.ServiceClientHandler.send_request_from_dict ```{autodoc2-docstring} ros_sugar.base_clients.ServiceClientHandler.send_request_from_dict ``` ```` ````{py:method} send_request(req_msg, executor: typing.Optional[rclpy.executors.Executor] = None) :canonical: ros_sugar.base_clients.ServiceClientHandler.send_request ```{autodoc2-docstring} ros_sugar.base_clients.ServiceClientHandler.send_request ``` ```` ````` `````{py:class} ActionClientHandler(client_node: rclpy.node.Node, config: typing.Optional[ros_sugar.base_clients.ActionClientConfig] = None, action_name: typing.Optional[str] = None, action_type: typing.Optional[type] = None) :canonical: ros_sugar.base_clients.ActionClientHandler ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler ``` ````{py:method} reset() :canonical: ros_sugar.base_clients.ActionClientHandler.reset ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.reset ``` ```` ````{py:method} send_request_from_dict(request_fields: typing.Dict[str, typing.Union[str, typing.Dict]], wait_until_first_feedback: bool = True) :canonical: ros_sugar.base_clients.ActionClientHandler.send_request_from_dict ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.send_request_from_dict ``` ```` ````{py:method} send_request(request_msg: typing.Any, wait_until_first_feedback: bool = True) -> bool :canonical: ros_sugar.base_clients.ActionClientHandler.send_request ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.send_request ``` ```` ````{py:method} action_response_callback(future) :canonical: ros_sugar.base_clients.ActionClientHandler.action_response_callback ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.action_response_callback ``` ```` ````{py:method} action_result_callback(future) :canonical: ros_sugar.base_clients.ActionClientHandler.action_result_callback ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.action_result_callback ``` ```` ````{py:method} action_feedback_callback(feedback_msg: typing.Any) :canonical: ros_sugar.base_clients.ActionClientHandler.action_feedback_callback ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.action_feedback_callback ``` ```` ````{py:method} got_new_feedback() -> bool :canonical: ros_sugar.base_clients.ActionClientHandler.got_new_feedback ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.got_new_feedback ``` ```` ````{py:method} cancel_request() -> typing.Tuple[bool, str] :canonical: ros_sugar.base_clients.ActionClientHandler.cancel_request ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.cancel_request ``` ```` ````{py:method} get_ui_elements() -> typing.Dict :canonical: ros_sugar.base_clients.ActionClientHandler.get_ui_elements ```{autodoc2-docstring} ros_sugar.base_clients.ActionClientHandler.get_ui_elements ``` ```` `````