本文整理汇总了C++中uhd::usrp::multi_usrp::sptr::get_tx_gain_range方法的典型用法代码示例。如果您正苦于以下问题:C++ sptr::get_tx_gain_range方法的具体用法?C++ sptr::get_tx_gain_range怎么用?C++ sptr::get_tx_gain_range使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类uhd::usrp::multi_usrp::sptr
的用法示例。
在下文中一共展示了sptr::get_tx_gain_range方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tx_thread
/***********************************************************************
* Transmit thread
**********************************************************************/
static void tx_thread(uhd::usrp::multi_usrp::sptr usrp, const double tx_wave_freq, const double tx_wave_ampl)
{
uhd::set_thread_priority_safe();
// set max TX gain
usrp->set_tx_gain(usrp->get_tx_gain_range().stop());
//create a transmit streamer
uhd::stream_args_t stream_args("fc32"); //complex floats
uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args);
//setup variables and allocate buffer
uhd::tx_metadata_t md;
md.has_time_spec = false;
std::vector<samp_type> buff(tx_stream->get_max_num_samps()*10);
//values for the wave table lookup
size_t index = 0;
const double tx_rate = usrp->get_tx_rate();
const size_t step = boost::math::iround(wave_table_len * tx_wave_freq / tx_rate);
wave_table table(tx_wave_ampl);
//fill buff and send until interrupted
while (not boost::this_thread::interruption_requested())
{
for (size_t i = 0; i < buff.size(); i++)
buff[i] = table(index += step);
tx_stream->send(&buff.front(), buff.size(), md);
}
//send a mini EOB packet
md.end_of_burst = true;
tx_stream->send("", 0, md);
}
示例2: init_gains
void uhd_device::init_gains()
{
uhd::gain_range_t range;
range = usrp_dev->get_tx_gain_range();
tx_gain_min = range.start();
tx_gain_max = range.stop();
range = usrp_dev->get_rx_gain_range();
rx_gain_min = range.start();
rx_gain_max = range.stop();
usrp_dev->set_tx_gain((tx_gain_min + tx_gain_max) / 2);
usrp_dev->set_rx_gain((rx_gain_min + rx_gain_max) / 2);
tx_gain = usrp_dev->get_tx_gain();
rx_gain = usrp_dev->get_rx_gain();
return;
}
示例3: get_tx_parameters
//.........这里部分代码省略.........
os << std::endl << "-----> Get TX gain names" << std::endl;
std::vector<std::string> tx_gain_names = usrp->get_tx_gain_names(nchan);
os << "Tx Gain Names: " << std::endl;
for (int index =0; index < tx_gain_names.size(); index++)
{
// Name
os << "\t" << tx_gain_names[index] << endl;
}
for (int index =0; index < tx_gain_names.size(); index++)
{
// Name
os << "\t" << "Name: " << tx_gain_names[index] << " Value: ";
// Value
try
{
double element_gain = usrp->get_tx_gain(tx_gain_names[index], nchan);
os << element_gain << endl;
}
catch(uhd::runtime_error &e)
{
os << "Exception code while getting value: " << e.code() << endl;
}
}
// Gain ranges for each of the gain elements
os << std::endl << "-----> Get TX element gain ranges" << std::endl;
for (int index =0; index < tx_gain_names.size(); index++)
{
// Name
os << "\t" << "Name: " << tx_gain_names[index] << " Value: ";
// Value
try
{
uhd::gain_range_t element_gain_range = usrp->get_tx_gain_range(tx_gain_names[index], nchan);
os << "Start: " << element_gain_range.start() << " End: " << element_gain_range.stop() << " Step: " << element_gain_range.step() << endl;
}
catch(uhd::runtime_error &e)
{
os << "Exception code while getting value: " << e.code() << endl;
}
}
// Total Gain range
try
{
os << endl << "-----> Get TX Total Gain Range" << endl;
uhd::gain_range_t tx_total_gain_range = usrp->get_tx_gain_range(nchan);
os << "TX Total Gain Range: " ;
os << "Start: " << tx_total_gain_range.start() << " End: " << tx_total_gain_range.stop() << " Step: " << tx_total_gain_range.step() << endl;
}
catch(uhd::runtime_error &e)
{
os << "Exception code: " << e.code() <<endl;
}
// ANTENNA FUNCTIONS
os << std::endl << "********** TX ANTENNA ***********" << std::endl;
// Current Tx Antenna
os << std::endl << "-----> Get TX Antenna" << std::endl;
try
{
os << "TX Antenna: " ;
string tx_antenna = usrp->get_tx_antenna(nchan);
os << tx_antenna << endl;
}