From 4826b21968b0bef3c8463f7492544f92700d0881 Mon Sep 17 00:00:00 2001 From: adrian Date: Tue, 6 Dec 2011 11:38:48 +0200 Subject: [PATCH] Lower receiver sensitivity, modify loading of antenna pattern --- src/Radio/antenna.cxx | 20 ++++++++++++-------- src/Radio/antenna.hxx | 2 +- src/Radio/radio.cxx | 10 +++++----- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/Radio/antenna.cxx b/src/Radio/antenna.cxx index 6fc7fd45b..2be67f351 100644 --- a/src/Radio/antenna.cxx +++ b/src/Radio/antenna.cxx @@ -39,6 +39,10 @@ FGRadioAntenna::FGRadioAntenna(string type) { } FGRadioAntenna::~FGRadioAntenna() { + for (unsigned i =0; i < _pattern.size(); i++) { + AntennaGain *point_gain = _pattern[i]; + delete point_gain; + } _pattern.clear(); } @@ -55,11 +59,11 @@ double FGRadioAntenna::calculate_gain(double bearing, double angle) { int elevation = (int)floor(angle); elevation += elevation % 2; cerr << "Bearing: " << bearing << " angle: " << angle << " azimuth: " << azimuth << " elevation: " << elevation << endl; - for (unsigned int i =0; i < _pattern.size(); i++) { - AntennaGain point_gain = _pattern[i]; + for (unsigned i =0; i < _pattern.size(); i++) { + AntennaGain *point_gain = _pattern[i]; - if ( (azimuth == point_gain.azimuth) && (elevation == point_gain.elevation)) { - return point_gain.gain; + if ( (azimuth == point_gain->azimuth) && (elevation == point_gain->elevation)) { + return point_gain->gain; } } @@ -90,10 +94,10 @@ void FGRadioAntenna::load_antenna_pattern(string type) { continue; } //cerr << "head: " << heading << " elev: " << elevation << " gain: " << gain << endl; - AntennaGain datapoint; - datapoint.azimuth = heading; - datapoint.elevation = 90.0 - fabs(elevation); - datapoint.gain = gain; + AntennaGain *datapoint = new AntennaGain; + datapoint->azimuth = heading; + datapoint->elevation = 90.0 - fabs(elevation); + datapoint->gain = gain; _pattern.push_back(datapoint); } diff --git a/src/Radio/antenna.hxx b/src/Radio/antenna.hxx index 81aad2367..0421a7f0c 100644 --- a/src/Radio/antenna.hxx +++ b/src/Radio/antenna.hxx @@ -44,7 +44,7 @@ private: double gain; }; SGPath _pattern_file; - typedef std::vector AntennaPattern; + typedef std::vector AntennaPattern; AntennaPattern _pattern; public: diff --git a/src/Radio/radio.cxx b/src/Radio/radio.cxx index 53e6c21f2..efe77b413 100644 --- a/src/Radio/radio.cxx +++ b/src/Radio/radio.cxx @@ -37,7 +37,7 @@ FGRadioTransmission::FGRadioTransmission() { - _receiver_sensitivity = -110.0; // typical AM receiver sensitivity seems to be 0.8 microVolt at 12dB SINAD + _receiver_sensitivity = -105.0; // typical AM receiver sensitivity seems to be 0.8 microVolt at 12dB SINAD /** AM transmitter power in dBm. * Typical output powers for ATC ground equipment, VHF-UHF: @@ -362,15 +362,15 @@ double FGRadioTransmission::ITM_calculate_attenuation(SGGeod pos, double freq, i double num_points= (double)elevations.size(); - _elevations.push_front(point_distance); - _elevations.push_front(num_points -1); + elevations.push_front(point_distance); + elevations.push_front(num_points -1); - int size = _elevations.size(); + int size = elevations.size(); double *itm_elev; itm_elev = new double[size]; for(int i=0;i