propagation: Clarify units and range on Friis SystemLoss attribute

This commit is contained in:
Tom Henderson
2024-03-29 18:20:26 -07:00
parent f0fda976f8
commit 655455bf04
2 changed files with 18 additions and 10 deletions

View File

@@ -161,9 +161,10 @@ FriisPropagationLossModel::GetTypeId()
&FriisPropagationLossModel::GetFrequency),
MakeDoubleChecker<double>())
.AddAttribute("SystemLoss",
"The system loss",
"The system loss (linear factor >= 1, not in dB)",
DoubleValue(1.0),
MakeDoubleAccessor(&FriisPropagationLossModel::m_systemLoss),
MakeDoubleAccessor(&FriisPropagationLossModel::SetSystemLoss,
&FriisPropagationLossModel::GetSystemLoss),
MakeDoubleChecker<double>())
.AddAttribute("MinLoss",
"The minimum value (dB) of the total loss, used at short ranges.",
@@ -181,6 +182,7 @@ FriisPropagationLossModel::FriisPropagationLossModel()
void
FriisPropagationLossModel::SetSystemLoss(double systemLoss)
{
NS_ABORT_MSG_UNLESS(systemLoss >= 1, "System loss less than 1 corresponds to gain");
m_systemLoss = systemLoss;
}
@@ -308,9 +310,10 @@ TwoRayGroundPropagationLossModel::GetTypeId()
&TwoRayGroundPropagationLossModel::GetFrequency),
MakeDoubleChecker<double>())
.AddAttribute("SystemLoss",
"The system loss",
"The system loss (linear factor >= 1, not in dB)",
DoubleValue(1.0),
MakeDoubleAccessor(&TwoRayGroundPropagationLossModel::m_systemLoss),
MakeDoubleAccessor(&TwoRayGroundPropagationLossModel::SetSystemLoss,
&TwoRayGroundPropagationLossModel::GetSystemLoss),
MakeDoubleChecker<double>())
.AddAttribute(
"MinDistance",
@@ -334,6 +337,7 @@ TwoRayGroundPropagationLossModel::TwoRayGroundPropagationLossModel()
void
TwoRayGroundPropagationLossModel::SetSystemLoss(double systemLoss)
{
NS_ABORT_MSG_UNLESS(systemLoss >= 1, "System loss less than 1 corresponds to gain");
m_systemLoss = systemLoss;
}

View File

@@ -271,9 +271,11 @@ class FriisPropagationLossModel : public PropagationLossModel
*/
void SetFrequency(double frequency);
/**
* \param systemLoss (dimension-less)
* \param systemLoss (linear factor, dimension-less)
*
* Set the system loss used by the Friis propagation model.
* Value should be greater than or equal to 1; the default of 1
* corresponds to no system loss.
*/
void SetSystemLoss(double systemLoss);
@@ -295,7 +297,7 @@ class FriisPropagationLossModel : public PropagationLossModel
*/
double GetFrequency() const;
/**
* \returns the current system loss (dimension-less)
* \returns the current system loss (linear factor, dimension-less)
*/
double GetSystemLoss() const;
@@ -321,7 +323,7 @@ class FriisPropagationLossModel : public PropagationLossModel
double m_lambda; //!< the carrier wavelength
double m_frequency; //!< the carrier frequency
double m_systemLoss; //!< the system loss
double m_systemLoss; //!< the system loss (linear factor)
double m_minLoss; //!< the minimum loss
};
@@ -376,9 +378,11 @@ class TwoRayGroundPropagationLossModel : public PropagationLossModel
void SetFrequency(double frequency);
/**
* \param systemLoss (dimension-less)
* \param systemLoss (linear factor, dimension-less)
*
* Set the system loss used by the TwoRayGround propagation model.
* Value should be greater than or equal to 1; the default of 1
* corresponds to no system loss.
*/
void SetSystemLoss(double systemLoss);
/**
@@ -399,7 +403,7 @@ class TwoRayGroundPropagationLossModel : public PropagationLossModel
double GetFrequency() const;
/**
* \returns the current system loss (dimension-less)
* \returns the current system loss (linear factor, dimension-less)
*/
double GetSystemLoss() const;
/**
@@ -431,7 +435,7 @@ class TwoRayGroundPropagationLossModel : public PropagationLossModel
double m_lambda; //!< the carrier wavelength
double m_frequency; //!< the carrier frequency
double m_systemLoss; //!< the system loss
double m_systemLoss; //!< the system loss (linear factor)
double m_minDistance; //!< minimum distance for the model
double m_heightAboveZ; //!< antenna height above the node's Z coordinate
};