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


Classes | |
| class | UpdatePositionTimer |
Public Types | |
| enum | BoundType { SPHERIC = 1 , THOROIDAL , HARDWALL , REBOUNCE } |
| Defines the behaviour of the node when it reaches an edge of the simulation field. More... | |
Public Member Functions | |
| WossGroupMob3D () | |
| virtual | ~WossGroupMob3D () |
| 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 double | getCharge () |
| 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 () |
| double | distance (WossPosition *pos1, WossPosition *pos2) |
| double | mirror_posx (double x_coord_node, double x_coord_leader) |
| double | mirror_posy (double y_coord_node, double y_coord_leader) |
| double | mirror_posz (double z_coord_node, double z_coord_leader) |
Protected Attributes | |
| double | xFieldWidth_ |
| double | yFieldWidth_ |
| double | zFieldWidth_ |
| double | alpha_ |
| double | speedMean_ |
| double | directionMean_ |
| double | pitchMean_ |
| double | sigmaPitch_ |
| BoundType | bound_ |
| double | updateTime_ |
| double | speed_ |
| double | direction_ |
| int | wossgroup_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_ |
| double | speedM_ |
| double | speedS_ |
| double | eta_ |
| double | beta_ |
| double | charge_ |
| double | leaderCharge_ |
| double | galpha_ |
| int | count |
| string | gm3dGroupTraceFile |
| WossPosition * | leader_ |
| UpdatePositionTimer | update_position_timer |
| Uwrandomlib | randlib |
Base class of Group Mobility Model. This is inherited from WossPosition Class.
| WossGroupMob3D::WossGroupMob3D | ( | ) |
Constructor of WossGroupMob3D class
References alpha_, charge_, count, directionMean_, eta_, galpha_, leaderCharge_, pitchMean_, WossGroupMob3D::UpdatePositionTimer::schedule(), sigmaPitch_, speedM_, speedS_, update_position_timer, updateTime_, wossgroup_debug_, xFieldWidth_, yFieldWidth_, zFieldWidth_, and zmin_.

|
virtual |
Destructor of WossGroupMob3D class
|
virtual |
TCL command intepreter. 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_, gm3dGroupTraceFile, HARDWALL, leader_, maddr, mtrace_, mtrace_of_node_, REBOUNCE, speed_, speedMean_, SPHERIC, start_latitude, start_longitude, THOROIDAL, update(), and wossgroup_debug_.

|
protected |
Calculate the distance between two nodes.
| pointer | of node position 1 |
| pointer | of node position 2 |
References bound_, maddr, SPHERIC, wossgroup_debug_, xFieldWidth_, yFieldWidth_, and zFieldWidth_.
Referenced by update().
|
protected |
Method that returns a value from a normal random Gaussian variable (zero mean, unitary viariance)
References maddr, and wossgroup_debug_.
Referenced by update().
|
inlinevirtual |
|
virtual |
Method that return the starting projection of the node on the cartesian x-axis. If it's necessary (updating time when it is expired), update the position values before returns it.
References maddr, start_latitude, start_longitude, start_x, and wossgroup_debug_.
Referenced by update().
|
virtual |
Method that return the starting projection of the node on the cartesian y-axis. If it's necessary (updating time when it is expired), update the position values before returns it.
References maddr, start_latitude, start_longitude, start_y, and wossgroup_debug_.
Referenced by update().
|
protected |
Approximate position at x-axis
| x-axis | value of follower |
| x-axis | value of leader |
References bound_, maddr, SPHERIC, wossgroup_debug_, and xFieldWidth_.
Referenced by update().
|
protected |
Approximate position at y-axis
| y-axis | value of follower |
| y-axis | value of leader |
References bound_, maddr, SPHERIC, wossgroup_debug_, and yFieldWidth_.
Referenced by update().
|
protected |
Approximate position at z-axis
| z-axis | value of follower |
| z-axis | value of leader |
References bound_, maddr, SPHERIC, wossgroup_debug_, and zFieldWidth_.
Referenced by update().
|
virtual |
Method that sets the latitude of the node after update.
| changes | in x-axis |
| changes | in y-axis |
References maddr, wossgroup_debug_, x_coord, and y_coord.
Referenced by update().
|
virtual |
Method that sets the longitude of the node after update.
| changes | in x-axis |
| changes | in y-axis |
References maddr, wossgroup_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_, beta_, bound_, charge_, direction_, directionMean_, distance(), eta_, galpha_, Uwrandomlib::Gauss(), Gaussian(), getStartX(), getStartY(), gm3dGroupTraceFile, HARDWALL, leader_, leaderCharge_, maddr, mirror_posx(), mirror_posy(), mirror_posz(), mtrace_, mtrace_of_node_, newx, newy, newz, pitch_, pitchMean_, randlib, REBOUNCE, WossGroupMob3D::UpdatePositionTimer::schedule(), setLat(), setLong(), sigmaPitch_, speed_, speedM_, speedMean_, speedS_, SPHERIC, THOROIDAL, update(), update_position_timer, updateTime_, vx, vy, vz, wossgroup_debug_, x_coord, xFieldWidth_, y_coord, yFieldWidth_, z_coord, zFieldWidth_, and zmin_.
Referenced by command(), WossGroupMob3D::UpdatePositionTimer::expire(), and update().

