DESERT 4.0.0
UwOpticalBeamPattern Class Reference

#include <uwopticalbeampattern.h>

Inheritance diagram for UwOpticalBeamPattern:
Inheritance graph
Collaboration diagram for UwOpticalBeamPattern:
Collaboration graph

Public Member Functions

 UwOpticalBeamPattern ()
 
virtual ~UwOpticalBeamPattern ()
 
virtual int command (int, const char *const *)
 
virtual void startRx (Packet *p)
 
virtual void startTx (Packet *p)
 
- Public Member Functions inherited from UwOpticalPhy
 UwOpticalPhy ()
 
virtual ~UwOpticalPhy ()
 
virtual double getSNRdB (Packet *p)
 
virtual void endRx (Packet *p)
 
virtual double getNoisePower (Packet *p)
 

Protected Member Functions

void initializeLUT ()
 
void initializeBeamLUT (BeamPattern &beam_lut_, string beam_pattern_path_)
 
void initializeMaxRangeLUT ()
 
double getMaxTxRange (Packet *p)
 
double getLutMaxDist (double c, double na)
 
double getLutBeamFactor (BeamPattern &beam_lut_, double beta)
 
double getBetaRx (Packet *p)
 
double getBetaXY (Packet *p, double rotation_angle)
 
double getBetaXYRx (Packet *p)
 
double getBetaXYTx (Packet *p)
 
double getBetaTx (Packet *p)
 
- Protected Member Functions inherited from UwOpticalPhy
virtual double lookUpLightNoiseE (double depth)
 
virtual double linearInterpolator (double x, double x1, double y1, double x2, double y2)
 
double getVarTemperature (Packet *p)
 

Private Member Functions

void checkInclinationAngle ()
 

Private Attributes

string beam_pattern_path_rx_
 
string beam_pattern_path_tx_
 
string max_dist_path_
 
char beam_pattern_separator_
 
char max_dist_separator_
 
CMaxDist dist_lut_
 
BeamPattern beam_lut_rx_
 
BeamPattern beam_lut_tx_
 
double back_noise_threshold_
 
double inclination_angle_
 
bool sameBeam
 

Additional Inherited Members

- Protected Attributes inherited from UwOpticalPhy
bool use_woss_
 

Constructor & Destructor Documentation

◆ UwOpticalBeamPattern()

UwOpticalBeamPattern::UwOpticalBeamPattern ( )

Constructor of UwMultiPhy class.

References back_noise_threshold_, checkInclinationAngle(), and inclination_angle_.

Here is the call graph for this function:

◆ ~UwOpticalBeamPattern()

virtual UwOpticalBeamPattern::~UwOpticalBeamPattern ( )
inlinevirtual

Destructor of UwMultiPhy class.

Member Function Documentation

◆ checkInclinationAngle()

void UwOpticalBeamPattern::checkInclinationAngle ( )
private

References inclination_angle_.

Referenced by command(), and UwOpticalBeamPattern().

◆ command()

int UwOpticalBeamPattern::command ( int  argc,
const char *const *  argv 
)
virtual

TCL command interpreter. It implements the following OTcl methods:

Parameters
argcNumber of arguments in argv.
argvArray of strings which are the command parameters (Note that argv[0] is the name of the object).
Returns
TCL_OK or TCL_ERROR whether the command has been dispatched successfully or not.

Reimplemented from UwOpticalPhy.

References beam_pattern_path_rx_, beam_pattern_path_tx_, beam_pattern_separator_, checkInclinationAngle(), UwOpticalPhy::command(), inclination_angle_, max_dist_path_, max_dist_separator_, and sameBeam.

Here is the call graph for this function:

◆ getBetaRx()

double UwOpticalBeamPattern::getBetaRx ( Packet *  p)
protected

◆ getBetaTx()

double UwOpticalBeamPattern::getBetaTx ( Packet *  p)
protected

References hdr_uwopticalbeampattern::get_inclination_angle(), and UwOpticalPhy::use_woss_.

Referenced by getMaxTxRange().

Here is the call graph for this function:

◆ getBetaXY()

double UwOpticalBeamPattern::getBetaXY ( Packet *  p,
double  rotation_angle 
)
protected

◆ getBetaXYRx()

double UwOpticalBeamPattern::getBetaXYRx ( Packet *  p)
protected

◆ getBetaXYTx()

