<!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"/> <title>GNU Radio 3.3.0 C++ API: usrp_standard_tx Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <div class="contents"> <h1>usrp_standard_tx Class Reference<br/> <small> [<a class="el" href="group__usrp.html">USRP</a>]</small> </h1><!-- doxytag: class="usrp_standard_tx" --><!-- doxytag: inherits="usrp_basic_tx,usrp_standard_common" --> <p>The C++ interface the transmit side of the USRPThis is the recommended interface to USRP transmit functionality for applications that use the USRP but not GNU Radio. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="usrp__standard_8h_source.html">usrp_standard.h</a>></code></p> <div class="dynheader"> Inheritance diagram for usrp_standard_tx:</div> <div class="dynsection"> <div class="center"><img src="classusrp__standard__tx__inherit__graph.png" border="0" usemap="#usrp__standard__tx_inherit__map" alt="Inheritance graph"/></div> <map name="usrp__standard__tx_inherit__map" id="usrp__standard__tx_inherit__map"> <area shape="rect" id="node2" href="classusrp__basic__tx.html" title="class for accessing the transmit side of the USRP" alt="" coords="5,83,107,112"/><area shape="rect" id="node4" href="classusrp__basic.html" title="abstract base class for usrp operations" alt="" coords="13,5,99,35"/><area shape="rect" id="node6" href="classusrp__standard__common.html" title="usrp_standard_common" alt="" coords="131,83,291,112"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classusrp__standard__tx-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">coarse_mod_t</a> { <br/> <a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191a55fe460189a049f7aea3f9bc149adf91">CM_NEG_FDAC_OVER_4</a>, <a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191a98ba952bdb469cbbb02a163216162e7c">CM_NEG_FDAC_OVER_8</a>, <a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191afd3ae5e29447d64701502467ce0886c7">CM_OFF</a>, <a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191ad3e2a1cb01acbb2e491780a2ad334e14">CM_POS_FDAC_OVER_8</a>, <br/> <a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191aad92fc027ad13bcbf3cc8839918822bc">CM_POS_FDAC_OVER_4</a> <br/> }</td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a440777cafe861f07ddeafa4d30327a1d">~usrp_standard_tx</a> ()</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#ab13a3b05a3035689af85090ded7389aa">set_interp_rate</a> (unsigned int rate)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set interpolator rate. <code>rate</code> must be in [4, 512] and a multiple of 4. <a href="#ab13a3b05a3035689af85090ded7389aa"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a5e9167c1f811c6446467ba2935cde618">set_nchannels</a> (int nchannels)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set number of active channels. <code>nchannels</code> must be 1 or 2. <a href="#a5e9167c1f811c6446467ba2935cde618"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a2e432c316c8a91613b9603ebe664bfd1">set_mux</a> (int mux)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set output mux configuration. <a href="#a2e432c316c8a91613b9603ebe664bfd1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a386da4e76f7b2393563e48555c613a96">determine_tx_mux_value</a> (const <a class="el" href="structusrp__subdev__spec.html">usrp_subdev_spec</a> &ss)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a24a7b471679b8e2485bfff5cce7adb96">determine_tx_mux_value</a> (const <a class="el" href="structusrp__subdev__spec.html">usrp_subdev_spec</a> &ss_a, const <a class="el" href="structusrp__subdev__spec.html">usrp_subdev_spec</a> &ss_b)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#ab28d467abaa2584967efc69aa674a1d1">set_tx_freq</a> (int channel, double freq)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">set the frequency of the digital up converter. <a href="#ab28d467abaa2584967efc69aa674a1d1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a2268e9e90e037cce86f9f83cce2a006d">interp_rate</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#aa527ce0117c6f6fb6e89f09efb4e381f">tx_freq</a> (int channel) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#afc401f90409da171a5de0f91cf5749ef">nchannels</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a18b5e48aee2ab110932d382b94e71268">mux</a> () const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a5c992590408fe90d4711e355ee12852f">tune</a> (int chan, <a class="el" href="classboost_1_1shared__ptr.html">db_base_sptr</a> db, double target_freq, <a class="el" href="classusrp__tune__result.html">usrp_tune_result</a> *result)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">High-level "tune" method. Works for the single channel case. <a href="#a5c992590408fe90d4711e355ee12852f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#ae6f8039f30bf641b937877001127176f">start</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Start data transfers. Called in base class to derived class order. <a href="#ae6f8039f30bf641b937877001127176f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a5173292e6162fce54a875683f02cdd5c">stop</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stop data transfers. Called in base class to derived class order. <a href="#a5173292e6162fce54a875683f02cdd5c"></a><br/></td></tr> <tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classboost_1_1shared__ptr.html">usrp_standard_tx_sptr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#ad44e49c04d276efa53338e2105c933e5">make</a> (int which_board, unsigned int interp_rate, int nchan=1, int mux=-1, int fusb_block_size=0, int fusb_nblocks=0, const std::string fpga_filename="", const std::string firmware_filename="")</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">invokes constructor, returns shared_ptr or shared_ptr equivalent of 0 if trouble <a href="#ad44e49c04d276efa53338e2105c933e5"></a><br/></td></tr> <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a4a5daeae21c7783ac20ffbbcd6495058">set_coarse_modulator</a> (int channel, <a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">coarse_mod_t</a> cm)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">usrp_standard_tx::coarse_mod_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a878b5d0c2c3878a27c54eb95122467f9">coarse_modulator</a> (int channel) const </td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#ab3ebe65a0203867b6c71edcf2d4ffb88">usrp_standard_tx</a> (int which_board, unsigned int interp_rate, int nchan=1, int mux=-1, int fusb_block_size=0, int fusb_nblocks=0, const std::string fpga_filename="", const std::string firmware_filename="")</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#abd05aee7bbd18ef62bcc8dc18a11a960">write_hw_mux_reg</a> ()</td></tr> <tr><td colspan="2"><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#ac1c7c7ce9479045ad9dca8f409f5ef87">d_interp_rate</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a536872bd7b7f90d94bf58f5b45df0f3d">d_nchan</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#adc70d6cc3f72451cd83b7276d35b2615">d_sw_mux</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a4b22d4e7f26f031d01fe99b4c8394447">d_hw_mux</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a28918715849de2505bd480cccb5d6b4c">d_tx_freq</a> [<a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">MAX_CHAN</a>]</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">coarse_mod_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a5c439350ad4d861c49c21d203110eedb">d_coarse_mod</a> [<a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">MAX_CHAN</a>]</td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a1b713d251419953e67467df19295c385">d_tx_modulator_shadow</a> [<a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">MAX_CHAN</a>]</td></tr> <tr><td colspan="2"><h2>Static Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">static const int </td><td class="memItemRight" valign="bottom"><a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">MAX_CHAN</a> = 2</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>The C++ interface the transmit side of the USRP</p> <p>This is the recommended interface to USRP transmit functionality for applications that use the USRP but not GNU Radio. </p> <p>Uses digital upconverter (coarse & fine modulators) in AD9862... </p> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a4c70322824b7b9d040aa265d0587c191"></a><!-- doxytag: member="usrp_standard_tx::coarse_mod_t" ref="a4c70322824b7b9d040aa265d0587c191" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">usrp_standard_tx::coarse_mod_t</a></td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a4c70322824b7b9d040aa265d0587c191a55fe460189a049f7aea3f9bc149adf91"></a><!-- doxytag: member="CM_NEG_FDAC_OVER_4" ref="a4c70322824b7b9d040aa265d0587c191a55fe460189a049f7aea3f9bc149adf91" args="" -->CM_NEG_FDAC_OVER_4</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4c70322824b7b9d040aa265d0587c191a98ba952bdb469cbbb02a163216162e7c"></a><!-- doxytag: member="CM_NEG_FDAC_OVER_8" ref="a4c70322824b7b9d040aa265d0587c191a98ba952bdb469cbbb02a163216162e7c" args="" -->CM_NEG_FDAC_OVER_8</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4c70322824b7b9d040aa265d0587c191afd3ae5e29447d64701502467ce0886c7"></a><!-- doxytag: member="CM_OFF" ref="a4c70322824b7b9d040aa265d0587c191afd3ae5e29447d64701502467ce0886c7" args="" -->CM_OFF</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4c70322824b7b9d040aa265d0587c191ad3e2a1cb01acbb2e491780a2ad334e14"></a><!-- doxytag: member="CM_POS_FDAC_OVER_8" ref="a4c70322824b7b9d040aa265d0587c191ad3e2a1cb01acbb2e491780a2ad334e14" args="" -->CM_POS_FDAC_OVER_8</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a4c70322824b7b9d040aa265d0587c191aad92fc027ad13bcbf3cc8839918822bc"></a><!-- doxytag: member="CM_POS_FDAC_OVER_4" ref="a4c70322824b7b9d040aa265d0587c191aad92fc027ad13bcbf3cc8839918822bc" args="" -->CM_POS_FDAC_OVER_4</em> </td><td> </td></tr> </table> </dd> </dl> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="ab3ebe65a0203867b6c71edcf2d4ffb88"></a><!-- doxytag: member="usrp_standard_tx::usrp_standard_tx" ref="ab3ebe65a0203867b6c71edcf2d4ffb88" args="(int which_board, unsigned int interp_rate, int nchan=1, int mux=-1, int fusb_block_size=0, int fusb_nblocks=0, const std::string fpga_filename="", const std::string firmware_filename="")" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">usrp_standard_tx::usrp_standard_tx </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>which_board</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>interp_rate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nchan</em> = <code>1</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>mux</em> = <code>-1</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>fusb_block_size</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>fusb_nblocks</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string </td> <td class="paramname"> <em>fpga_filename</em> = <code>""</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string </td> <td class="paramname"> <em>firmware_filename</em> = <code>""</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a440777cafe861f07ddeafa4d30327a1d"></a><!-- doxytag: member="usrp_standard_tx::~usrp_standard_tx" ref="a440777cafe861f07ddeafa4d30327a1d" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">usrp_standard_tx::~usrp_standard_tx </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a878b5d0c2c3878a27c54eb95122467f9"></a><!-- doxytag: member="usrp_standard_tx::coarse_modulator" ref="a878b5d0c2c3878a27c54eb95122467f9" args="(int channel) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">usrp_standard_tx::coarse_mod_t</a> usrp_standard_tx::coarse_modulator </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>channel</em></td> <td> ) </td> <td> const<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a24a7b471679b8e2485bfff5cce7adb96"></a><!-- doxytag: member="usrp_standard_tx::determine_tx_mux_value" ref="a24a7b471679b8e2485bfff5cce7adb96" args="(const usrp_subdev_spec &ss_a, const usrp_subdev_spec &ss_b)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int usrp_standard_tx::determine_tx_mux_value </td> <td>(</td> <td class="paramtype">const <a class="el" href="structusrp__subdev__spec.html">usrp_subdev_spec</a> & </td> <td class="paramname"> <em>ss_a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structusrp__subdev__spec.html">usrp_subdev_spec</a> & </td> <td class="paramname"> <em>ss_b</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a386da4e76f7b2393563e48555c613a96"></a><!-- doxytag: member="usrp_standard_tx::determine_tx_mux_value" ref="a386da4e76f7b2393563e48555c613a96" args="(const usrp_subdev_spec &ss)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int usrp_standard_tx::determine_tx_mux_value </td> <td>(</td> <td class="paramtype">const <a class="el" href="structusrp__subdev__spec.html">usrp_subdev_spec</a> & </td> <td class="paramname"> <em>ss</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Determine the appropriate Tx mux value as a function of the subdevice choosen and the characteristics of the respective daughterboard. </p> </div> </div> <a class="anchor" id="a2268e9e90e037cce86f9f83cce2a006d"></a><!-- doxytag: member="usrp_standard_tx::interp_rate" ref="a2268e9e90e037cce86f9f83cce2a006d" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int usrp_standard_tx::interp_rate </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ad44e49c04d276efa53338e2105c933e5"></a><!-- doxytag: member="usrp_standard_tx::make" ref="ad44e49c04d276efa53338e2105c933e5" args="(int which_board, unsigned int interp_rate, int nchan=1, int mux=-1, int fusb_block_size=0, int fusb_nblocks=0, const std::string fpga_filename="", const std::string firmware_filename="")" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classboost_1_1shared__ptr.html">usrp_standard_tx_sptr</a> usrp_standard_tx::make </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>which_board</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>interp_rate</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nchan</em> = <code>1</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>mux</em> = <code>-1</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>fusb_block_size</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>fusb_nblocks</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string </td> <td class="paramname"> <em>fpga_filename</em> = <code>""</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string </td> <td class="paramname"> <em>firmware_filename</em> = <code>""</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p>invokes constructor, returns shared_ptr or shared_ptr equivalent of 0 if trouble </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>which_board</em> </td><td>Which USRP board on usb (not particularly useful; use 0) </td></tr> <tr><td valign="top"></td><td valign="top"><em>interp_rate</em> </td><td>interpolation factor </td></tr> <tr><td valign="top"></td><td valign="top"><em>nchan</em> </td><td>number of channels </td></tr> <tr><td valign="top"></td><td valign="top"><em>mux</em> </td><td>Tx mux setting, </td></tr> </table> </dd> </dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classusrp__standard__tx.html#a2e432c316c8a91613b9603ebe664bfd1" title="Set output mux configuration.">set_mux</a> </dd></dl> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>fusb_block_size</em> </td><td>fast usb xfer block size. Must be a multiple of 512. Use zero for a reasonable default. </td></tr> <tr><td valign="top"></td><td valign="top"><em>fusb_nblocks</em> </td><td>number of fast usb URBs to allocate. Use zero for a reasonable default. </td></tr> <tr><td valign="top"></td><td valign="top"><em>fpga_filename</em> </td><td>Name of rbf file to load </td></tr> <tr><td valign="top"></td><td valign="top"><em>firmware_filename</em> </td><td>Name of ihx file to load </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a18b5e48aee2ab110932d382b94e71268"></a><!-- doxytag: member="usrp_standard_tx::mux" ref="a18b5e48aee2ab110932d382b94e71268" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int usrp_standard_tx::mux </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="afc401f90409da171a5de0f91cf5749ef"></a><!-- doxytag: member="usrp_standard_tx::nchannels" ref="afc401f90409da171a5de0f91cf5749ef" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int usrp_standard_tx::nchannels </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a4a5daeae21c7783ac20ffbbcd6495058"></a><!-- doxytag: member="usrp_standard_tx::set_coarse_modulator" ref="a4a5daeae21c7783ac20ffbbcd6495058" args="(int channel, coarse_mod_t cm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::set_coarse_modulator </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>channel</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">coarse_mod_t</a> </td> <td class="paramname"> <em>cm</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ab13a3b05a3035689af85090ded7389aa"></a><!-- doxytag: member="usrp_standard_tx::set_interp_rate" ref="ab13a3b05a3035689af85090ded7389aa" args="(unsigned int rate)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::set_interp_rate </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>rate</em></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Set interpolator rate. <code>rate</code> must be in [4, 512] and a multiple of 4. </p> <p>The final complex sample rate across the USB is dac_freq () / interp_rate () * nchannels () </p> </div> </div> <a class="anchor" id="a2e432c316c8a91613b9603ebe664bfd1"></a><!-- doxytag: member="usrp_standard_tx::set_mux" ref="a2e432c316c8a91613b9603ebe664bfd1" args="(int mux)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::set_mux </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>mux</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set output mux configuration. </p> <pre> 3 2 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +-------------------------------+-------+-------+-------+-------+ | | DAC3 | DAC2 | DAC1 | DAC0 | +-------------------------------+-------+-------+-------+-------+</pre><pre> There are two interpolators with complex inputs and outputs. There are four DACs.</pre><pre> Each 4-bit DACx field specifies the source for the DAC and whether or not that DAC is enabled. Each subfield is coded like this:</pre><pre> 3 2 1 0 +-+-----+ |E| N | +-+-----+</pre><pre> Where E is set if the DAC is enabled, and N specifies which interpolator output is connected to this DAC.</pre><pre> N which interp output --- ------------------- 0 chan 0 I 1 chan 0 Q 2 chan 1 I 3 chan 1 Q </pre> </div> </div> <a class="anchor" id="a5e9167c1f811c6446467ba2935cde618"></a><!-- doxytag: member="usrp_standard_tx::set_nchannels" ref="a5e9167c1f811c6446467ba2935cde618" args="(int nchannels)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::set_nchannels </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>nchannels</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set number of active channels. <code>nchannels</code> must be 1 or 2. </p> <p>The final complex sample rate across the USB is dac_freq () / decim_rate () * nchannels () </p> </div> </div> <a class="anchor" id="ab28d467abaa2584967efc69aa674a1d1"></a><!-- doxytag: member="usrp_standard_tx::set_tx_freq" ref="ab28d467abaa2584967efc69aa674a1d1" args="(int channel, double freq)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::set_tx_freq </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>channel</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>freq</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>set the frequency of the digital up converter. </p> <p><code>channel</code> must be in the range [0,1]. <code>freq</code> is the center frequency in Hz. It must be in the range [-44M, 44M]. The frequency specified is quantized. Use tx_freq to retrieve the actual value used. </p> </div> </div> <a class="anchor" id="ae6f8039f30bf641b937877001127176f"></a><!-- doxytag: member="usrp_standard_tx::start" ref="ae6f8039f30bf641b937877001127176f" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::start </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Start data transfers. Called in base class to derived class order. </p> <p>Reimplemented from <a class="el" href="classusrp__basic__tx.html#a3d16b0d8e96d5124b6392bc44014124d">usrp_basic_tx</a>.</p> </div> </div> <a class="anchor" id="a5173292e6162fce54a875683f02cdd5c"></a><!-- doxytag: member="usrp_standard_tx::stop" ref="a5173292e6162fce54a875683f02cdd5c" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::stop </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Stop data transfers. Called in base class to derived class order. </p> <p>Reimplemented from <a class="el" href="classusrp__basic__tx.html#ab1c5851e72e29e86af914da5c7f62cf8">usrp_basic_tx</a>.</p> </div> </div> <a class="anchor" id="a5c992590408fe90d4711e355ee12852f"></a><!-- doxytag: member="usrp_standard_tx::tune" ref="a5c992590408fe90d4711e355ee12852f" args="(int chan, db_base_sptr db, double target_freq, usrp_tune_result *result)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::tune </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>chan</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classboost_1_1shared__ptr.html">db_base_sptr</a> </td> <td class="paramname"> <em>db</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>target_freq</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classusrp__tune__result.html">usrp_tune_result</a> * </td> <td class="paramname"> <em>result</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>High-level "tune" method. Works for the single channel case. </p> <p>This method adjusts both the daughterboard LO and the DUC so that DC in the complex baseband samples ends up at RF target_freq.</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>chan</em> </td><td>which DUC channel we're controlling (usually == which_side). </td></tr> <tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>the daughterboard we're controlling. </td></tr> <tr><td valign="top"></td><td valign="top"><em>target_freq</em> </td><td>the RF frequency we want our baseband translated to. </td></tr> <tr><td valign="top"><tt>[out]</tt> </td><td valign="top"><em>result</em> </td><td>details how the hardware was configured.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>true iff everything was successful. </dd></dl> </div> </div> <a class="anchor" id="aa527ce0117c6f6fb6e89f09efb4e381f"></a><!-- doxytag: member="usrp_standard_tx::tx_freq" ref="aa527ce0117c6f6fb6e89f09efb4e381f" args="(int channel) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double usrp_standard_tx::tx_freq </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>channel</em></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="abd05aee7bbd18ef62bcc8dc18a11a960"></a><!-- doxytag: member="usrp_standard_tx::write_hw_mux_reg" ref="abd05aee7bbd18ef62bcc8dc18a11a960" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="gc__types_8h.html#a0f2b5d454b7e4dda3861032cfce91085">bool</a> usrp_standard_tx::write_hw_mux_reg </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="a5c439350ad4d861c49c21d203110eedb"></a><!-- doxytag: member="usrp_standard_tx::d_coarse_mod" ref="a5c439350ad4d861c49c21d203110eedb" args="[MAX_CHAN]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classusrp__standard__tx.html#a4c70322824b7b9d040aa265d0587c191">coarse_mod_t</a> <a class="el" href="classusrp__standard__tx.html#a5c439350ad4d861c49c21d203110eedb">usrp_standard_tx::d_coarse_mod</a>[<a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">MAX_CHAN</a>]<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a4b22d4e7f26f031d01fe99b4c8394447"></a><!-- doxytag: member="usrp_standard_tx::d_hw_mux" ref="a4b22d4e7f26f031d01fe99b4c8394447" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classusrp__standard__tx.html#a4b22d4e7f26f031d01fe99b4c8394447">usrp_standard_tx::d_hw_mux</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="ac1c7c7ce9479045ad9dca8f409f5ef87"></a><!-- doxytag: member="usrp_standard_tx::d_interp_rate" ref="ac1c7c7ce9479045ad9dca8f409f5ef87" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="classusrp__standard__tx.html#ac1c7c7ce9479045ad9dca8f409f5ef87">usrp_standard_tx::d_interp_rate</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a536872bd7b7f90d94bf58f5b45df0f3d"></a><!-- doxytag: member="usrp_standard_tx::d_nchan" ref="a536872bd7b7f90d94bf58f5b45df0f3d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classusrp__standard__tx.html#a536872bd7b7f90d94bf58f5b45df0f3d">usrp_standard_tx::d_nchan</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="adc70d6cc3f72451cd83b7276d35b2615"></a><!-- doxytag: member="usrp_standard_tx::d_sw_mux" ref="adc70d6cc3f72451cd83b7276d35b2615" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="classusrp__standard__tx.html#adc70d6cc3f72451cd83b7276d35b2615">usrp_standard_tx::d_sw_mux</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a28918715849de2505bd480cccb5d6b4c"></a><!-- doxytag: member="usrp_standard_tx::d_tx_freq" ref="a28918715849de2505bd480cccb5d6b4c" args="[MAX_CHAN]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double <a class="el" href="classusrp__standard__tx.html#a28918715849de2505bd480cccb5d6b4c">usrp_standard_tx::d_tx_freq</a>[<a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">MAX_CHAN</a>]<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a1b713d251419953e67467df19295c385"></a><!-- doxytag: member="usrp_standard_tx::d_tx_modulator_shadow" ref="a1b713d251419953e67467df19295c385" args="[MAX_CHAN]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned char <a class="el" href="classusrp__standard__tx.html#a1b713d251419953e67467df19295c385">usrp_standard_tx::d_tx_modulator_shadow</a>[<a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">MAX_CHAN</a>]<code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <a class="anchor" id="a2d21279d48272cf133db170b9f142218"></a><!-- doxytag: member="usrp_standard_tx::MAX_CHAN" ref="a2d21279d48272cf133db170b9f142218" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const int <a class="el" href="classusrp__standard__tx.html#a2d21279d48272cf133db170b9f142218">usrp_standard_tx::MAX_CHAN</a> = 2<code> [static, protected]</code></td> </tr> </table> </div> <div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="usrp__standard_8h_source.html">usrp_standard.h</a></li> </ul> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Dec 29 19:53:05 2010 for GNU Radio 3.3.0 C++ API by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>