<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.8"/> <title>UHD: include/uhd/usrp/multi_usrp.hpp Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">UHD  <span id="projectnumber">003.007.002-0-unknown</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.8 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Macros</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9b536c30bc5a9db2084d75e9c271ba6f.html">uhd</a></li><li class="navelem"><a class="el" href="dir_9d0dbe074bd16ac5601986e81b7402cf.html">usrp</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">multi_usrp.hpp</div> </div> </div><!--header--> <div class="contents"> <a href="multi__usrp_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// Copyright 2010-2012 Ettus Research LLC</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// (at your option) any later version.</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// GNU General Public License for more details.</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">//</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">//</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifndef INCLUDED_UHD_USRP_MULTI_USRP_HPP</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define INCLUDED_UHD_USRP_MULTI_USRP_HPP</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//define API capabilities for compile time detection of new features</span></div> <div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="multi__usrp_8hpp.html#aa774cf37976e5575b1d4e7d2316d28be"> 22</a></span> <span class="preprocessor">#define UHD_USRP_MULTI_USRP_REF_SOURCES_API</span></div> <div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="multi__usrp_8hpp.html#a8968eebf62a087adda496f1d56f1cda6"> 23</a></span> <span class="preprocessor">#define UHD_USRP_MULTI_USRP_GET_RATES_API</span></div> <div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="multi__usrp_8hpp.html#adb4fa94d92b9f24fa473a21b4a7c3771"> 24</a></span> <span class="preprocessor">#define UHD_USRP_MULTI_USRP_FRONTEND_CAL_API</span></div> <div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="multi__usrp_8hpp.html#a73ae0292d4437dc2c8143f950ea5716f"> 25</a></span> <span class="preprocessor">#define UHD_USRP_MULTI_USRP_COMMAND_TIME_API</span></div> <div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="multi__usrp_8hpp.html#aeb2028584c683a07f04fc75237ebd162"> 26</a></span> <span class="preprocessor">#define UHD_USRP_MULTI_USRP_BW_RANGE_API</span></div> <div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="multi__usrp_8hpp.html#a929cd3a4207e9ee6cc9a1a77aebdb21c"> 27</a></span> <span class="preprocessor">#define UHD_USRP_MULTI_USRP_USER_REGS_API</span></div> <div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="multi__usrp_8hpp.html#ae14f42e4db6d05629844264612c59ae8"> 28</a></span> <span class="preprocessor">#define UHD_USRP_MULTI_USRP_GET_USRP_INFO_API</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="config_8hpp.html">uhd/config.hpp</a>></span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="device_8hpp.html">uhd/device.hpp</a>></span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="deprecated_8hpp.html">uhd/deprecated.hpp</a>></span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="ranges_8hpp.html">uhd/types/ranges.hpp</a>></span></div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="stream__cmd_8hpp.html">uhd/types/stream_cmd.hpp</a>></span></div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="tune__request_8hpp.html">uhd/types/tune_request.hpp</a>></span></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="tune__result_8hpp.html">uhd/types/tune_result.hpp</a>></span></div> <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="sensors_8hpp.html">uhd/types/sensors.hpp</a>></span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="subdev__spec_8hpp.html">uhd/usrp/subdev_spec.hpp</a>></span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="dboard__iface_8hpp.html">uhd/usrp/dboard_iface.hpp</a>></span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <boost/shared_ptr.hpp></span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <boost/utility.hpp></span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <complex></span></div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <string></span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <vector></span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="namespaceuhd.html">uhd</a>{ <span class="keyword">namespace </span>usrp{</div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> <div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html"> 94</a></span> <span class="keyword">class </span><a class="code" href="config_8hpp.html#adc68e1c030efb88af856decedf19aedf">UHD_API</a> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html">multi_usrp</a> : boost::noncopyable{</div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a9d9112f5eac0b53a721f2a6c97021fc1"> 96</a></span>  <span class="keyword">typedef</span> boost::shared_ptr<multi_usrp> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a9d9112f5eac0b53a721f2a6c97021fc1">sptr</a>;</div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div> <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a21f2ba01462e1f211a8823fda24a82d5"> 99</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> ALL_MBOARDS = size_t(~0);</div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div> <div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#afeaca319029cb49f7041461345ab641c"> 102</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> ALL_CHANS = size_t(~0);</div> <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div> <div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a524b7e2177492e59382f1124ee32c12b"> 105</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> std::string <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a524b7e2177492e59382f1124ee32c12b">ALL_GAINS</a>;</div> <div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div> <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">static</span> sptr make(<span class="keyword">const</span> <a class="code" href="classuhd_1_1device__addr__t.html">device_addr_t</a> &dev_addr);</div> <div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div> <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1device.html#a439ff67bbcbe999d871a179467355ed0">device::sptr</a> get_device(<span class="keywordtype">void</span>) = 0;</div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div> <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1rx__streamer.html#a7e7fc83d61d3bb68efe296ebc0df9c6d">rx_streamer::sptr</a> get_rx_stream(<span class="keyword">const</span> <a class="code" href="structuhd_1_1stream__args__t.html">stream_args_t</a> &args) = 0;</div> <div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div> <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1tx__streamer.html#a137bfe67e240e3d73ef7708155fb9827">tx_streamer::sptr</a> get_tx_stream(<span class="keyword">const</span> <a class="code" href="structuhd_1_1stream__args__t.html">stream_args_t</a> &args) = 0;</div> <div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div> <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1dict.html">dict<std::string, std::string></a> get_usrp_rx_info(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div> <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1dict.html">dict<std::string, std::string></a> get_usrp_tx_info(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div> <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">/*******************************************************************</span></div> <div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment"> * Mboard methods</span></div> <div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment"> ******************************************************************/</span></div> <div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div> <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_master_clock_rate(<span class="keywordtype">double</span> rate, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div> <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_master_clock_rate(<span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keyword">virtual</span> std::string get_pp_string(<span class="keywordtype">void</span>) = 0;</div> <div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div> <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">virtual</span> std::string get_mboard_name(<span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div> <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1time__spec__t.html">time_spec_t</a> get_time_now(<span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div> <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1time__spec__t.html">time_spec_t</a> get_time_last_pps(<span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div> <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_time_now(<span class="keyword">const</span> <a class="code" href="classuhd_1_1time__spec__t.html">time_spec_t</a> &time_spec, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div> <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_time_next_pps(<span class="keyword">const</span> <a class="code" href="classuhd_1_1time__spec__t.html">time_spec_t</a> &time_spec, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div> <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_time_unknown_pps(<span class="keyword">const</span> <a class="code" href="classuhd_1_1time__spec__t.html">time_spec_t</a> &time_spec) = 0;</div> <div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div> <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> get_time_synchronized(<span class="keywordtype">void</span>) = 0;</div> <div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div> <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_command_time(<span class="keyword">const</span> <a class="code" href="classuhd_1_1time__spec__t.html">uhd::time_spec_t</a> &time_spec, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div> <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clear_command_time(<span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> issue_stream_cmd(<span class="keyword">const</span> <a class="code" href="structuhd_1_1stream__cmd__t.html">stream_cmd_t</a> &stream_cmd, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div> <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_clock_config(<span class="keyword">const</span> <a class="code" href="structuhd_1_1clock__config__t.html">clock_config_t</a> &clock_config, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div> <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_time_source(<span class="keyword">const</span> std::string &source, <span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div> <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keyword">virtual</span> std::string get_time_source(<span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard) = 0;</div> <div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div> <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">virtual</span> std::vector<std::string> get_time_sources(<span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard) = 0;</div> <div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div> <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_clock_source(<span class="keyword">const</span> std::string &source, <span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div> <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">virtual</span> std::string get_clock_source(<span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard) = 0;</div> <div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div> <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">virtual</span> std::vector<std::string> get_clock_sources(<span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard) = 0;</div> <div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div> <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_clock_source_out(<span class="keyword">const</span> <span class="keywordtype">bool</span> enb, <span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div> <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_time_source_out(<span class="keyword">const</span> <span class="keywordtype">bool</span> enb, <span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div> <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> get_num_mboards(<span class="keywordtype">void</span>) = 0;</div> <div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div> <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1sensor__value__t.html">sensor_value_t</a> get_mboard_sensor(<span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div> <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">virtual</span> std::vector<std::string> get_mboard_sensor_names(<span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div> <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_user_register(<span class="keyword">const</span> boost::uint8_t addr, <span class="keyword">const</span> boost::uint32_t data, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div> <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="comment">/*******************************************************************</span></div> <div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="comment"> * RX methods</span></div> <div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="comment"> ******************************************************************/</span></div> <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_subdev_spec(<span class="keyword">const</span> <a class="code" href="classuhd_1_1usrp_1_1subdev__spec__t.html">uhd::usrp::subdev_spec_t</a> &spec, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div> <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1usrp_1_1subdev__spec__t.html">uhd::usrp::subdev_spec_t</a> get_rx_subdev_spec(<span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div> <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> get_rx_num_channels(<span class="keywordtype">void</span>) = 0;</div> <div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div> <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">virtual</span> std::string get_rx_subdev_name(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div> <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_rate(<span class="keywordtype">double</span> rate, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div> <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_rx_rate(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div> <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">meta_range_t</a> get_rx_rates(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div> <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1tune__result__t.html">tune_result_t</a> set_rx_freq(</div> <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">const</span> <a class="code" href="structuhd_1_1tune__request__t.html">tune_request_t</a> &tune_request, <span class="keywordtype">size_t</span> chan = 0</div> <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  ) = 0;</div> <div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div> <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_rx_freq(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div> <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">freq_range_t</a> get_rx_freq_range(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">freq_range_t</a> get_fe_rx_freq_range(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div> <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_gain(<span class="keywordtype">double</span> gain, <span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div> <div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a8234968ad1fefef299ef9541cc193915"> 486</a></span>  <span class="keywordtype">void</span> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a8234968ad1fefef299ef9541cc193915">set_rx_gain</a>(<span class="keywordtype">double</span> gain, <span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">return</span> this->set_rx_gain(gain, ALL_GAINS, chan);</div> <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div> <div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div> <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_rx_gain(<span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div> <div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a6483b85f90a3f46d8181a9b57be1db46"> 500</a></span>  <span class="keywordtype">double</span> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a6483b85f90a3f46d8181a9b57be1db46">get_rx_gain</a>(<span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">return</span> this->get_rx_gain(ALL_GAINS, chan);</div> <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  }</div> <div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div> <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">gain_range_t</a> get_rx_gain_range(<span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div> <div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a7eb3245ee320e9889a477ba753fd8b8c"> 514</a></span>  <a class="code" href="structuhd_1_1meta__range__t.html">gain_range_t</a> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a7eb3245ee320e9889a477ba753fd8b8c">get_rx_gain_range</a>(<span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> this->get_rx_gain_range(ALL_GAINS, chan);</div> <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div> <div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div> <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keyword">virtual</span> std::vector<std::string> get_rx_gain_names(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div> <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_antenna(<span class="keyword">const</span> std::string &ant, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div> <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keyword">virtual</span> std::string get_rx_antenna(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00539"></a><span class="lineno"> 539</span> </div> <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keyword">virtual</span> std::vector<std::string> get_rx_antennas(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00546"></a><span class="lineno"> 546</span> </div> <div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a54dc279c0f3a034ea1a5d80ebd8c4b35"> 552</a></span>  <a class="code" href="config_8hpp.html#a009518b78c453470e2856bebf2746f37">UHD_DEPRECATED</a> <span class="keywordtype">bool</span> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a54dc279c0f3a034ea1a5d80ebd8c4b35">get_rx_lo_locked</a>(<span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> this->get_rx_sensor(<span class="stringliteral">"lo_locked"</span>, chan).to_bool();</div> <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div> <div class="line"><a name="l00555"></a><span class="lineno"> 555</span> </div> <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_bandwidth(<span class="keywordtype">double</span> bandwidth, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div> <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_rx_bandwidth(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div> <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">meta_range_t</a> get_rx_bandwidth_range(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div> <div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a1337a38862d6eb27db0aabe30977d8d1"> 583</a></span>  <a class="code" href="config_8hpp.html#a009518b78c453470e2856bebf2746f37">UHD_DEPRECATED</a> <span class="keywordtype">double</span> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a1337a38862d6eb27db0aabe30977d8d1">read_rssi</a>(<span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">return</span> this->get_rx_sensor(<span class="stringliteral">"rssi"</span>, chan).to_real();</div> <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div> <div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div> <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1usrp_1_1dboard__iface.html#a59c880b1ce74b17f9aec67426d37a4c8">dboard_iface::sptr</a> get_rx_dboard_iface(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00595"></a><span class="lineno"> 595</span> </div> <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1sensor__value__t.html">sensor_value_t</a> get_rx_sensor(<span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div> <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keyword">virtual</span> std::vector<std::string> get_rx_sensor_names(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div> <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_dc_offset(<span class="keyword">const</span> <span class="keywordtype">bool</span> enb, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div> <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_dc_offset(<span class="keyword">const</span> std::complex<double> &offset, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div> <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_rx_iq_balance(<span class="keyword">const</span> std::complex<double> &correction, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div> <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="comment">/*******************************************************************</span></div> <div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="comment"> * TX methods</span></div> <div class="line"><a name="l00645"></a><span class="lineno"> 645</span> <span class="comment"> ******************************************************************/</span></div> <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_tx_subdev_spec(<span class="keyword">const</span> <a class="code" href="classuhd_1_1usrp_1_1subdev__spec__t.html">uhd::usrp::subdev_spec_t</a> &spec, <span class="keywordtype">size_t</span> mboard = ALL_MBOARDS) = 0;</div> <div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div> <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1usrp_1_1subdev__spec__t.html">uhd::usrp::subdev_spec_t</a> get_tx_subdev_spec(<span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div> <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> get_tx_num_channels(<span class="keywordtype">void</span>) = 0;</div> <div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div> <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keyword">virtual</span> std::string get_tx_subdev_name(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div> <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_tx_rate(<span class="keywordtype">double</span> rate, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div> <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_tx_rate(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00690"></a><span class="lineno"> 690</span> </div> <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">meta_range_t</a> get_tx_rates(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00697"></a><span class="lineno"> 697</span> </div> <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1tune__result__t.html">tune_result_t</a> set_tx_freq(</div> <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keyword">const</span> <a class="code" href="structuhd_1_1tune__request__t.html">tune_request_t</a> &tune_request, <span class="keywordtype">size_t</span> chan = 0</div> <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  ) = 0;</div> <div class="line"><a name="l00707"></a><span class="lineno"> 707</span> </div> <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_tx_freq(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div> <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">freq_range_t</a> get_tx_freq_range(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div> <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">freq_range_t</a> get_fe_tx_freq_range(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00732"></a><span class="lineno"> 732</span> </div> <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_tx_gain(<span class="keywordtype">double</span> gain, <span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div> <div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a1101dc00b016fe91a299cbcae8b12053"> 743</a></span>  <span class="keywordtype">void</span> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a1101dc00b016fe91a299cbcae8b12053">set_tx_gain</a>(<span class="keywordtype">double</span> gain, <span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">return</span> this->set_tx_gain(gain, ALL_GAINS, chan);</div> <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  }</div> <div class="line"><a name="l00746"></a><span class="lineno"> 746</span> </div> <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_tx_gain(<span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00755"></a><span class="lineno"> 755</span> </div> <div class="line"><a name="l00757"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a612c00086f9968380bcf51f877b544b7"> 757</a></span>  <span class="keywordtype">double</span> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a612c00086f9968380bcf51f877b544b7">get_tx_gain</a>(<span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <span class="keywordflow">return</span> this->get_tx_gain(ALL_GAINS, chan);</div> <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div> <div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div> <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">gain_range_t</a> get_tx_gain_range(<span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00769"></a><span class="lineno"> 769</span> </div> <div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#a6ec9889b9b64d1d8e2a308c0b0c328ec"> 771</a></span>  <a class="code" href="structuhd_1_1meta__range__t.html">gain_range_t</a> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#a6ec9889b9b64d1d8e2a308c0b0c328ec">get_tx_gain_range</a>(<span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">return</span> this->get_tx_gain_range(ALL_GAINS, chan);</div> <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  }</div> <div class="line"><a name="l00774"></a><span class="lineno"> 774</span> </div> <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keyword">virtual</span> std::vector<std::string> get_tx_gain_names(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00782"></a><span class="lineno"> 782</span> </div> <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_tx_antenna(<span class="keyword">const</span> std::string &ant, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00789"></a><span class="lineno"> 789</span> </div> <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keyword">virtual</span> std::string get_tx_antenna(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div> <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keyword">virtual</span> std::vector<std::string> get_tx_antennas(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00803"></a><span class="lineno"> 803</span> </div> <div class="line"><a name="l00809"></a><span class="lineno"><a class="line" href="classuhd_1_1usrp_1_1multi__usrp.html#af8a7f16e35466a50e7a8a4e71b3598fb"> 809</a></span>  <a class="code" href="config_8hpp.html#a009518b78c453470e2856bebf2746f37">UHD_DEPRECATED</a> <span class="keywordtype">bool</span> <a class="code" href="classuhd_1_1usrp_1_1multi__usrp.html#af8a7f16e35466a50e7a8a4e71b3598fb">get_tx_lo_locked</a>(<span class="keywordtype">size_t</span> chan = 0){</div> <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">return</span> this->get_tx_sensor(<span class="stringliteral">"lo_locked"</span>, chan).to_bool();</div> <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  }</div> <div class="line"><a name="l00812"></a><span class="lineno"> 812</span> </div> <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_tx_bandwidth(<span class="keywordtype">double</span> bandwidth, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div> <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keyword">virtual</span> <span class="keywordtype">double</span> get_tx_bandwidth(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div> <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1meta__range__t.html">meta_range_t</a> get_tx_bandwidth_range(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00833"></a><span class="lineno"> 833</span> </div> <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keyword">virtual</span> <a class="code" href="classuhd_1_1usrp_1_1dboard__iface.html#a59c880b1ce74b17f9aec67426d37a4c8">dboard_iface::sptr</a> get_tx_dboard_iface(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00842"></a><span class="lineno"> 842</span> </div> <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keyword">virtual</span> <a class="code" href="structuhd_1_1sensor__value__t.html">sensor_value_t</a> get_tx_sensor(<span class="keyword">const</span> std::string &name, <span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00850"></a><span class="lineno"> 850</span> </div> <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keyword">virtual</span> std::vector<std::string> get_tx_sensor_names(<span class="keywordtype">size_t</span> chan = 0) = 0;</div> <div class="line"><a name="l00857"></a><span class="lineno"> 857</span> </div> <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_tx_dc_offset(<span class="keyword">const</span> std::complex<double> &offset, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00865"></a><span class="lineno"> 865</span> </div> <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_tx_iq_balance(<span class="keyword">const</span> std::complex<double> &correction, <span class="keywordtype">size_t</span> chan = ALL_CHANS) = 0;</div> <div class="line"><a name="l00874"></a><span class="lineno"> 874</span> </div> <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="comment">/*******************************************************************</span></div> <div class="line"><a name="l00876"></a><span class="lineno"> 876</span> <span class="comment"> * GPIO methods</span></div> <div class="line"><a name="l00877"></a><span class="lineno"> 877</span> <span class="comment"> ******************************************************************/</span></div> <div class="line"><a name="l00878"></a><span class="lineno"> 878</span> </div> <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keyword">virtual</span> std::vector<std::string> get_gpio_banks(<span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard) = 0;</div> <div class="line"><a name="l00885"></a><span class="lineno"> 885</span> </div> <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> set_gpio_attr(<span class="keyword">const</span> std::string &bank, <span class="keyword">const</span> std::string &attr, <span class="keyword">const</span> boost::uint32_t value, <span class="keyword">const</span> boost::uint32_t mask = 0xffffffff, <span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00903"></a><span class="lineno"> 903</span> </div> <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keyword">virtual</span> boost::uint32_t get_gpio_attr(<span class="keyword">const</span> std::string &bank, <span class="keyword">const</span> std::string &attr, <span class="keyword">const</span> <span class="keywordtype">size_t</span> mboard = 0) = 0;</div> <div class="line"><a name="l00921"></a><span class="lineno"> 921</span> </div> <div class="line"><a name="l00922"></a><span class="lineno"> 922</span> };</div> <div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div> <div class="line"><a name="l00924"></a><span class="lineno"> 924</span> }}</div> <div class="line"><a name="l00925"></a><span class="lineno"> 925</span> </div> <div class="line"><a name="l00926"></a><span class="lineno"> 926</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDED_UHD_USRP_MULTI_USRP_HPP */</span><span class="preprocessor"></span></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a7eb3245ee320e9889a477ba753fd8b8c"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a7eb3245ee320e9889a477ba753fd8b8c">uhd::usrp::multi_usrp::get_rx_gain_range</a></div><div class="ttdeci">gain_range_t get_rx_gain_range(size_t chan=0)</div><div class="ttdoc">A convenience wrapper for getting overall RX gain range. </div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:514</div></div> <div class="ttc" id="deprecated_8hpp_html"><div class="ttname"><a href="deprecated_8hpp.html">deprecated.hpp</a></div></div> <div class="ttc" id="structuhd_1_1stream__cmd__t_html"><div class="ttname"><a href="structuhd_1_1stream__cmd__t.html">uhd::stream_cmd_t</a></div><div class="ttdef"><b>Definition:</b> stream_cmd.hpp:46</div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_af8a7f16e35466a50e7a8a4e71b3598fb"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#af8a7f16e35466a50e7a8a4e71b3598fb">uhd::usrp::multi_usrp::get_tx_lo_locked</a></div><div class="ttdeci">UHD_DEPRECATED bool get_tx_lo_locked(size_t chan=0)</div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:809</div></div> <div class="ttc" id="device_8hpp_html"><div class="ttname"><a href="device_8hpp.html">device.hpp</a></div></div> <div class="ttc" id="structuhd_1_1tune__result__t_html"><div class="ttname"><a href="structuhd_1_1tune__result__t.html">uhd::tune_result_t</a></div><div class="ttdef"><b>Definition:</b> tune_result.hpp:29</div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a612c00086f9968380bcf51f877b544b7"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a612c00086f9968380bcf51f877b544b7">uhd::usrp::multi_usrp::get_tx_gain</a></div><div class="ttdeci">double get_tx_gain(size_t chan=0)</div><div class="ttdoc">A convenience wrapper for getting overall TX gain. </div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:757</div></div> <div class="ttc" id="config_8hpp_html_a009518b78c453470e2856bebf2746f37"><div class="ttname"><a href="config_8hpp.html#a009518b78c453470e2856bebf2746f37">UHD_DEPRECATED</a></div><div class="ttdeci">#define UHD_DEPRECATED</div><div class="ttdef"><b>Definition:</b> config.hpp:70</div></div> <div class="ttc" id="subdev__spec_8hpp_html"><div class="ttname"><a href="subdev__spec_8hpp.html">subdev_spec.hpp</a></div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a1101dc00b016fe91a299cbcae8b12053"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a1101dc00b016fe91a299cbcae8b12053">uhd::usrp::multi_usrp::set_tx_gain</a></div><div class="ttdeci">void set_tx_gain(double gain, size_t chan=0)</div><div class="ttdoc">A convenience wrapper for setting overall TX gain. </div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:743</div></div> <div class="ttc" id="classuhd_1_1time__spec__t_html"><div class="ttname"><a href="classuhd_1_1time__spec__t.html">uhd::time_spec_t</a></div><div class="ttdef"><b>Definition:</b> time_spec.hpp:39</div></div> <div class="ttc" id="classuhd_1_1dict_html"><div class="ttname"><a href="classuhd_1_1dict.html">uhd::dict< std::string, std::string ></a></div></div> <div class="ttc" id="classuhd_1_1device_html_a439ff67bbcbe999d871a179467355ed0"><div class="ttname"><a href="classuhd_1_1device.html#a439ff67bbcbe999d871a179467355ed0">uhd::device::sptr</a></div><div class="ttdeci">boost::shared_ptr< device > sptr</div><div class="ttdef"><b>Definition:</b> device.hpp:41</div></div> <div class="ttc" id="sensors_8hpp_html"><div class="ttname"><a href="sensors_8hpp.html">sensors.hpp</a></div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a9d9112f5eac0b53a721f2a6c97021fc1"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a9d9112f5eac0b53a721f2a6c97021fc1">uhd::usrp::multi_usrp::sptr</a></div><div class="ttdeci">boost::shared_ptr< multi_usrp > sptr</div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:96</div></div> <div class="ttc" id="config_8hpp_html"><div class="ttname"><a href="config_8hpp.html">config.hpp</a></div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a6483b85f90a3f46d8181a9b57be1db46"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a6483b85f90a3f46d8181a9b57be1db46">uhd::usrp::multi_usrp::get_rx_gain</a></div><div class="ttdeci">double get_rx_gain(size_t chan=0)</div><div class="ttdoc">A convenience wrapper for getting overall RX gain. </div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:500</div></div> <div class="ttc" id="structuhd_1_1tune__request__t_html"><div class="ttname"><a href="structuhd_1_1tune__request__t.html">uhd::tune_request_t</a></div><div class="ttdef"><b>Definition:</b> tune_request.hpp:33</div></div> <div class="ttc" id="classuhd_1_1rx__streamer_html_a7e7fc83d61d3bb68efe296ebc0df9c6d"><div class="ttname"><a href="classuhd_1_1rx__streamer.html#a7e7fc83d61d3bb68efe296ebc0df9c6d">uhd::rx_streamer::sptr</a></div><div class="ttdeci">boost::shared_ptr< rx_streamer > sptr</div><div class="ttdef"><b>Definition:</b> stream.hpp:126</div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a524b7e2177492e59382f1124ee32c12b"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a524b7e2177492e59382f1124ee32c12b">uhd::usrp::multi_usrp::ALL_GAINS</a></div><div class="ttdeci">static const std::string ALL_GAINS</div><div class="ttdoc">A wildcard gain element name. </div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:105</div></div> <div class="ttc" id="stream__cmd_8hpp_html"><div class="ttname"><a href="stream__cmd_8hpp.html">stream_cmd.hpp</a></div></div> <div class="ttc" id="config_8hpp_html_adc68e1c030efb88af856decedf19aedf"><div class="ttname"><a href="config_8hpp.html#adc68e1c030efb88af856decedf19aedf">UHD_API</a></div><div class="ttdeci">#define UHD_API</div><div class="ttdef"><b>Definition:</b> config.hpp:79</div></div> <div class="ttc" id="namespaceuhd_html"><div class="ttname"><a href="namespaceuhd.html">uhd</a></div><div class="ttdef"><b>Definition:</b> convert.hpp:28</div></div> <div class="ttc" id="structuhd_1_1sensor__value__t_html"><div class="ttname"><a href="structuhd_1_1sensor__value__t.html">uhd::sensor_value_t</a></div><div class="ttdef"><b>Definition:</b> sensors.hpp:38</div></div> <div class="ttc" id="structuhd_1_1clock__config__t_html"><div class="ttname"><a href="structuhd_1_1clock__config__t.html">uhd::clock_config_t</a></div><div class="ttdef"><b>Definition:</b> clock_config.hpp:36</div></div> <div class="ttc" id="dboard__iface_8hpp_html"><div class="ttname"><a href="dboard__iface_8hpp.html">dboard_iface.hpp</a></div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html">uhd::usrp::multi_usrp</a></div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:94</div></div> <div class="ttc" id="ranges_8hpp_html"><div class="ttname"><a href="ranges_8hpp.html">ranges.hpp</a></div></div> <div class="ttc" id="structuhd_1_1stream__args__t_html"><div class="ttname"><a href="structuhd_1_1stream__args__t.html">uhd::stream_args_t</a></div><div class="ttdef"><b>Definition:</b> stream.hpp:40</div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a54dc279c0f3a034ea1a5d80ebd8c4b35"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a54dc279c0f3a034ea1a5d80ebd8c4b35">uhd::usrp::multi_usrp::get_rx_lo_locked</a></div><div class="ttdeci">UHD_DEPRECATED bool get_rx_lo_locked(size_t chan=0)</div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:552</div></div> <div class="ttc" id="tune__request_8hpp_html"><div class="ttname"><a href="tune__request_8hpp.html">tune_request.hpp</a></div></div> <div class="ttc" id="classuhd_1_1usrp_1_1dboard__iface_html_a59c880b1ce74b17f9aec67426d37a4c8"><div class="ttname"><a href="classuhd_1_1usrp_1_1dboard__iface.html#a59c880b1ce74b17f9aec67426d37a4c8">uhd::usrp::dboard_iface::sptr</a></div><div class="ttdeci">boost::shared_ptr< dboard_iface > sptr</div><div class="ttdef"><b>Definition:</b> dboard_iface.hpp:60</div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a8234968ad1fefef299ef9541cc193915"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a8234968ad1fefef299ef9541cc193915">uhd::usrp::multi_usrp::set_rx_gain</a></div><div class="ttdeci">void set_rx_gain(double gain, size_t chan=0)</div><div class="ttdoc">A convenience wrapper for setting overall RX gain. </div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:486</div></div> <div class="ttc" id="classuhd_1_1usrp_1_1subdev__spec__t_html"><div class="ttname"><a href="classuhd_1_1usrp_1_1subdev__spec__t.html">uhd::usrp::subdev_spec_t</a></div><div class="ttdef"><b>Definition:</b> subdev_spec.hpp:66</div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a1337a38862d6eb27db0aabe30977d8d1"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a1337a38862d6eb27db0aabe30977d8d1">uhd::usrp::multi_usrp::read_rssi</a></div><div class="ttdeci">UHD_DEPRECATED double read_rssi(size_t chan=0)</div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:583</div></div> <div class="ttc" id="structuhd_1_1meta__range__t_html"><div class="ttname"><a href="structuhd_1_1meta__range__t.html">uhd::meta_range_t</a></div><div class="ttdef"><b>Definition:</b> ranges.hpp:68</div></div> <div class="ttc" id="classuhd_1_1tx__streamer_html_a137bfe67e240e3d73ef7708155fb9827"><div class="ttname"><a href="classuhd_1_1tx__streamer.html#a137bfe67e240e3d73ef7708155fb9827">uhd::tx_streamer::sptr</a></div><div class="ttdeci">boost::shared_ptr< tx_streamer > sptr</div><div class="ttdef"><b>Definition:</b> stream.hpp:198</div></div> <div class="ttc" id="tune__result_8hpp_html"><div class="ttname"><a href="tune__result_8hpp.html">tune_result.hpp</a></div></div> <div class="ttc" id="classuhd_1_1usrp_1_1multi__usrp_html_a6ec9889b9b64d1d8e2a308c0b0c328ec"><div class="ttname"><a href="classuhd_1_1usrp_1_1multi__usrp.html#a6ec9889b9b64d1d8e2a308c0b0c328ec">uhd::usrp::multi_usrp::get_tx_gain_range</a></div><div class="ttdeci">gain_range_t get_tx_gain_range(size_t chan=0)</div><div class="ttdoc">A convenience wrapper for getting overall TX gain range. </div><div class="ttdef"><b>Definition:</b> multi_usrp.hpp:771</div></div> <div class="ttc" id="classuhd_1_1device__addr__t_html"><div class="ttname"><a href="classuhd_1_1device__addr__t.html">uhd::device_addr_t</a></div><div class="ttdef"><b>Definition:</b> device_addr.hpp:47</div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Wed Oct 15 2014 11:47:53 for UHD by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.8 </small></address> </body> </html>