|
protected |
Parameter to be used to vary the randomness. 0: totally random values (Brownian motion). 1: linear motion
Referenced by update(), and WossGroupMob3D().
|
protected |
A variable which is employed to calculate attraction force towards the leader
Referenced by update().
|
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)
Referenced by command(), distance(), mirror_posx(), mirror_posy(), mirror_posz(), and update().
|
protected |
Attraction charge of the follower
Referenced by getCharge(), update(), and WossGroupMob3D().
|
protected |
A counting variable
Referenced by WossGroupMob3D().
|
protected |
Current value of the direction
Referenced by update().
|
protected |
Defines the mean value of the direction
Referenced by update(), and WossGroupMob3D().
|
protected |
A tunable variable which is the coefficient of the filter in that range between 0 and 1
Referenced by update(), and WossGroupMob3D().
|
protected |
It tells the intensity of the attraction filed
Referenced by update(), and WossGroupMob3D().
|
protected |
|
protected |
|
protected |
Attraction charge of the leader
Referenced by update(), and WossGroupMob3D().
|
protected |
Mac address of the node whose movement we would like to trace
Referenced by command(), distance(), WossGroupMob3D::UpdatePositionTimer::expire(), Gaussian(), getStartX(), getStartY(), mirror_posx(), mirror_posy(), mirror_posz(), setLat(), setLong(), and update().
|
protected |
| double WossGroupMob3D::newx |
Referenced by update().
| double WossGroupMob3D::newy |
Referenced by update().
| double WossGroupMob3D::newz |
new position of a node respectively in x-axis, y-axis and z-axis.
Referenced by update().
|
protected |
Current value of the pitch
Referenced by update().
|
protected |
Defines the mean value of the shifting in z-axis
Referenced by update(), and WossGroupMob3D().
|
protected |
Referenced by update().
|
protected |
Standard deviation in the z-axis
Referenced by update(), and WossGroupMob3D().
|
protected |
|
protected |
Mean of the speed which is used to compute a Gaussian random variable.
Referenced by update(), and WossGroupMob3D().
|
protected |
|
protected |
Standard deviation of speed which is also used to compute a Gaussian random variable
Referenced by update(), and WossGroupMob3D().
|
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 WossGroupMob3D().
|
protected |
Time between two update computation
Referenced by update(), and WossGroupMob3D().
| double WossGroupMob3D::vx |
Referenced by update().
| double WossGroupMob3D::vy |
Referenced by update().
| double WossGroupMob3D::vz |
new velocity of a node respectively in x-axis, y-axis and z-axis.
Referenced by update().
|
protected |
Debug flag
Referenced by command(), distance(), WossGroupMob3D::UpdatePositionTimer::expire(), Gaussian(), getStartX(), getStartY(), mirror_posx(), mirror_posy(), mirror_posz(), setLat(), setLong(), update(), and WossGroupMob3D().
|
protected |
Range of the x-axis of the field to be simulated
Referenced by distance(), mirror_posx(), update(), and WossGroupMob3D().
|
protected |
Range of the y-axis of the field to be simulated
Referenced by distance(), mirror_posy(), update(), and WossGroupMob3D().
| double WossGroupMob3D::z_coord |
position of the node.
Referenced by update().
|
protected |
Range of the z-axis of the field to be simulated
Referenced by distance(), mirror_posz(), update(), and WossGroupMob3D().
|
protected |
Minimum z-axis value
Referenced by update(), and WossGroupMob3D().