diff options
Diffstat (limited to 'lib/usrp/usrp.cpp')
| -rw-r--r-- | lib/usrp/usrp.cpp | 29 | 
1 files changed, 25 insertions, 4 deletions
| diff --git a/lib/usrp/usrp.cpp b/lib/usrp/usrp.cpp index af0e66e9f..5838ab90a 100644 --- a/lib/usrp/usrp.cpp +++ b/lib/usrp/usrp.cpp @@ -4,11 +4,32 @@  #include <usrp_uhd/usrp/usrp.hpp>  #include <usrp_uhd/usrp/mboard/test.hpp> +#include <boost/bind.hpp>  #include <stdexcept>  using namespace usrp_uhd::usrp; +/*********************************************************************** + * default callbacks for the send and recv + * these should be replaced with callbacks from the mboard object + **********************************************************************/ +static void send_raw_default(const usrp_uhd::device::send_args_t &){ +    throw std::runtime_error("No callback registered for send raw"); +} + +static void recv_raw_default(const usrp_uhd::device::recv_args_t &){ +    throw std::runtime_error("No callback registered for recv raw"); +} + +/*********************************************************************** + * the usrp device wrapper + **********************************************************************/  usrp::usrp(const device_addr_t & device_addr){ +    //set the default callbacks, the code below should replace them +    _send_raw_cb = boost::bind(&send_raw_default, _1); +    _recv_raw_cb = boost::bind(&recv_raw_default, _1); + +    //create mboard based on the device addr      if (device_addr.type == DEVICE_ADDR_TYPE_VIRTUAL){          _mboards.push_back(              mboard::base::sptr(new mboard::test(device_addr)) @@ -49,10 +70,10 @@ void usrp::set(const wax::type &, const wax::type &){      throw std::runtime_error("Cannot set in usrp device");  } -void usrp::send_raw(const send_args_t &){ -    //TODO make the call on the mboard +void usrp::send_raw(const send_args_t &args){ +    return _send_raw_cb(args);  } -void usrp::recv_raw(const recv_args_t &){ -    //TODO make the call on the mboard +void usrp::recv_raw(const recv_args_t &args){ +    return _recv_raw_cb(args);  } | 