double UwOpticalBeamPattern::getBetaXYTx ( Packet *  p)
protected

References hdr_uwopticalbeampattern::get_inclination_angle(), and UwOpticalPhy::use_woss_.

Referenced by getMaxTxRange().

Here is the call graph for this function:

◆ getLutBeamFactor()

double UwOpticalBeamPattern::getLutBeamFactor ( BeamPattern beam_lut_,
double  beta 
)
protected

References UwOpticalPhy::linearInterpolator().

Referenced by getMaxTxRange().

Here is the call graph for this function:

◆ getLutMaxDist()

double UwOpticalBeamPattern::getLutMaxDist ( double  c,
double  na 
)
protected

Get the maximum transmission range for these water properties.

References back_noise_threshold_, dist_lut_, and UwOpticalPhy::linearInterpolator().

Referenced by getMaxTxRange().

Here is the call graph for this function:

◆ getMaxTxRange()

double UwOpticalBeamPattern::getMaxTxRange ( Packet *  p)
protected

Get the transmission range in the current conditions.

References beam_lut_rx_, beam_lut_tx_, dist_lut_, getBetaRx(), getBetaTx(), getBetaXYRx(), getBetaXYTx(), getLutBeamFactor(), getLutMaxDist(), UwOpticalPhy::lookUpLightNoiseE(), and UwOpticalPhy::use_woss_.

Referenced by startRx().

Here is the call graph for this function:

◆ initializeBeamLUT()

void UwOpticalBeamPattern::initializeBeamLUT ( BeamPattern beam_lut_,
string  beam_pattern_path_ 
)
protected

Inizialize beam pattern LUT

References beam_pattern_separator_.

Referenced by initializeLUT().

◆ initializeLUT()

void UwOpticalBeamPattern::initializeLUT ( )
protectedvirtual

Inizialize all the LUTs

Reimplemented from UwOpticalPhy.

References beam_lut_rx_, beam_lut_tx_, beam_pattern_path_rx_, beam_pattern_path_tx_, initializeBeamLUT(), UwOpticalPhy::initializeLUT(), and initializeMaxRangeLUT().

Here is the call graph for this function:

◆ initializeMaxRangeLUT()

void UwOpticalBeamPattern::initializeMaxRangeLUT ( )
protected

◆ startRx()

void UwOpticalBeamPattern::startRx ( Packet *  p)
virtual

Reimplemented from UwOpticalPhy.

References getMaxTxRange().

Here is the call graph for this function:

◆ startTx()

void UwOpticalBeamPattern::startTx ( Packet *  p)
virtual

References hdr_uwopticalbeampattern::get_inclination_angle(), and inclination_angle_.

Here is the call graph for this function:

Member Data Documentation

◆ back_noise_threshold_

double UwOpticalBeamPattern::back_noise_threshold_
private

◆ beam_lut_rx_

BeamPattern UwOpticalBeamPattern::beam_lut_rx_
private

Referenced by getMaxTxRange(), and initializeLUT().

◆ beam_lut_tx_

BeamPattern UwOpticalBeamPattern::beam_lut_tx_
private

Referenced by getMaxTxRange(), and initializeLUT().

◆ beam_pattern_path_rx_

string UwOpticalBeamPattern::beam_pattern_path_rx_
private

Referenced by command(), and initializeLUT().

◆ beam_pattern_path_tx_

string UwOpticalBeamPattern::beam_pattern_path_tx_
private

Referenced by command(), and initializeLUT().

◆ beam_pattern_separator_

char UwOpticalBeamPattern::beam_pattern_separator_
private

Referenced by command(), and initializeBeamLUT().

◆ dist_lut_

CMaxDist UwOpticalBeamPattern::dist_lut_
private

◆ inclination_angle_

double UwOpticalBeamPattern::inclination_angle_
private

Angle of inclination from the 0 Zenith

Referenced by checkInclinationAngle(), command(), getBetaRx(), getBetaXYRx(), startTx(), and UwOpticalBeamPattern().

◆ max_dist_path_

string UwOpticalBeamPattern::max_dist_path_
private

Referenced by command(), and initializeMaxRangeLUT().

◆ max_dist_separator_

char UwOpticalBeamPattern::max_dist_separator_
private

Referenced by command(), and initializeMaxRangeLUT().

◆ sameBeam

bool UwOpticalBeamPattern::sameBeam
private

Referenced by command().


The documentation for this class was generated from the following files: