|
INET Framework for OMNeT++/OMNEST
|
Base class for moving mobility modules. More...
#include <MovingMobilityBase.h>
Public Member Functions | |
| virtual const Coord & | getCurrentPosition () override |
| Returns the position at the current simulation time. More... | |
| virtual const Coord & | getCurrentVelocity () override |
| Returns the velocity at the current simulation time. More... | |
| virtual const Coord & | getCurrentAcceleration () override |
| Returns the acceleration at the current simulation time. More... | |
| virtual const Quaternion & | getCurrentAngularPosition () override |
| Returns the angular position at the current simulation time. More... | |
| virtual const Quaternion & | getCurrentAngularVelocity () override |
| Returns the angular velocity at the current simulation time. More... | |
| virtual const Quaternion & | getCurrentAngularAcceleration () override |
| Returns the angular acceleration at the current simulation time. More... | |
Public Member Functions inherited from inet::MobilityBase | |
| virtual double | getMaxSpeed () const override |
| Returns the maximum possible speed at any future time. More... | |
| virtual const Coord & | getConstraintAreaMax () const override |
| Returns the maximum position along each axes for. More... | |
| virtual const Coord & | getConstraintAreaMin () const override |
| Returns the minimum position along each axes for. More... | |
Public Member Functions inherited from inet::IMobility | |
| virtual | ~IMobility () |
Protected Member Functions | |
| MovingMobilityBase () | |
| virtual | ~MovingMobilityBase () |
| virtual void | initialize (int stage) override |
| Initializes mobility model parameters. More... | |
| virtual void | initializePosition () override |
| Initializes mobility position. More... | |
| virtual void | handleSelfMessage (cMessage *message) override |
| Called upon arrival of a self messages, subclasses must override. More... | |
| void | scheduleUpdate () |
| Schedules the move timer that will update the mobility state. More... | |
| void | moveAndUpdate () |
| Moves and notifies listeners. More... | |
| virtual void | move ()=0 |
| Moves according to the mobility model to the current simulation time. More... | |
| virtual void | orient () |
Protected Member Functions inherited from inet::MobilityBase | |
| MobilityBase () | |
| virtual int | getId () const override |
| virtual int | numInitStages () const override |
| Returns the required number of initialize stages. More... | |
| virtual void | setInitialPosition () |
| Initializes the position from the display string or from module parameters. More... | |
| virtual void | checkPosition () |
| Checks whether the position is valid or not. More... | |
| virtual void | initializeOrientation () |
| Initializes the orientation from module parameters. More... | |
| virtual void | refreshDisplay () const override |
| Moves the visual representation module's icon to the new position on the screen. More... | |
| virtual void | updateDisplayStringFromMobilityState () const |
| virtual void | handleParameterChange (const char *name) override |
| Allows changing parameters from the GUI. More... | |
| virtual void | handleMessage (cMessage *msg) override |
| This modules should only receive self-messages. More... | |
| virtual void | emitMobilityStateChangedSignal () |
| Emits a signal with the updated mobility state. More... | |
| virtual Coord | getRandomPosition () |
| Returns a new random position satisfying the constraint area. More... | |
| virtual cModule * | findSubjectModule () |
| Returns the module that represents the object moved by this mobility module. More... | |
| virtual bool | isOutside () |
| Returns true if the mobility is outside of the constraint area. More... | |
| virtual void | reflectIfOutside (Coord &targetPosition, Coord &velocity, rad &angle, rad &elevation, Quaternion &quaternion) |
| Utility function to reflect the node if it goes outside the constraint area. More... | |
| virtual void | wrapIfOutside (Coord &targetPosition) |
| Utility function to wrap the node to the opposite edge (torus) if it goes outside the constraint area. More... | |
| virtual void | placeRandomlyIfOutside (Coord &targetPosition) |
| Utility function to place the node randomly if it goes outside the constraint area. More... | |
| virtual void | raiseErrorIfOutside () |
| Utility function to raise an error if the node gets outside the constraint area. More... | |
| virtual void | handleIfOutside (BorderPolicy policy, Coord &targetPosition, Coord &velocity) |
| Invokes one of reflectIfOutside(), wrapIfOutside() and placeRandomlyIfOutside(), depending on the given border policy. More... | |
| virtual void | handleIfOutside (BorderPolicy policy, Coord &targetPosition, Coord &velocity, rad &heading) |
| virtual void | handleIfOutside (BorderPolicy policy, Coord &targetPosition, Coord &velocity, rad &heading, rad &elevation) |
| virtual void | handleIfOutside (BorderPolicy policy, Coord &targetPosition, Coord &velocity, rad &heading, rad &elevation, Quaternion &quaternion) |
Protected Attributes | |
| cMessage * | moveTimer |
| The message used for mobility state changes. More... | |
| simtime_t | updateInterval |
| The simulation time interval used to regularly signal mobility state changes. More... | |
| bool | stationary |
| A mobility model may decide to become stationary at any time. More... | |
| Coord | lastVelocity |
| The last velocity that was reported at lastUpdate. More... | |
| Quaternion | lastAngularVelocity |
| The last angular velocity that was reported at lastUpdate. More... | |
| simtime_t | lastUpdate |
| The simulation time when the mobility state was last updated. More... | |
| simtime_t | nextChange |
| The next simulation time when the mobility module needs to update its internal state. More... | |
| bool | faceForward |
Protected Attributes inherited from inet::MobilityBase | |
| cModule * | subjectModule |
| Pointer to visual representation module, to speed up repeated access. More... | |
| const CanvasProjection * | canvasProjection |
| The 2D projection used on the canvas. More... | |
| Coord | constraintAreaMin |
| 3 dimensional position and size of the constraint area (in meters). More... | |
| Coord | constraintAreaMax |
| Coord | lastPosition |
| The last position that was reported. More... | |
| Quaternion | lastOrientation |
| The last orientation that was reported. More... | |
| StringFormat | format |
Additional Inherited Members | |
Public Types inherited from inet::MobilityBase | |
| enum | BorderPolicy { REFLECT, WRAP, PLACERANDOMLY, RAISEERROR } |
| Selects how a mobility module should behave if it reaches the edge of the constraint area. More... | |
Static Public Attributes inherited from inet::IMobility | |
| static simsignal_t | mobilityStateChangedSignal = cComponent::registerSignal("mobilityStateChanged") |
| A signal used to publish mobility state changes. More... | |
Base class for moving mobility modules.
Periodically emits a signal with the current mobility state.
|
protected |
|
protectedvirtual |
|
inlineoverridevirtual |
Returns the acceleration at the current simulation time.
Implements inet::IMobility.
|
inlineoverridevirtual |
Returns the angular acceleration at the current simulation time.
Implements inet::IMobility.
Reimplemented in inet::CircleMobility.
|
overridevirtual |
Returns the angular position at the current simulation time.
Implements inet::IMobility.
|
overridevirtual |
Returns the angular velocity at the current simulation time.
Implements inet::IMobility.
Reimplemented in inet::CircleMobility.
|
overridevirtual |
Returns the position at the current simulation time.
Implements inet::IMobility.
Reimplemented in inet::MoBanLocal.
Referenced by inet::MoBanLocal::getCurrentPosition(), and inet::MoBanLocal::refreshDisplay().
|
overridevirtual |
Returns the velocity at the current simulation time.
Implements inet::IMobility.
Reimplemented in inet::MoBanLocal.
Referenced by inet::MoBanLocal::getCurrentVelocity().
|
overrideprotectedvirtual |
Called upon arrival of a self messages, subclasses must override.
Implements inet::MobilityBase.
|
overrideprotectedvirtual |
Initializes mobility model parameters.
Reimplemented from inet::MobilityBase.
Reimplemented in inet::MoBanCoordinator, inet::MoBanLocal, inet::TractorMobility, inet::Ns2MotionMobility, inet::MassMobility, inet::TurtleMobility, inet::VehicleMobility, inet::CircleMobility, inet::RectangleMobility, inet::GaussMarkovMobility, inet::AnsimMobility, inet::BonnMotionMobility, inet::RandomWaypointMobility, inet::ChiangMobility, and inet::LinearMobility.
Referenced by inet::ChiangMobility::initialize(), inet::LinearMobility::initialize(), inet::BonnMotionMobility::initialize(), inet::RandomWaypointMobility::initialize(), inet::AnsimMobility::initialize(), inet::GaussMarkovMobility::initialize(), inet::TractorMobility::initialize(), inet::RectangleMobility::initialize(), inet::CircleMobility::initialize(), inet::VehicleMobility::initialize(), inet::TurtleMobility::initialize(), inet::MassMobility::initialize(), inet::Ns2MotionMobility::initialize(), inet::MoBanLocal::initialize(), and inet::MoBanCoordinator::initialize().
|
overrideprotectedvirtual |
Initializes mobility position.
Reimplemented from inet::MobilityBase.
Reimplemented in inet::LineSegmentsMobilityBase.
|
protectedpure virtual |
Moves according to the mobility model to the current simulation time.
Subclasses must override and update lastPosition, lastVelocity, lastUpdate, nextChange and other state according to the mobility model.
Implemented in inet::Ns2MotionMobility, inet::TurtleMobility, inet::CircleMobility, inet::MassMobility, inet::AnsimMobility, inet::BonnMotionMobility, inet::RectangleMobility, inet::VehicleMobility, inet::GaussMarkovMobility, inet::ChiangMobility, inet::RandomWaypointMobility, inet::LinearMobility, and inet::LineSegmentsMobilityBase.
Referenced by moveAndUpdate().
|
protected |
Moves and notifies listeners.
Referenced by getCurrentAngularPosition(), getCurrentAngularVelocity(), getCurrentPosition(), getCurrentVelocity(), and handleSelfMessage().
|
protectedvirtual |
Reimplemented in inet::MassMobility, and inet::VehicleMobility.
Referenced by moveAndUpdate(), inet::VehicleMobility::orient(), and inet::CircleMobility::setInitialPosition().
|
protected |
Schedules the move timer that will update the mobility state.
Referenced by handleSelfMessage(), inet::LineSegmentsMobilityBase::initializePosition(), initializePosition(), and inet::MoBanLocal::setMoBANParameters().
|
protected |
Referenced by initialize(), inet::MassMobility::orient(), and orient().
|
protected |
The last angular velocity that was reported at lastUpdate.
Referenced by getCurrentAngularVelocity(), and inet::CircleMobility::initialize().
|
protected |
The simulation time when the mobility state was last updated.
Referenced by inet::LineSegmentsMobilityBase::initializePosition(), initializePosition(), inet::LineSegmentsMobilityBase::move(), inet::LinearMobility::move(), inet::RectangleMobility::move(), inet::MassMobility::move(), and moveAndUpdate().
|
protected |
The last velocity that was reported at lastUpdate.
Referenced by getCurrentVelocity(), inet::LinearMobility::initialize(), inet::LineSegmentsMobilityBase::initializePosition(), inet::LineSegmentsMobilityBase::move(), inet::LinearMobility::move(), inet::ChiangMobility::move(), inet::GaussMarkovMobility::move(), inet::RectangleMobility::move(), inet::MassMobility::move(), inet::CircleMobility::move(), orient(), inet::MoBanLocal::setMoBANParameters(), and inet::ChiangMobility::setTargetPosition().
|
protected |
The message used for mobility state changes.
Referenced by initialize(), scheduleUpdate(), and ~MovingMobilityBase().
|
protected |
The next simulation time when the mobility module needs to update its internal state.
The -1 value turns off sending a self message for the next mobility state change.
Referenced by inet::TurtleMobility::executeStatement(), inet::AnsimMobility::extractDataFrom(), inet::LineSegmentsMobilityBase::initializePosition(), inet::LineSegmentsMobilityBase::move(), inet::MassMobility::move(), moveAndUpdate(), inet::MoBanCoordinator::refreshDisplay(), inet::TurtleMobility::resumeScript(), scheduleUpdate(), inet::TurtleMobility::setInitialPosition(), inet::MoBanLocal::setMoBANParameters(), inet::RandomWaypointMobility::setTargetPosition(), inet::ChiangMobility::setTargetPosition(), inet::BonnMotionMobility::setTargetPosition(), inet::AnsimMobility::setTargetPosition(), inet::TractorMobility::setTargetPosition(), inet::GaussMarkovMobility::setTargetPosition(), inet::MassMobility::setTargetPosition(), inet::Ns2MotionMobility::setTargetPosition(), inet::MoBanLocal::setTargetPosition(), and inet::MoBanCoordinator::setTargetPosition().
|
protected |
A mobility model may decide to become stationary at any time.
The true value disables sending self messages.
Referenced by inet::ChiangMobility::initialize(), inet::LinearMobility::initialize(), inet::RandomWaypointMobility::initialize(), inet::GaussMarkovMobility::initialize(), inet::RectangleMobility::initialize(), inet::CircleMobility::initialize(), inet::LineSegmentsMobilityBase::initializePosition(), inet::TurtleMobility::resumeScript(), scheduleUpdate(), inet::BonnMotionMobility::setTargetPosition(), inet::AnsimMobility::setTargetPosition(), and inet::Ns2MotionMobility::setTargetPosition().
|
protected |
The simulation time interval used to regularly signal mobility state changes.
The 0 value turns off the signal.
Referenced by initialize(), scheduleUpdate(), and inet::GaussMarkovMobility::setTargetPosition().