diff options
| author | Josh Blum <josh@joshknows.com> | 2010-07-07 18:44:16 +0000 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2010-07-07 18:44:16 +0000 | 
| commit | 7c2e17b549fefb5a667cf77dd7d86ed55f7ebe13 (patch) | |
| tree | 7848f714427f06ff20da76e7ce6c54b4b7254a64 /host | |
| parent | ed29bc87996972ee7257b9e186f125efe5b0294b (diff) | |
| download | uhd-7c2e17b549fefb5a667cf77dd7d86ed55f7ebe13.tar.gz uhd-7c2e17b549fefb5a667cf77dd7d86ed55f7ebe13.tar.bz2 uhd-7c2e17b549fefb5a667cf77dd7d86ed55f7ebe13.zip | |
usrp-e: replaced stream cmd logic with common dsp type1 logic
Diffstat (limited to 'host')
| -rw-r--r-- | host/lib/usrp/usrp_e/io_impl.cpp | 31 | 
1 files changed, 4 insertions, 27 deletions
| diff --git a/host/lib/usrp/usrp_e/io_impl.cpp b/host/lib/usrp/usrp_e/io_impl.cpp index a77a73b38..9ebd55eac 100644 --- a/host/lib/usrp/usrp_e/io_impl.cpp +++ b/host/lib/usrp/usrp_e/io_impl.cpp @@ -17,6 +17,7 @@  #include "usrp_e_impl.hpp"  #include "usrp_e_regs.hpp" +#include "../dsp_utils.hpp"  #include "../../transport/vrt_packet_handler.hpp"  #include <boost/bind.hpp>  #include <fcntl.h> //read, write @@ -24,10 +25,10 @@  #include <stddef.h> //offsetof  #include <poll.h>  #include <boost/format.hpp> -#include <boost/assign.hpp>  #include <iostream>  using namespace uhd; +using namespace uhd::usrp;  /***********************************************************************   * Constants @@ -152,33 +153,9 @@ void usrp_e_impl::io_init(void){      _io_impl = UHD_PIMPL_MAKE(io_impl, (_iface->get_file_descriptor()));  } -static boost::uint32_t make_stream_cmd(bool now, bool chain, bool reload, boost::uint32_t nsamps){ -    return (((now)? 1 : 0) << 31) | (((chain)? 1 : 0) << 30) | (((reload)? 1 : 0) << 29) | nsamps; -} -  void usrp_e_impl::issue_stream_cmd(const stream_cmd_t &stream_cmd){ -    UHD_ASSERT_THROW(stream_cmd.num_samps <= 0x3fffffff); - -    //setup the mode to instruction flags -    typedef boost::tuple<bool, bool, bool> inst_t; -    static const uhd::dict<stream_cmd_t::stream_mode_t, inst_t> mode_to_inst = boost::assign::map_list_of -                                                            //reload, chain, samps -        (stream_cmd_t::STREAM_MODE_START_CONTINUOUS,   inst_t(true,  true,  false)) -        (stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS,    inst_t(false, false, false)) -        (stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE, inst_t(false, false, true)) -        (stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_MORE, inst_t(false, true,  true)) -    ; - -    //setup the instruction flag values -    bool inst_reload, inst_chain, inst_samps; -    boost::tie(inst_reload, inst_chain, inst_samps) = mode_to_inst[stream_cmd.stream_mode]; - -    //issue the stream command -    _iface->poke32(UE_REG_CTRL_RX_STREAM_CMD, make_stream_cmd( -        (inst_samps)? stream_cmd.num_samps : ((inst_chain)? get_max_recv_samps_per_packet() : 1), -        (stream_cmd.stream_now)? 1 : 0, -        (inst_chain)? 1 : 0, -        (inst_reload)? 1 : 0 +    _iface->poke32(UE_REG_CTRL_RX_STREAM_CMD, dsp_type1::calc_stream_cmd_word( +        stream_cmd, get_max_recv_samps_per_packet()      ));      _iface->poke32(UE_REG_CTRL_RX_TIME_SECS,  boost::uint32_t(stream_cmd.time_spec.get_full_secs()));      _iface->poke32(UE_REG_CTRL_RX_TIME_TICKS, stream_cmd.time_spec.get_tick_count(MASTER_CLOCK_RATE)); | 
