summaryrefslogtreecommitdiff
path: root/usrp2/host/lib/usrp2_impl.cc
diff options
context:
space:
mode:
authorJosh Blum2010-02-25 15:46:01 -0800
committerJosh Blum2010-02-25 15:46:01 -0800
commit803cb1d7974ed7d419550cc66480c107c2f0d454 (patch)
tree6127f99d30952b5d8a9491fdb9afc5fe3aae446d /usrp2/host/lib/usrp2_impl.cc
parentdb29a2cfc18554ae0a3c55a4e13dc4cbfa86317f (diff)
downloadgnuradio-803cb1d7974ed7d419550cc66480c107c2f0d454.tar.gz
gnuradio-803cb1d7974ed7d419550cc66480c107c2f0d454.tar.bz2
gnuradio-803cb1d7974ed7d419550cc66480c107c2f0d454.zip
Added call to set antenna. Split XCVR into new thing cuz size.
Diffstat (limited to 'usrp2/host/lib/usrp2_impl.cc')
-rw-r--r--usrp2/host/lib/usrp2_impl.cc42
1 files changed, 42 insertions, 0 deletions
diff --git a/usrp2/host/lib/usrp2_impl.cc b/usrp2/host/lib/usrp2_impl.cc
index b19c6ecf1..34477b746 100644
--- a/usrp2/host/lib/usrp2_impl.cc
+++ b/usrp2/host/lib/usrp2_impl.cc
@@ -492,6 +492,27 @@ namespace usrp2 {
// ----------------------------------------------------------------
bool
+ usrp2::impl::set_rx_antenna(int ant){
+ op_config_mimo_cmd cmd;
+ op_generic_t reply;
+
+ memset(&cmd, 0, sizeof(cmd));
+ init_etf_hdrs(&cmd.h, d_addr, 0, CONTROL_CHAN, -1);
+ cmd.op.opcode = OP_TX_ANTENNA;
+ cmd.op.len = sizeof(cmd.op);
+ cmd.op.rid = d_next_rid++;
+ cmd.op.flags = ant;
+ cmd.eop.opcode = OP_EOP;
+ cmd.eop.len = sizeof(cmd.eop);
+
+ pending_reply p(cmd.op.rid, &reply, sizeof(reply));
+ if (!transmit_cmd_and_wait(&cmd, sizeof(cmd), &p, DEF_CMD_TIMEOUT))
+ return false;
+
+ return true;//ntohx(reply.ok) == 1;
+ }
+
+ bool
usrp2::impl::set_rx_gain(double gain)
{
op_config_rx_v2_cmd cmd;
@@ -902,6 +923,27 @@ namespace usrp2 {
// ----------------------------------------------------------------
bool
+ usrp2::impl::set_tx_antenna(int ant){
+ op_config_mimo_cmd cmd;
+ op_generic_t reply;
+
+ memset(&cmd, 0, sizeof(cmd));
+ init_etf_hdrs(&cmd.h, d_addr, 0, CONTROL_CHAN, -1);
+ cmd.op.opcode = OP_RX_ANTENNA;
+ cmd.op.len = sizeof(cmd.op);
+ cmd.op.rid = d_next_rid++;
+ cmd.op.flags = ant;
+ cmd.eop.opcode = OP_EOP;
+ cmd.eop.len = sizeof(cmd.eop);
+
+ pending_reply p(cmd.op.rid, &reply, sizeof(reply));
+ if (!transmit_cmd_and_wait(&cmd, sizeof(cmd), &p, DEF_CMD_TIMEOUT))
+ return false;
+
+ return true;//ntohx(reply.ok) == 1;
+ }
+
+ bool
usrp2::impl::set_tx_gain(double gain)
{
op_config_tx_v2_cmd cmd;