<?xml version="1.0"?>
<!--
###################################################
##USRP Simple Source
###################################################
 -->
<block>
	<name>USRP Source</name>
	<key>usrp_simple_source_x</key>
	<import>from grc_gnuradio import usrp as grc_usrp</import>
	<make>grc_usrp.simple_source_$(type.fcn)(which=$which, side=$side, rx_ant=$rx_ant#if $hb_filters() then ', no_hb=True' else ''#)
#if $format()
self.$(id).set_format(width=$format.width, shift=$format.shift)
#end if
self.$(id).set_decim_rate($decimation)
self.$(id).set_frequency($frequency, verbose=True#slurp
#if $lo_offset() != float('inf')
, lo_offset=$lo_offset#slurp
#end if
)
self.$(id).set_gain($gain)</make>
	<callback>set_decim_rate($decimation)</callback>
	<callback>set_frequency($frequency#slurp
#if $lo_offset() != float('inf')
, lo_offset=$lo_offset#slurp
#end if
)</callback>
	<callback>set_gain($gain)</callback>
	<param>
		<name>Output Type</name>
		<key>type</key>
		<type>enum</type>
		<option>
			<name>Complex</name>
			<key>complex</key>
			<opt>fcn:c</opt>
		</option>
		<option>
			<name>Short</name>
			<key>short</key>
			<opt>fcn:s</opt>
		</option>
	</param>
	<param>
		<name>Format</name>
		<key>format</key>
		<value></value>
		<type>enum</type>
		<hide>#if $format() then '' else 'part'#</hide>
		<option>
			<name>16 Bits (Default)</name>
			<key></key>
			<opt>width:16</opt>
			<opt>shift:0</opt>
		</option>
		<option>
			<name>8 Bits, Shift 8</name>
			<key>w8_s8</key>
			<opt>width:8</opt>
			<opt>shift:8</opt>
		</option>
	</param>
	<param>
		<name>Unit Number</name>
		<key>which</key>
		<value>0</value>
		<type>int</type>
	</param>
	<param>
		<name>Decimation</name>
		<key>decimation</key>
		<type>int</type>
	</param>
	<param>
		<name>Frequency (Hz)</name>
		<key>frequency</key>
		<type>real</type>
	</param>
	<param>
		<name>LO Offset (Hz)</name>
		<key>lo_offset</key>
		<value>float('inf')</value>
		<type>real</type>
		<hide>#if $lo_offset() == float('inf') then 'part' else 'none'#</hide>
		<option>
			<name>Default</name>
			<key>float('inf')</key>
		</option>
	</param>
	<param>
		<name>Gain (dB)</name>
		<key>gain</key>
		<value>0</value>
		<type>real</type>
	</param>
	<param>
		<name>Side</name>
		<key>side</key>
		<value>A</value>
		<type>string</type>
		<option>
			<name>A</name>
			<key>A</key>
		</option>
		<option>
			<name>B</name>
			<key>B</key>
		</option>
	</param>
	<param>
		<name>RX Antenna</name>
		<key>rx_ant</key>
		<value>RXA</value>
		<type>string</type>
		<option>
			<name>RXA</name>
			<key>RXA</key>
		</option>
		<option>
			<name>RXB</name>
			<key>RXB</key>
		</option>
		<option>
			<name>RXAB</name>
			<key>RXAB</key>
		</option>
		<option>
			<name>TX/RX</name>
			<key>TX/RX</key>
		</option>
		<option>
			<name>RX2</name>
			<key>RX2</key>
		</option>
	</param>
	<param>
		<name>Halfband Filters</name>
		<key>hb_filters</key>
		<value></value>
		<type>enum</type>
		<hide>#if $hb_filters() then 'none' else 'part'#</hide>
		<option>
			<name>Enable</name>
			<key></key>
		</option>
		<option>
			<name>Disable</name>
			<key>1</key>
		</option>
	</param>
	<source>
		<name>out</name>
		<type>$type</type>
	</source>
	<doc>
The USRP source outputs 64 Megasamples per second / decimation.

The "Receive Antenna Setting" selects one of the SMA connectors as the data source. \
Flex RF boards use the "TX/RX" and "RX2" settings. \
Basic RX and LFRX use the "RXA", "RXB", and "RXAB" settings. \
All other boards use the "RXA" setting.

With the format set to 8 bits and the halfband filters disabled, the USRP can acheive a decimation rate of 4. \
Disabling the halfband filters requires a special USRP firmware without halfband filters or TX paths. \
For this reason, the USRP cannot transmit with the halfband filters disabled.
	</doc>
</block>