|
INET Framework for OMNeT++/OMNEST
|
Uses the BonnMotion native file format. See NED file for more info. More...
#include <BonnMotionMobility.h>
Protected Member Functions | |
| virtual | ~BonnMotionMobility () |
| virtual void | initialize (int) |
| Initializes mobility model parameters. | |
| virtual void | setTargetPosition () |
| Overridden from LineSegmentsMobilityBase. | |
| virtual void | fixIfHostGetsOutside () |
| Overridden from LineSegmentsMobilityBase. | |
Protected Attributes | |
| const BonnMotionFile::Line * | vecp |
| int | vecpos |
Uses the BonnMotion native file format. See NED file for more info.
| BonnMotionMobility::~BonnMotionMobility | ( | ) | [protected, virtual] |
| void BonnMotionMobility::fixIfHostGetsOutside | ( | ) | [protected, virtual] |
Overridden from LineSegmentsMobilityBase.
Implements LineSegmentsMobilityBase.
{
raiseErrorIfOutside();
}
| void BonnMotionMobility::initialize | ( | int | stage | ) | [protected, virtual] |
Initializes mobility model parameters.
Reimplemented from LineSegmentsMobilityBase.
{
LineSegmentsMobilityBase::initialize(stage);
EV << "initializing BonnMotionMobility stage " << stage << endl;
if (stage == 1)
{
int nodeId = par("nodeId");
if (nodeId == -1)
nodeId = getParentModule()->getIndex();
const char *fname = par("traceFile");
const BonnMotionFile *bmFile = BonnMotionFileCache::getInstance()->getFile(fname);
vecp = bmFile->getLine(nodeId);
if (!vecp)
error("invalid nodeId %d -- no such line in file '%s'", nodeId, fname);
vecpos = 0;
// obtain initial position
const BonnMotionFile::Line& vec = *vecp;
if (vec.size()>=3)
{
pos.x = vec[1];
pos.y = vec[2];
targetPos = pos;
}
updatePosition();
}
}
| void BonnMotionMobility::setTargetPosition | ( | ) | [protected, virtual] |
Overridden from LineSegmentsMobilityBase.
Implements LineSegmentsMobilityBase.
{
const BonnMotionFile::Line& vec = *vecp;
if (vecpos+2 >= (int)vec.size())
{
stationary = true;
return;
}
targetTime = vec[vecpos];
targetPos.x = vec[vecpos+1];
targetPos.y = vec[vecpos+2];
vecpos += 3;
EV << "TARGET: t=" << targetTime << " (" << targetPos.x << "," << targetPos.y << ")\n";
}
const BonnMotionFile::Line* BonnMotionMobility::vecp [protected] |
Referenced by initialize(), and setTargetPosition().
int BonnMotionMobility::vecpos [protected] |
Referenced by initialize(), and setTargetPosition().