AURobotServers
4
|
#include <ufunctionavoid.h>
Public Member Functions | |
virtual void | createResources () |
virtual bool | handleCommand (UServerInMsg *msg, void *extra) |
virtual const char * | print (const char *preString, char *buff, int buffCnt) |
virtual const char * | resourceList () |
UFunctionAvoid () | |
virtual | ~UFunctionAvoid () |
Public Member Functions inherited from UFuncPlugBase | |
UFuncPlugBase () | |
virtual | ~UFuncPlugBase () |
Public Member Functions inherited from UFunctionBase | |
bool | addResource (UResBase *resource, UFunctionBase *owner) |
void | closeLogfile () |
virtual const char * | commandList () |
const char * | getAliasName () |
const char * | getLoadedFileName () |
void * | getLoadedModuleRef () |
virtual bool | gotAllResources (char *missingThese, int missingTheseCnt) |
bool | isMine (const char *cmdName) |
bool | isStatic () |
is the module loaded as static A module is static if the ldFilename has a length of zero. More... | |
virtual const char * | name () |
bool | newCmd (UServerInMsg *newMsg, UDataBase *extra) |
bool | newCommand (UServerInMsg *newMsg, void *extra) |
bool | openLogfile (const char *name) |
void | print (const char *preString) |
virtual void | resourceUpdated () |
bool | sendEndTag (UServerInMsg *msg) |
bool | sendEndTag () |
bool | sendFullTag (const char *attributes) |
bool | sendHelpDone (UServerInMsg *msg) |
bool | sendHelpDone () |
bool | sendHelpStart (UServerInMsg *msg, const char *subject) |
bool | sendHelpStart (const char *subject) |
bool | sendHelpStart () |
bool | sendMsg (UServerInMsg *msg, const char *message, int size) |
bool | sendMsg (const char *message) |
bool | sendMsg (UServerInMsg *msg, const char *message) |
bool | sendMsg (int clientIdx, const char *message, int size) |
bool | sendMsgInt (int clientIdx, const char *message) |
bool | sendStartTag (const char *attributes) |
bool | sendText (UServerInMsg *msg, const char *text) |
bool | sendText (const char *text) |
virtual void | setAliasName (const char *name) |
virtual void | setCommand (const char *cmdList, const char *name, const char *note) |
void | setLoadedModuleRef (void *module, const char *moduleFileName) |
virtual void | setLoadTime (UTime) |
void | setName (const char *name) |
virtual bool | setResource (UResBase *resource, bool remove) |
void | setVerbose (bool value) |
UFunctionBase () | |
virtual | ~UFunctionBase () |
Public Member Functions inherited from UCallBack | |
bool | addOnEvent (UOnEvent *dataObject) |
virtual bool | onEvent (const char *interface, const char *dataType, void *data) |
UCallBack () | |
virtual | ~UCallBack () |
Public Member Functions inherited from UResVarPool | |
int | addMethod (const char *formalName, const char *paramTypes, const char *comment) |
int | addMethodV (const char *formalName, const char *paramTypes, const char *comment) |
UVarPool * | addStruct (const char *name, const char *comment, bool copy=false) |
UVariable * | addVar (const char *name, const double initialValue, const char *type, const char *comment) |
UVariable * | addVar (const char *name, const char *initialValue, const char *type, const char *comment) |
UVariable * | addVarA (const char *name, const char *initialValue, const char *type, const char *comment) |
bool | callGlobal (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct, int *returnStructCnt) |
bool | callGlobalV (const char *name, const char *paramOrder, UVariable **params, UDataBase **returnStruct, int *returnStructCnt) |
Call a method from the root var pool scope It may be in the structure direct (no '.') or in any sub-structure that the 'name.subname' indicate. More... | |
bool | callLocal (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct, int *returnStructCnt) |
bool | callVS (const char *function, const char *stringParam) |
int | callVSCD (const char *function, const char *strPar, UDataBase *data, int cooSys) |
void | createBaseVar () |
virtual bool | createVarSpace (const int varCnt, const int structCnt, const int methCnt, const char *note, bool copy=false) |
bool | getGlobalString (const char *name, const char **value) |
bool | getGlobalValue (const char *name, double *value) |
bool | getGlobalValue (const char *name, const char **value) |
bool | getGlobalValue (const char *name, bool *value) |
bool | getGlobalValue (const char *name, UTime *value) |
bool | getLocalValue (const char *name, double *value) |
get a value in this variable tree More... | |
bool | getLocalValue (const char *name, bool *value) |
bool | getLocalValue (const char *name, UTime *value) |
double | getLocalValue (int idx) |
UPosition | getLocalValue3D (int idx) |
UPosRot | getLocalValue6D (int idx) |
bool | getLocalValueBool (int idx) |
int | getLocalValueInt (int idx) |
UTime | getLocalValueTime (int idx) |
const char * | getLogFileName () |
const char * | getVarDescription (int idx) |
UVarCalc * | getVarPool () |
bool | isLogFileOpen () |
bool | isLogFileOpen (const char *structName) |
bool | isVarPoolUpdated (int lastCnt, int *newCnt) |
void | logFileClose () |
bool | logFileOpen () |
void | logFileStart (const char *structName, bool open) |
virtual bool | methodCall (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct=NULL, int *returnStructCnt=NULL) |
bool | setGlobalVar (const char *name, const double value, bool mayAdd) |
Assigns a value to a variable. The variable may be a part of a structure. More... | |
bool | setLocalVar (int idx, double value, const int element) |
bool | setLocalVar (const char *name, const double value, bool mayAdd) |
Assigns a value to a variable. The variable may be a part of a structure. More... | |
bool | setLocalVar3D (int idx, UPosition *value) |
bool | setLocalVar6D (int idx, UPosRot *value) |
bool | setLocalVarAdd (int idx, double value, const int element) |
bool | setLocalVarPose (int idx, UPose *value) |
void | setVarPool (UVarCalc *sharedVarPool) |
int | updateQTvars (int structIdx) |
UResVarPool () | |
virtual | ~UResVarPool () |
Public Member Functions inherited from UResBase | |
void | createReplayVar (UVarPool *pool) |
UCmdExe * | getCorePointer () |
char * | getLogFileName (char *fn, const int fnCnt) |
int | getResFuncIdx () |
const char * | getResID () |
int | getResVersion () |
bool | isA (const char *idStr) |
bool | isAlsoA (const char *id) |
virtual void | saveSettings () |
void | setCorePointer (UCmdExe *serverCore) |
void | setResFuncIdx (int idx) |
virtual void | setResID (const char *id, const int version) |
virtual void | stop (bool) |
virtual void | updateReplayStatus () |
UResBase () | |
virtual | ~UResBase () |
Public Member Functions inherited from UReplay | |
void | addChild (UReplay *child) |
virtual bool | decodeReplayLine (char *) |
char * | getLogFileName (char *fn, const int fnCnt) |
char * | getReplayFileName (char *fn, const int fnCnt) |
int | getReplayLogLine () |
bool | isReplay () |
bool | isReplayFileOpen () |
void | removeChild (UReplay *child) |
virtual void | replayAdvanceTime (UTime untilTime) |
void | replaySetBaseFileName (const char *name, const char *preName="") |
void | replaySetFileName (const char *name) |
virtual bool | replayStep () |
int | replayStep (int steps) |
virtual bool | replayToTime (UTime untilTime) |
void | setParent (UReplay *parent) |
bool | setReplay (bool value) |
UReplay () | |
virtual | ~UReplay () |
Public Member Functions inherited from ULock | |
bool | lock () |
void | lockInit () |
void | post () |
bool | tryLock () |
bool | tryWait () |
ULock () | |
void | unlock () |
bool | wait () |
~ULock () | |
Public Member Functions inherited from UVarMethodImplement | |
virtual bool | methodCallV (const char *name, const char *paramOrder, UVariable *params[], UDataBase **returnStruct, int *returnStructCnt) |
virtual | ~UVarMethodImplement () |
Protected Attributes | |
UResAvoid * | avoid |
bool | avoidLocal |
UPose | exitPose |
double | exitVel |
Protected Attributes inherited from UFunctionBase | |
char | aliasName [MAX_ID_LENGTH] |
UCmdExe * | cmdHandler |
char * | cmdToks [20] |
int | cmdToksCnt |
char | commandsHandled [MAX_RESOURCE_LIST_SIZE] |
UServerInMsg * | msg |
char | pluginName [MAX_RESOURCE_LIST_SIZE] |
bool | verboseMessages |
Protected Attributes inherited from UResBase | |
int | resFuncIdx |
char | resID [MAX_RESOURCE_ID_LENGTH] |
char | resIsAlso [MAX_RESOURCE_ISALSO_LENGTH] |
int | resVersion |
Protected Attributes inherited from UReplay | |
bool | replay |
FILE * | replayFile |
char | replayFileName [REPLAY_FILE_NAME_LENGTH] |
replay filename More... | |
char | replayLine [MAX_LOG_LINE_LENGTH] |
int | replayLogLine |
UReplay * | replayParent |
UTime | replayTimeNext |
Private Member Functions | |
bool | handleAvoid (UServerInMsg *msg) |
bool | handlePoseToPose (UServerInMsg *msg) |
bool | sendCurrentAvoidPath (UServerInMsg *msg, UTime tod, bool usedOnly, int tanSeq, bool visLines, bool avoidPoints) |
bool | sendCurrentPath (UServerInMsg *msg, UTime tod, bool usedOnly) |
void | sendManSeq (UManSeq *manseq) |
Additional Inherited Members | |
Static Public Member Functions inherited from UResVarPool | |
static const char * | getResClassID () |
Public Attributes inherited from UFunctionBase | |
bool | silent |
is reply to client and console to be limited More... | |
Public Attributes inherited from UReplay | |
bool | replayTimeAdvancePending |
UTime | replayTimeNow |
Static Public Attributes inherited from UFunctionBase | |
static const int | MAX_ID_LENGTH = 30 |
static const int | MAX_RESOURCE_LIST_SIZE = 250 |
Protected Member Functions inherited from UFunctionBase | |
int | getCmdIndex () |
UResBase * | getStaticResource (const char *resName, bool mayCreate, bool staticOnly=true) |
get a pointer to a static resource. More... | |
bool | isClientAlive (int clientIdx, double holdOffTime) |
bool | sendDebug (UServerInMsg *msg, const char *debugText) |
bool | sendDebug (const char *debugText) |
bool | sendError (UServerInMsg *msg, const char *errorText) |
bool | sendError (const char *errorText) |
bool | sendHelp (UServerInMsg *msg, const char *infoText) |
bool | sendHelp (const char *infoText) |
bool | sendInfo (UServerInMsg *msg, const char *infoText) |
bool | sendInfo (const char *infoText) |
bool | sendWarning (UServerInMsg *msg, const char *warningText) |
bool | sendWarning (const char *warningText) |
UResBase * | setThisResource (const char *ID, UResBase *resource, bool remove, bool *changed, UResBase *currentResPtr, bool *isLocal) |
Protected Member Functions inherited from UResVarPool | |
void | setDescription (const char *note, bool copy=false) |
Protected Member Functions inherited from UResBase | |
UResBase * | getStaticResource (const char *resName, bool mayCreate, bool staticOnly=true) |
get a pointer to a static resource. More... | |
Static Protected Attributes inherited from UReplay | |
static const int | MAX_LOG_LINE_LENGTH = 10000 |
static const int | REPLAY_FILE_NAME_LENGTH = 264 |
max length of replay filename More... | |
Example plugin that demonstrates a plogin that provides a resource. A similar example plugin is available that uses the shared resource.
The shared resource provides the simple functionality in the form of a line. The resource provides functions to calculate the length of the line.
UFunctionAvoid::UFunctionAvoid | ( | ) |
Constructor
References avoid, and UFunctionBase::setCommand().
|
virtual |
Destructor
References avoid.
|
virtual |
Create any resources that this modules needs and add these to the resource pool to be integrated in the global variable pool and method sharing.
Reimplemented from UFunctionBase.
References UFunctionBase::addResource(), and avoid.
Referenced by resourceList().
|
private |
Function to get closest distance
References avoid, bool2str(), UResAvoid::closeLogAvoid(), exitPose, exitVel, UResAvoid::findPathToHere(), UResAvoid::getCalcTime(), UResAvoid::getLogAvoidFileName(), UPose::getMapToPosePose(), UResPoseHist::getNewest(), USmlTagIn::getNextAttribute(), UResAvoid::getPathPool(), UFunctionBase::getStaticResource(), UPose::h, UResAvoid::isLogAvoidOpen(), ULock::lock(), MAX_SML_NAME_LENGTH, UResAvoid::openLogAvoid(), sendCurrentAvoidPath(), sendCurrentPath(), UFunctionBase::sendHelpDone(), UFunctionBase::sendHelpStart(), UFunctionBase::sendInfo(), UFunctionBase::sendText(), UFunctionBase::sendWarning(), UPose::set(), str2bool2(), UServerInMsg::tag, ULock::unlock(), UResAvoid::useRev2(), UPose::x, and UPose::y.
Referenced by handleCommand().
|
virtual |
Called by the server core, when a new resource is available (or is removed), local pointers to the resource should be updated as appropriate. This function is called by the server core, when it needs a resource provided by this plugin. Return a pointer to a resource with an ID taht matches this 'resID' ID string. The string match should be case sensitive. Returns false if the resource faled to be created (e.g. no memory space). return true if all ressources is available Handle incomming command (intended for command separation) Must return true if the function is handled - otherwise the client will get a failed - reply
Reimplemented from UFunctionBase.
References handleAvoid(), handlePoseToPose(), USmlTagIn::isTagA(), UFunctionBase::sendDebug(), and UServerInMsg::tag.
Referenced by resourceList().
|
private |
Test command to ease test of pose to pose planning (when no obstacles)
msg | command options and client structure. |
References UManSeq::addManDriveon(), exitPose, exitVel, UPose::getMapToPosePose(), UResPoseHist::getNewest(), USmlTagIn::getNextAttribute(), UPose::getPoseToMapPose(), UFunctionBase::getStaticResource(), UPose::h, MAX_SML_NAME_LENGTH, UFunctionBase::sendEndTag(), UFunctionBase::sendHelpDone(), UFunctionBase::sendHelpStart(), sendManSeq(), UFunctionBase::sendStartTag(), UFunctionBase::sendText(), UFunctionBase::sendWarning(), UPoseV::set(), UPose::set(), UPoseV::setVel(), UServerInMsg::tag, UPose::x, and UPose::y.
Referenced by handleCommand().
|
virtual |
print status to a string buffer
Reimplemented from UResVarPool.
References avoid, and bool2str().
Referenced by resourceList().
|
inlinevirtual |
Called by the server core. Should return the name of function. There should be a first short part separated by a space to some additional info (e.g. version and author). The returned name is intended as informative to clients and should include a version number Called by the server core when loaded, to get a list of keywords (commands) handled by this plugin. Return a list of handled functions in one string separated by a space. e.g. return "COG". The functions should be unique on the server. List (space separated) of shared resources provided by this function. Must be an empty string if no resources are to be shared. Each resource ID must be no longer than 20 characters long.
References createResources(), handleCommand(), UFunctionBase::msg, and print().
|
private |
Send the (rev2) paths found to client in XML format
References a, UAvoidLink::aob, UAvoidLink::aobIdx, UAvoidPoint::aPos, avoid, bool2str(), USmlTag::codeLineSegment(), USmlTag::codeManPPSeq(), UPose::codeXml(), UResAvoid::codeXmlRobotFront(), UAvoidPath2::getAvoidObstGrp(), UAvoidPath2::getAvoidObstGrpCnt(), UAvoidPathPool::getAvoidPath(), UAvoidPathPool::getAvoidPathsCnt(), UAvoidPath2::getLnkSeq(), UAvoidPath2::getLnkSeqsCnt(), UAvoidPath2::getManSeq(), UTime::getMicrosec(), UAvoidNoVis::getNoVisSegment(), ULineSegment::getOtherEnd(), UManSeq::getP2P(), UManSeq::getP2PCnt(), UResAvoid::getPathPool(), UAvoidPath2::getPathUsed(), UPolygon::getPoint(), UAvoidPath2::getPointList(), UTime::getSec(), USmlTagIn::getTagName(), UAvoidLink::getTangentLine(), UAvoidPathPool::getValidAvoidPathsCnt(), UAvoidObst::grp, UAvoidLink::idx, UAvoidPath2::isACrash(), UAvoidPath2::isValid(), UAvoidObst::links, UAvoidPoint::mCent, UAvoidPoint::mid, UAvoidLink::mirror, UAvoidLink::next, UAvoidPoint::next, UAvoidLnkSeq::next, UAvoidObst::noVis, UAvoidObst::noVisCnt, UAvoidObst::obst, UAvoidPoint::oob, UAvoidPoint::oPos, ULine::pos, UAvoidPoint::prev, UFunctionBase::sendMsg(), UAvoidLink::serial, UPose::set(), ULineSegment::setFromPoints(), UServerInMsg::tag, UAvoidLnkSeq::tangIdx, UAvoidLnkSeq::tangLine, UAvoidLink::valid, UPosition::x, and UPosition::y.
Referenced by handleAvoid().
|
private |
Send the paths found to client in XML format
References avoid, bool2str(), USmlTag::codeManPPSeq(), USmlTag::codePose(), UReactivePath::getManSeq(), UTime::getMicrosec(), UReactivePath::getMidPose(), UReactivePath::getMidPosesCnt(), UManSeq::getP2P(), UManSeq::getP2PCnt(), UAvoidPathPool::getPath(), UResAvoid::getPathPool(), UAvoidPathPool::getPathsCnt(), UReactivePath::getPathUsed(), UTime::getSec(), USmlTagIn::getTagName(), UAvoidPathPool::getValidPathsCnt(), UReactivePath::isACrash(), UReactivePath::isValid(), UFunctionBase::sendMsg(), and UServerInMsg::tag.
Referenced by handleAvoid().
|
private |
Code and send a single manoeuvre sequence.
manseq | is the manoeuvre sequence to send. |
References USmlTag::codeManPPSeq(), UTime::getMicrosec(), UManSeq::getP2P(), UManSeq::getP2PCnt(), UTime::getSec(), UTime::now(), and UFunctionBase::sendMsg().
Referenced by handlePoseToPose().
|
protected |
pointer to smr interface resource
Referenced by createResources(), handleAvoid(), print(), sendCurrentAvoidPath(), sendCurrentPath(), UFunctionAvoid(), and ~UFunctionAvoid().
|
protected |
Is the resource created locally
|
protected |
Desired exit pose
Referenced by handleAvoid(), and handlePoseToPose().
|
protected |
DEsired exit velocity
Referenced by handleAvoid(), and handlePoseToPose().