5 #ifndef TEST_BEHAVIOUR_CONTROL_H
6 #define TEST_BEHAVIOUR_CONTROL_H
15 #include <gtest/gtest.h>
16 #include <test_utilities/test_utilities.h>
20 namespace behaviourcontroltest
23 using namespace testutilities;
24 using namespace behaviourcontrol;
70 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << name << std::endl); initCheckSum = 2*initCheckSum + 1;
return RET_OK; }
71 virtual void preStepCallback() { DISPLAY(std::cout <<
" Pre-step callback in manager '" << name <<
"'" << std::endl); }
72 virtual void postStepCallback() { DISPLAY(std::cout <<
" Post-step callback in manager '" << name <<
"'" << std::endl); }
75 virtual void reportErrorUser(
const std::string& msg,
bool fatal,
const std::string& funcName,
const std::string& fileName,
int line);
78 long long initCheckSum;
101 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << name << std::endl); M->initCheckSum = 13*M->initCheckSum + 1;
return RET_OK; }
102 virtual void update() { DISPLAY(std::cout <<
" User-updating layer '" << name <<
"'" << std::endl); }
103 virtual void postExecuteCallback() { DISPLAY(std::cout <<
" Post-executing layer '" << name <<
"'" << std::endl); }
123 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << LBase->name <<
"SM" << std::endl); M->initCheckSum = 14*M->initCheckSum + 1;
return RET_OK; }
124 virtual void writeExternalData();
144 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << LBase->name <<
"AM" << std::endl); M->initCheckSum = 15*M->initCheckSum + 1;
return RET_OK; }
145 virtual void readExternalData();
172 virtual ret_t init();
173 virtual void update() { DISPLAY(std::cout <<
" User-updating layer '" << name <<
"'" << std::endl); }
174 virtual void postExecuteCallback() { DISPLAY(std::cout <<
" Post-executing layer '" << name <<
"'" << std::endl); }
194 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << LBase->name <<
"SM" << std::endl); M->initCheckSum = 9*M->initCheckSum + 1;
return RET_OK; }
214 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << LBase->name <<
"AM" << std::endl); M->initCheckSum = 10*M->initCheckSum + 1;
return RET_OK; }
222 MyB1(MyL1* L) :
Behaviour(L,
"MyB1") , L(L), M(L->M), SM(L->SM), AM(L->AM) {}
233 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << name << std::endl); M->initCheckSum = 4*M->initCheckSum + 1;
return RET_OK; }
234 virtual void update() { DISPLAY(std::cout <<
" User-updating behaviour '" << name <<
"'" << std::endl); }
235 virtual level_t computeActivationLevel() {
return 0.6F; }
236 virtual void execute() { AM->vgoal.write(SM->targetX.read() + 5.0,
this); AM->xgoal.write(SM->mode.read() + 3,
this); DISPLAY(std::cout <<
" Executing behaviour '" << name <<
"'" << std::endl); }
244 MyB2(MyL1* L) :
Behaviour(L,
"MyB2") , L(L), M(L->M), SM(L->SM), AM(L->AM) {}
255 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << name << std::endl); M->initCheckSum = 5*M->initCheckSum + 1;
return RET_OK; }
256 virtual void update() { DISPLAY(std::cout <<
" User-updating behaviour '" << name <<
"'" << std::endl); }
257 virtual level_t computeActivationLevel() {
return 0.9F; }
258 virtual void execute() { AM->vgoal.write(SM->targetX.read() + 10.0,
this); AM->xgoal.write(SM->mode.read() - 7,
this); DISPLAY(std::cout <<
" Executing behaviour '" << name <<
"'" << std::endl); }
285 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << name << std::endl); M->initCheckSum = 6*M->initCheckSum + 1;
return RET_OK; }
286 virtual void update() { DISPLAY(std::cout <<
" User-updating layer '" << name <<
"'" << std::endl); }
287 virtual void postExecuteCallback() { DISPLAY(std::cout <<
" Post-executing layer '" << name <<
"'" << std::endl); }
307 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << LBase->name <<
"SM" << std::endl); M->initCheckSum = 11*M->initCheckSum + 1;
return RET_OK; }
327 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << LBase->name <<
"AM" << std::endl); M->initCheckSum = 12*M->initCheckSum + 1;
return RET_OK; }
335 MyB3(MyL2* L) :
Behaviour(L,
"MyB3") , L(L), M(L->M), SM(L->SM), AM(L->AM) {}
346 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << name << std::endl); M->initCheckSum = 7*M->initCheckSum + 1;
return RET_OK; }
347 virtual void update() { DISPLAY(std::cout <<
" User-updating behaviour '" << name <<
"'" << std::endl); }
348 virtual level_t computeActivationLevel() {
return 0.3F; }
349 virtual void execute() { AM->mode.write(SM->mode.read(),
this); AM->count.write(SM->xgoal.read()*2,
this); AM->target.write(SM->xgoal.read() + 323,
this); DISPLAY(std::cout <<
" Executing behaviour '" << name <<
"'" << std::endl); }
357 MyB4(MyL2* L) :
Behaviour(L,
"MyB4") , L(L), M(L->M), SM(L->SM), AM(L->AM) {}
368 virtual ret_t init() { DISPLAY(std::cout <<
" Initialising class " << name << std::endl); M->initCheckSum = 8*M->initCheckSum + 1;
return RET_OK; }
369 virtual void update() { DISPLAY(std::cout <<
" User-updating behaviour '" << name <<
"'" << std::endl); }
370 virtual level_t computeActivationLevel() {
return 0.1F; }
371 virtual void execute() { AM->count.write(SM->xgoal.read()*4,
this); AM->target.write(SM->xgoal.read() + 176,
this); DISPLAY(std::cout <<
" Executing behaviour '" << name <<
"'" << std::endl); }
Implements a single behaviour.
Definition: behaviour.h:26
int ret_t
Used to represent an error code/function return value.
Definition: behaviour_common.h:142
Implements a single behaviour layer.
Definition: behaviour_layer.h:26
Signals successful execution of a function, with no error conditions encountered. ...
Definition: behaviour_common.h:69
Implements a manager of a particular group of actuators.
Definition: behaviour_actuators.h:26
Implements the Behaviour Control Framework.
Implements a single behaviour manager.
Definition: behaviour_manager.h:27
Implements a manager of a particular group of sensors.
Definition: behaviour_sensors.h:26
float level_t
Used to represent an activation level (raw activation levels should always be in the range [0...
Definition: behaviour_common.h:141