This is a linear mobility model with speed, angle and acceleration parameters. Angle only changes when the mobile node hits a wall: then it reflects off the wall at the same angle.
Author: Emin Ilker Cetinbas
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Name | Type | Description |
---|---|---|
MovingMobilityBase | simple module |
Abstract base module for mobility models. |
Name | Type | Default value | Description |
---|---|---|---|
coordinateSystemModule | string | "" |
module path of the geographic coordinate system module |
visualizeMobility | bool | true |
false means this mobility module does no visualization |
visualRepresentation | string | "^" |
determines the module that is moved by this mobility |
constraintAreaMinX | double | -1m/0 |
min x position of the constraint area, unconstrained by default (negative infinity) |
constraintAreaMinY | double | -1m/0 |
min y position of the constraint area, unconstrained by default (negative infinity) |
constraintAreaMinZ | double | -1m/0 |
min z position of the constraint area, unconstrained by default (negative infinity) |
constraintAreaMaxX | double | 1m/0 |
max x position of the constraint area, unconstrained by default (positive infinity) |
constraintAreaMaxY | double | 1m/0 |
max y position of the constraint area, unconstrained by default (positive infinity) |
constraintAreaMaxZ | double | 1m/0 |
max z position of the constraint area, unconstrained by default (positive infinity) |
updateInterval | double | 0.1s |
the simulation time interval used to regularly signal mobility state changes and update the display |
initialX | double | uniform(this.constraintAreaMinX, this.constraintAreaMaxX) | |
initialY | double | uniform(this.constraintAreaMinY, this.constraintAreaMaxY) | |
initialZ | double | nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ)) | |
initFromDisplayString | bool | true | |
speed | double | 0mps |
speed of the host |
angle | double | uniform(0deg, 360deg) |
angle of linear motion |
acceleration | double | 0 |
acceleration of linear motion (m/s2) |
Name | Value | Description |
---|---|---|
display | i=block/cogwheel | |
class | LinearMobility |
Name | Type | Unit |
---|---|---|
mobilityStateChanged | MobilityBase |
// // This is a linear mobility model with speed, angle and acceleration parameters. // Angle only changes when the mobile node hits a wall: then it reflects // off the wall at the same angle. // // @author Emin Ilker Cetinbas // simple LinearMobility extends MovingMobilityBase { parameters: double initialX @unit(m) = default(uniform(this.constraintAreaMinX, this.constraintAreaMaxX)); double initialY @unit(m) = default(uniform(this.constraintAreaMinY, this.constraintAreaMaxY)); double initialZ @unit(m) = default(nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ))); bool initFromDisplayString = default(true); double speed @unit(mps) = default(0mps); // speed of the host double angle @unit(deg) = default(uniform(0deg, 360deg)); // angle of linear motion double acceleration = default(0); // acceleration of linear motion (m/s2) @class(LinearMobility); }