-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ROS service specialization #101
Comments
|
Unfortunately not without a patch in RTT. The error is emitted in OperationCaller.hpp:164 during the construction of a temporary in the assignment operator in OperationCaller.hpp:222, which is called from
Adding this to |
…s to rtt_std_srvs (fix #101) With this patch it is possible to create ROS service servers for some common operation signatures out of the box, without the need to write custom wrappers or to add extra operations with the ROS specific callback signature. Supported service types and associated signatures: std_srvs/Empty: - bool empty() // The service call fails if empty() returns false! // Use std_srvs/Trigger if the result should be returned as the response. - void empty() std_srvs/SetBool: - bool setBool(bool, std::string &message_out) - bool setBool(bool) // response.message will be empty - std::string setBool(bool) // response.success = true - void setBool(bool) // response.success = true and response.message will be empty std_srvs/Trigger: - bool trigger(std::string &message_out) - bool trigger() // response.message will be empty - std::string trigger() // response.success = true The approach can be easily extended to other ROS service types.
…s to rtt_std_srvs (fix #101) With this patch it is possible to create ROS service servers for some common operation signatures out of the box, without the need to write custom wrappers or to add extra operations with the ROS specific callback signature. Supported service types and associated signatures: std_srvs/Empty: - bool empty() // The service call fails if empty() returns false! // Use std_srvs/Trigger if the result should be returned as the response. - void empty() std_srvs/SetBool: - bool setBool(bool, std::string &message_out) - bool setBool(bool) // response.message will be empty - std::string setBool(bool) // response.success = true - void setBool(bool) // response.success = true and response.message will be empty std_srvs/Trigger: - bool trigger(std::string &message_out) - bool trigger() // response.message will be empty - std::string trigger() // response.success = true The approach can be easily extended to other ROS service types.
A follow up to the discussion in #83.
I started to implement this automatic conversion :
A few remarks :
virtual
.log(Error) : Tried to construct OperationCaller from incompatible local operation.
Is there a way to check the signature beforehand ?The text was updated successfully, but these errors were encountered: