]> git.mxchange.org Git - flightgear.git/commitdiff
Write a few more properties:
authoradrian <adrian@localhost.com>
Sat, 3 Dec 2011 14:00:14 +0000 (16:00 +0200)
committeradrian <adrian@localhost.com>
Sat, 3 Dec 2011 14:00:14 +0000 (16:00 +0200)
signal-dbm - signal strength in dBm
field-strength-uV - signal strength in microvolts

src/Radio/antenna.cxx
src/Radio/antenna.hxx
src/Radio/radio.cxx

index dc6983723cb4315ea44165c1efb633d7470d5bde..d6184890723f3bb985674c905afb9e997fbaa2c5 100644 (file)
@@ -47,8 +47,7 @@ double FGRadioAntenna::calculate_gain(double azimuth, double elevation) {
 
 
 /*** load external plot file generated by NEC4
-*
 ***/
-void FGRadioAntenna::_load_antenna_pattern() {
+void FGRadioAntenna::load_antenna_pattern() {
        
 }
index f24c133ee2d8131f10dc8327c1293aff12f4273e..3e6da25664b6a7f1186919f1e6b8302a370c0363 100644 (file)
@@ -30,7 +30,7 @@
 class FGRadioAntenna
 {
 private:
-       void _load_antenna_pattern();
+       void load_antenna_pattern();
        int _mirror_y;
        int _mirror_z;
        int _invert_ground;
index 0bc503dc921a44cc28c459e525e5c5e27532dae0..20322a0cf9d630c9252eafbbe69524bcb1d75dbb 100644 (file)
@@ -133,10 +133,11 @@ void FGRadioTransmission::receiveATC(SGGeod tx_pos, double freq, string text, in
        else {
        
                if ( _propagation_model == 0) {
+                       // skip propagation routines entirely
                        fgSetString("/sim/messages/atc", text.c_str());
                }
                else if ( _propagation_model == 1 ) {
-                       // TODO: free space, round earth
+                       // Use free-space, round earth
                        double signal = LOS_calculate_attenuation(tx_pos, freq, ground_to_air);
                        if (signal <= 0.0) {
                                return;
@@ -231,6 +232,7 @@ double FGRadioTransmission::ITM_calculate_attenuation(SGGeod pos, double freq, i
        
        
        double link_budget = tx_pow - _receiver_sensitivity - _rx_line_losses - _tx_line_losses + ant_gain;     
+       double signal_strength = tx_pow - _rx_line_losses - _tx_line_losses + ant_gain; 
 
        FGScenery * scenery = globals->get_scenery();
        
@@ -405,6 +407,10 @@ double FGRadioTransmission::ITM_calculate_attenuation(SGGeod pos, double freq, i
        //if (errnum == 4)      // if parameters are outside sane values for lrprop, the alternative method is used
        //      return -1;
        signal = link_budget - dbloss - clutter_loss + pol_loss;
+       double signal_strength_dbm = signal_strength - dbloss - clutter_loss + pol_loss;
+       double field_strength_uV = dbm_to_microvolt(signal_strength_dbm);
+       _root_node->setDoubleValue("station[0]/signal-dbm", signal_strength_dbm);
+       _root_node->setDoubleValue("station[0]/field-strength-uV", field_strength_uV);
        return signal;
 
 }