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().