mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-30 23:03:05 +00:00 
			
		
		
		
	Setting AGC mode
This commit is contained in:
		| @@ -94,19 +94,20 @@ RtlTcpSignalSource::RtlTcpSignalSource(ConfigurationInterface* configuration, | ||||
|             // 3. set rx frequency | ||||
|             signal_source_->set_frequency(freq_); | ||||
|  | ||||
| 	    // 4. set rx gain | ||||
| 	    // TODO set rx gain | ||||
|             signal_source_->set_agc_mode(true); | ||||
|              | ||||
|             /*if (this->AGC_enabled_ == true) | ||||
| 	    { | ||||
|                     osmosdr_source_->set_gain_mode(true); | ||||
|                     signal_source_->set_agc_mode(true); | ||||
|                     std::cout << "AGC enabled" << std::endl; | ||||
|                     LOG(INFO) << "AGC enabled"; | ||||
| 	    } | ||||
|             else | ||||
| 	    { | ||||
|                     osmosdr_source_->set_gain_mode(false); | ||||
|                     osmosdr_source_->set_gain(gain_, 0); | ||||
|                     osmosdr_source_->set_if_gain(if_gain_, 0); | ||||
|                     osmosdr_source_->set_bb_gain(rf_gain_, 0); | ||||
|                     signal_source_->set_agc_mode(false); | ||||
|                     signal_source_->set_gain(gain_, 0); | ||||
|                     signal_source_->set_if_gain(if_gain_, 0); | ||||
| 	    }*/ | ||||
|         } | ||||
|     else | ||||
|   | ||||
| @@ -46,7 +46,11 @@ enum { | ||||
| // command ids | ||||
| enum { | ||||
|    CMD_ID_SET_FREQUENCY = 1, | ||||
|    CMD_ID_SET_SAMPLE_RATE = 2 | ||||
|    CMD_ID_SET_SAMPLE_RATE = 2, | ||||
|    CMD_ID_SET_GAIN_MODE = 3, | ||||
|    CMD_ID_SET_GAIN = 4, | ||||
|    CMD_ID_SET_IF_GAIN = 6, | ||||
|    CMD_ID_SET_AGC_MODE = 8 | ||||
| }; | ||||
|  | ||||
| // rtl_tcp command | ||||
| @@ -87,6 +91,24 @@ struct set_sample_rate_command : command { | ||||
|    } | ||||
| }; | ||||
|  | ||||
| // set gain mode command | ||||
| struct set_gain_mode_command : command { | ||||
|   set_gain_mode_command (bool manual) | ||||
|     : command (CMD_ID_SET_GAIN_MODE, static_cast<unsigned int>( manual )) | ||||
|   { | ||||
|   } | ||||
| }; | ||||
|  | ||||
|    | ||||
| // set agc mode command | ||||
| struct set_agc_mode_command : command { | ||||
|   set_agc_mode_command (bool manual) | ||||
|     : command (CMD_ID_SET_AGC_MODE, static_cast<unsigned int>( manual )) | ||||
|   { | ||||
|   } | ||||
| }; | ||||
|    | ||||
|    | ||||
| rtl_tcp_signal_source_c_sptr | ||||
| rtl_tcp_make_signal_source_c(const std::string &address, | ||||
| 			      short port) | ||||
| @@ -181,6 +203,22 @@ void rtl_tcp_signal_source_c::set_sample_rate (int sample_rate) { | ||||
|    } | ||||
| } | ||||
|  | ||||
|  | ||||
| void rtl_tcp_signal_source_c::set_agc_mode (bool agc) { | ||||
|   boost::system::error_code ec = | ||||
|     set_gain_mode_command (!agc).send (socket_); | ||||
|   if (ec) { | ||||
|       std::cout << "Failed to set gain mode" << std::endl; | ||||
|       LOG (WARNING) << "Failed to set gain mode"; | ||||
|   } | ||||
|   ec = | ||||
|     set_agc_mode_command (agc).send (socket_); | ||||
|   if (ec) { | ||||
|       std::cout << "Failed to set gain mode" << std::endl; | ||||
|       LOG (WARNING) << "Failed to set gain mode"; | ||||
|   } | ||||
| } | ||||
|  | ||||
| void | ||||
| rtl_tcp_signal_source_c::handle_read (const boost::system::error_code &ec, | ||||
|                                        size_t bytes_transferred) | ||||
|   | ||||
| @@ -70,7 +70,8 @@ public: | ||||
|  | ||||
|     void set_frequency (int frequency); | ||||
|     void set_sample_rate (int sample_rate); | ||||
|  | ||||
|     void set_agc_mode (bool agc); | ||||
|      | ||||
| private: | ||||
|     typedef boost::circular_buffer_space_optimized<float> buffer_type; | ||||
|      | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Anthony Arnold
					Anthony Arnold