Documentation Status

Cannot load information on name: rve_interface_gen, distro: electric, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
visualization_engine: rve_common | rve_common_transformers | rve_dynlib | rve_geometry | rve_interface_gen | rve_interfaces | rve_mesh_loader | rve_msgs | rve_pluginloader | rve_properties | rve_qt | rve_render_client | rve_render_server | rve_rpc | rve_transformer

Package Summary

Documented

Generates easy to use proxy classes and base classes which wrap rve_rpc method calls.

Cannot load information on name: rve_interface_gen, distro: groovy, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rve_interface_gen, distro: hydro, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rve_interface_gen, distro: indigo, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rve_interface_gen, distro: jade, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rve_interface_gen, distro: kinetic, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: rve_interface_gen, distro: lunar, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

Contents

rve_interface_gen turns an interface definition into an easy to use proxy class and inheritable server class that use rve_rpc for communication.

For example:

interface Bar
{
  bar(uint32 x, uint32 y, string blah) returns (geometry_msgs/Vector3 v);
}

generates a number of messages:

Bar_barRequest.msg  
Bar_barResponse.msg

a proxy class:

   1 struct BarProxy : public Bar
   2 {
   3   BarProxy(rve_rpc::Client& client);
   4   void bar(uint32_t x, uint32_t y, const std::string& blah, geometry_msgs::Vector3& out_v);
   5   void barAsync(uint32_t x, uint32_t y, const std::string& blah, const barResponseCallback& cb);
   6   barResponseConstPtr bar(const barRequestConstPtr& in);
   7   void barAsync(const barRequestConstPtr& in, const barResponseCallback& cb);
   8 };

And a server class:

   1 struct BarServer : public Bar
   2 {
   3   BarServer(rve_rpc::Server& server);
   4   virtual void bar(uint32_t x, uint32_t y, const std::string& blah, geometry_msgs::Vector3& out_v) {ROS_BREAK();}
   5   virtual void bar(barHandle& handle);
   6 };

along with a bunch of typedefs in a base class

   1 struct Bar : public rve_interface_gen::Interface
   2 {
   3   virtual ~Bar() {}
   4 
   5   typedef rve_interface_gen::Bar_barRequest barRequest;
   6   typedef boost::shared_ptr<barRequest> barRequestPtr;
   7   typedef boost::shared_ptr<barRequest const> barRequestConstPtr;
   8   typedef rve_interface_gen::Bar_barResponse barResponse;
   9   typedef boost::shared_ptr<barResponse> barResponsePtr;
  10   typedef boost::shared_ptr<barResponse const> barResponseConstPtr;
  11   typedef rve_rpc::CallHandle<barRequest, barResponse> barHandle;
  12   typedef rve_rpc::MethodResponse<barResponse> barMethodResponse;
  13   typedef boost::function<void(const barMethodResponse&)> barResponseCallback;
  14 
  15 };

Wiki: rve_interface_gen (last edited 2010-11-29 00:08:04 by JoshFaust)