From: bob b. <bob...@gm...> - 2008-11-13 21:07:48
|
I am trying to pass a laserProxy to a function and am getting some errors. Its been awhile since I used c++ so hopefully this is just a newbie thing, but if anyone can let me know how to pass a proxy like this I'd appreciate it! Bob ---------- #include <iostream> #include <libplayerc++/playerc++.h> #define MAXSPEED 0.6 //max speed of the robot #define MAXRANGE 8 //max range of the laser using namespace PlayerCc; using namespace std; // have code that works, just simplifying for now. int getWallDirection(LaserProxy sp) { return(0); } int main(int argc, char *argv[]) { using namespace PlayerCc; using namespace std; PlayerClient robot("localhost", 6665); //this is to change the order in which the data is stored robot.SetReplaceRule(true,-1,-1,-1); robot.SetDataMode(PLAYER_DATAMODE_PULL); //use proxies LaserProxy sp(&robot,0); Position2dProxy pp(&robot,0); //Read several times before the robot actually starts getting data robot.Read(); for(int i = 0; i<5 ; i++) { robot.Read(); } int wallDirection = 100; // 0 is stright, -1 right, +1 left. wallDirection = getWallDirection(sp); std::cout << "Final Answer : -1 right, 0 straight, 1 left /// " << std::endl; std::cout << wallDirection << std::endl; } ------------------- which provides the following errors on compile make g++ -o demo -Wall -g `pkg-config --cflags playerc++` `pkg-config --cflags --libs opencv` demo.cc `pkg-config --libs playerc++` /usr/include/boost/noncopyable.hpp: In copy constructor 'boost::signals::detail::signal_base::signal_base(const boost::signals::detail::signal_base&)': /usr/include/boost/noncopyable.hpp:27: error: 'boost::noncopyable_::noncopyable::noncopyable(const boost::noncopyable_::noncopyable&)' is private /usr/include/boost/signals/detail/signal_base.hpp:119: error: within this context /usr/include/boost/signals/signal_template.hpp: In copy constructor 'boost::signal0<void, boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >::signal0(const boost::signal0<void, boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >&)': /usr/include/boost/signals/signal_template.hpp:142: note: synthesized method 'boost::signals::detail::signal_base::signal_base(const boost::signals::detail::signal_base&)' first required here /usr/include/boost/signal.hpp: In copy constructor 'boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >::signal(const boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >&)': /usr/include/boost/signal.hpp:335: note: synthesized method 'boost::signal0<void, boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >::signal0(const boost::signal0<void, boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >&)' first required here /usr/include/player-2.0/libplayerc++/clientproxy.h: In copy constructor 'PlayerCc::ClientProxy::ClientProxy(const PlayerCc::ClientProxy&)': /usr/include/player-2.0/libplayerc++/clientproxy.h:50: note: synthesized method 'boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >::signal(const boost::signal<void ()(), boost::last_value<void>, int, std::less<int>, boost::function<void ()(), std::allocator<void> > >&)' first required here /usr/include/player-2.0/libplayerc++/playerc++.h: In copy constructor 'PlayerCc::LaserProxy::LaserProxy(const PlayerCc::LaserProxy&)': /usr/include/player-2.0/libplayerc++/playerc++.h:881: note: synthesized method 'PlayerCc::ClientProxy::ClientProxy(const PlayerCc::ClientProxy&)' first required here demo.cc: In function 'int main(int, char**)': demo.cc:34: note: synthesized method 'PlayerCc::LaserProxy::LaserProxy(const PlayerCc::LaserProxy&)' first required here demo.cc:34: error: initializing argument 1 of 'int getWallDirection(PlayerCc::LaserProxy)' make: *** [demo] Error 1 |