|
DESERT 4.0.0
|
#include <woss-gmmobility-3d.h>


Classes | |
| class | UpdateTimerPosition |
Public Types | |
| enum | BoundType { SPHERIC = 1 , THOROIDAL , HARDWALL , REBOUNCE } |
Public Member Functions | |
| WossGMMob3D () | |
| virtual | ~WossGMMob3D () |
| virtual double | getStartX () |
| virtual double | getStartY () |
| virtual void | setLat (double x_coord, double y_coord) |
| virtual void | setLong (double x_coord, double y_coord) |
| virtual int | command (int argc, const char *const *argv) |
Public Attributes | |
| double | newx |
| double | newy |
| double | newz |
| double | vx |
| double | vy |
| double | vz |
| double | x_coord |
| double | y_coord |
| double | z_coord |
Protected Member Functions | |
| virtual void | update () |
| double | Gaussian () |
Protected Attributes | |
| double | xFieldWidth_ |
| double | yFieldWidth_ |
| double | zFieldWidth_ |
| double | alpha_ |
| double | alphaPitch_ |
| double | speedMean_ |
| double | directionMean_ |
| double | pitchMean_ |
| double | sigmaPitch_ |
| BoundType | bound_ |
| double | updateTime_ |
| double | nextUpdateTime_ |
| double | speed_ |
| double | direction_ |
| int | wossgm_debug_ |
| int | maddr |
| double | start_latitude |
| double | start_longitude |
| double | start_x |
| double | start_y |
| int | mtrace_ |
| int | mtrace_of_node_ |
| double | pitch_ |
| double | zmin_ |
| string | gm3dTraceFile |
| UpdateTimerPosition | update_timer_position |
| Uwrandomlib | randlib |
This class implements the Gauss Markov mobility model. Movement occurs by updating the speed and the direction only when an information regarding node position is required, in this case, if is necessary, all the uncalculated previous states are computed according to a finite state Markov process. The model is designed to adapt to different level of randomness via one tuning parameter (alpha). Initially each node is assigned a current speed and direction, which will be updated during the simulation.
| WossGMMob3D::WossGMMob3D | ( | ) |
Constructor of WossGMMob3D class
References alpha_, alphaPitch_, directionMean_, pitchMean_, WossGMMob3D::UpdateTimerPosition::schedule(), sigmaPitch_, update_timer_position, updateTime_, wossgm_debug_, xFieldWidth_, yFieldWidth_, zFieldWidth_, and zmin_.

|
virtual |
Destructor of WossGMMob3D class
|
virtual |
TCL command intepreter Moreover it inherits all the OTcl method of Position
| argc | number of arguments in argv |
| argv | array of strings which are the comand parameters (Note that argv[0] is the name of the object) |
References bound_, gm3dTraceFile, HARDWALL, maddr, mtrace_, mtrace_of_node_, REBOUNCE, speed_, speedMean_, SPHERIC, start_latitude, start_longitude, THOROIDAL, and update().

|
protected |
Method that returns a value from a normal random Gaussian variable.
Referenced by update().
|
virtual |
Method that return the current projection of the node on the x-axis. If it's necessary (updating time ia expired), update the position values before returns it.
References start_latitude, start_longitude, start_x, and wossgm_debug_.
Referenced by update().
|
virtual |
Method that return the current projection of the node on the y-axis. If it's necessary (updating time ia expired), update the position values before returns it.
References start_latitude, start_longitude, start_y, and wossgm_debug_.
Referenced by update().
|
virtual |
Method that return the starting curtesian coordinates of the node on the x-axis and y-axis. It converts the starting latitude and longitude given in the tcl script into cartesian coordinates.
References maddr, wossgm_debug_, x_coord, and y_coord.
Referenced by update().
|
virtual |
References maddr, wossgm_debug_, x_coord, and y_coord.
Referenced by update().
|
protectedvirtual |
Method that updates both the position coordinates as function of the number of states to be evaluated.
References alpha_, bound_, direction_, directionMean_, Uwrandomlib::Gauss(), Gaussian(), getStartX(), getStartY(), gm3dTraceFile, HARDWALL, maddr, mtrace_, mtrace_of_node_, newx, newy, newz, pitch_, pitchMean_, randlib, REBOUNCE, WossGMMob3D::UpdateTimerPosition::schedule(), setLat(), setLong(), sigmaPitch_, speed_, speedMean_, SPHERIC, THOROIDAL, update(), update_timer_position, updateTime_, vx, vy, vz, wossgm_debug_, x_coord, xFieldWidth_, y_coord, yFieldWidth_, z_coord, zFieldWidth_, and zmin_.
Referenced by command(), and update().

|
protected |
Parameter to be used to vary the randomness. 0: totally random values (Brownian motion). 1: linear motion
Referenced by update(), and WossGMMob3D().
|
protected |
Parameter to be used to vary the randomness in z-axis.
Referenced by WossGMMob3D().
|
protected |
Defines the behaviour of the node when it reaches the edge. SPHERIC: return in the simulation field on the opposite side THOROIDAL: return in the centre of simulation field HARDWALL: the movement is stopped in the edge REBOUNCE: the node rebounce (i.e., the movement that should be outside the simulation field is mirrored inside)
|
protected |
Current value of the direction
Referenced by update().
|
protected |
Defines the mean value of the direction
Referenced by update(), and WossGMMob3D().
|
protected |
|
protected |
|
protected |
| double WossGMMob3D::newx |
Referenced by update().
| double WossGMMob3D::newy |
Referenced by update().
| double WossGMMob3D::newz |
new position of a node respectively in x-axis, y-axis and z-axis.
Referenced by update().
|
protected |
Intenal variable used to evaluate the steps to be computed
|
protected |
Current value of the pitch
Referenced by update().
|
protected |
Defines the mean value of the shifting in z-axis
Referenced by update(), and WossGMMob3D().
|
protected |
Referenced by update().
|
protected |
Standard deviation in the z-axis
Referenced by update(), and WossGMMob3D().
|
protected |
|
protected |
|
protected |
Starting latitude of the simualted area
Referenced by command(), getStartX(), and getStartY().
|
protected |
Starting longitude of the simualted area
Referenced by command(), getStartX(), and getStartY().
|
protected |
Internal variable
Referenced by getStartX().
|
protected |
Internal variable
Referenced by getStartY().
|
protected |
An object of UpdateTimerPosition class
Referenced by update(), and WossGMMob3D().
|
protected |
Time between two update computation
Referenced by update(), and WossGMMob3D().
| double WossGMMob3D::vx |
Referenced by update().
| double WossGMMob3D::vy |
Referenced by update().
| double WossGMMob3D::vz |
new velocity of a node respectively in x-axis, y-axis and z-axis.
Referenced by update().
|
protected |
Debug flag
Referenced by getStartX(), getStartY(), setLat(), setLong(), update(), and WossGMMob3D().
|
protected |
Range of the x-axis of the field to be simulated
Referenced by update(), and WossGMMob3D().
|
protected |
Range of the y-axis of the field to be simulated
Referenced by update(), and WossGMMob3D().
| double WossGMMob3D::z_coord |
Previous position of the node.
Referenced by update().
|
protected |
Range of the z-axis of the field to be simulated
Referenced by update(), and WossGMMob3D().
|
protected |
Minimum z-axis value
Referenced by update(), and WossGMMob3D().