18 #include <yarp/os/Time.h>
25 void Speaker::speak(
const string &phrase,
const bool force)
27 if ((force || speaking) && (getOutputCount()>0))
30 request.addString(phrase);
37 void PointedLocationPort::onRead(Bottle &b)
41 loc.x=(int)b.get(0).asFloat64();
42 loc.y=(int)b.get(1).asFloat64();
49 PointedLocationPort::PointedLocationPort()
58 bool PointedLocationPort::getLoc(cv::Point &loc)
60 double t0=Time::now();
62 if ((rxTime>0.0) && (t0-rxTime<timeout))
68 while (Time::now()-t0<timeout)
70 if ((rxTime>0.0) && (Time::now()-rxTime<timeout))
84 void StopCmdPort::onRead(Bottle &b)
90 string command=b.get(0).asString();
91 double confidence=b.get(1).asFloat64();
93 if ((command==
"icub-stop-now") && (confidence>0.8))
94 manager->interruptMotor();
101 StopCmdPort::StopCmdPort()
109 void StopCmdPort::setManager(Manager *manager)
111 this->manager=manager;
116 Attention::Attention() : PeriodicThread(4.0)
123 void Attention::setManager(Manager *manager)
125 this->manager=manager;
130 bool Attention::threadInit()
132 return (manager!=NULL);
137 void Attention::suspend()
141 manager->mutexAttention.lock();
142 PeriodicThread::suspend();
143 manager->mutexAttention.unlock();
149 void Attention::run()
151 manager->switchAttention();
156 RtLocalization::RtLocalization() : PeriodicThread(0.03)
163 void RtLocalization::setManager(Manager *manager)
165 this->manager=manager;
170 bool RtLocalization::threadInit()
172 return ((manager!=NULL) && (getPeriod()>0.0));
177 void RtLocalization::run()
179 manager->doLocalization();
184 Exploration::Exploration() : PeriodicThread(0.03)
191 void Exploration::setManager(Manager *manager)
193 this->manager=manager;
198 void Exploration::setInfo(
const string &
object,
199 const Vector &position)
202 this->position=position;
207 bool Exploration::threadInit()
209 return (manager!=NULL);
214 void Exploration::run()
216 manager->doExploration(
object,position);
221 MemoryUpdater::MemoryUpdater() : PeriodicThread(0.1)
228 void MemoryUpdater::setManager(Manager *manager)
230 this->manager=manager;
235 bool MemoryUpdater::threadInit()
237 return ((manager!=NULL) && (getPeriod()>0.0));
242 void MemoryUpdater::run()
244 manager->updateMemory();
249 MemoryReporter::MemoryReporter()
256 void MemoryReporter::setManager(Manager *manager)
258 this->manager=manager;
263 void MemoryReporter::report(
const PortInfo &info)
265 if ((manager!=NULL) && info.created && !info.incoming)
266 manager->scheduleLoadMemory=
true;