|
DESERT 4.0.0
|
#include <uwoptical-mpropagation.h>


Public Member Functions | |
| UwOpticalMPropagation () | |
| virtual | ~UwOpticalMPropagation () |
| virtual int | command (int, const char *const *) |
| virtual double | getGain (Packet *p) |
| virtual void | setWoss (bool flag) |
| double | getTemperature (double depth) |
| double | getBeta (Packet *p) |
| double | getC (Packet *p=NULL) |
| bool | isOmnidirectional () |
Public Attributes | |
| int | debug_ |
Protected Member Functions | |
| virtual double | getLambertBeerGain (double d, double beta_) |
| virtual void | initializeLUT () |
| double | getWossOrientation (Position *src, Position *dest) |
| double | linearInterpolator (double x, double x1, double x2, double y1, double y2) |
| void | updateC (double d) |
| double | getLambertBeerGain_variableC (double beta_, double min_depth_, double max_depth_) |
Protected Attributes | |
| double | Ar_ |
| double | At_ |
| double | c_ |
| double | theta_ |
| bool | omnidirectional_ |
| bool | variable_c_ |
| bool | use_woss_ |
| LUT_c | lut_c_ |
| string | lut_file_name_ |
| char | lut_token_separator_ |
Class used to represents the UWOPTICAL_MPROPAGATION.
| UwOpticalMPropagation::UwOpticalMPropagation | ( | ) |
|
inlinevirtual |
Destructor of the UwOpticalMPropagation class
|
virtual |
TCL command interpreter. It implements the following OTcl methods:
| argc | Number of arguments in argv. |
| argv | Array of strings which are the command parameters (Note that argv[0] is the name of the object). |
References Ar_, At_, c_, initializeLUT(), lut_file_name_, lut_token_separator_, omnidirectional_, theta_, and variable_c_.

| double UwOpticalMPropagation::getBeta | ( | Packet * | p | ) |
Provide angle between transmitter and receiver.
| Packet* | Pointer to the packet that has to be received. |
References getWossOrientation(), and use_woss_.
Referenced by getGain().

| double UwOpticalMPropagation::getC | ( | Packet * | p = NULL | ) |
|
virtual |
Calculate the gain following the Lambert and Beer's law
| Packet* | Pointer to the packet that has to be received. |
References debug_, getBeta(), getLambertBeerGain(), getLambertBeerGain_variableC(), updateC(), use_woss_, and variable_c_.

|
protectedvirtual |
Calculate the gain following the Lambert and Beer's law
| d | Distance between transmitter and receiver. |
| beta | inclination angle between the transmitter and the receiver. |
References Ar_, At_, c_, omnidirectional_, and theta_.
Referenced by getGain().
|
protected |
Calculate the gain following the Lambert and Beer's law in the case of variable c model
| beta_ | |
| min_depth_ | the max between depth of rx and depth of tx. |
| max_depth_ | the min between depth of rx and depth of tx. |
References Ar_, At_, debug_, linearInterpolator(), lut_c_, omnidirectional_, and theta_.
Referenced by getGain().

| double UwOpticalMPropagation::getTemperature | ( | double | depth | ) |
Provide the temperature from LUT
| depth | depth of the receiver. |
References linearInterpolator(), lut_c_, and variable_c_.

|
protected |
|
protectedvirtual |
Inizialize LUT of c_variable values
References lut_c_, lut_file_name_, and lut_token_separator_.
Referenced by command().
| bool UwOpticalMPropagation::isOmnidirectional | ( | ) |
Provide if we are assuming omnidirectional tx and rx or not.
References omnidirectional_.
|
protected |
Calculate the linear interpolation between two 2-D points
| x | x-coordinate of which we need to finde the value. |
| x1 | x-coordinate of the first point |
| x2 | x-coordinate of the second point |
| y1 | y-coordinate of the first point |
| y2 | y-coordinate of the second point |
References q.
Referenced by getLambertBeerGain_variableC(), getTemperature(), and updateC().
|
virtual |
References use_woss_.
|
protected |
Set the attenuation coefficient from lookup table when both the nodes are alligned and at the same depth
| d | depth of the nodes. |
References c_, linearInterpolator(), and lut_c_.
Referenced by getGain().

|
protected |
Receiver area [m^2]
Referenced by command(), getLambertBeerGain(), getLambertBeerGain_variableC(), and UwOpticalMPropagation().
|
protected |
Transmitter size [m^2]
Referenced by command(), getLambertBeerGain(), getLambertBeerGain_variableC(), and UwOpticalMPropagation().
|
protected |
Beam light attenuation coefficient c = a + b [m^-1]
Referenced by command(), getC(), getLambertBeerGain(), updateC(), and UwOpticalMPropagation().
| int UwOpticalMPropagation::debug_ |
Referenced by getGain(), getLambertBeerGain_variableC(), getWossOrientation(), and UwOpticalMPropagation().
|
protected |
Lookup table map of the attenuation coefficient and the temperature versus the depth
Referenced by getC(), getLambertBeerGain_variableC(), getTemperature(), initializeLUT(), and updateC().
|
protected |
LUT file name
Referenced by command(), and initializeLUT().
|
protected |
LUT token separator
Referenced by command(), and initializeLUT().
|
protected |
Flag to set whether the system is omnidirectional or not. By default it is false
Referenced by command(), getLambertBeerGain(), getLambertBeerGain_variableC(), and isOmnidirectional().
|
protected |
Transmitting beam diverge angle [rad]
Referenced by command(), getLambertBeerGain(), getLambertBeerGain_variableC(), and UwOpticalMPropagation().
|
protected |
|
protected |
Flag to set whether the attenuation is constant or not. By default it is false
Referenced by command(), getC(), getGain(), and getTemperature().