diff options
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/transport/vrt_packet_handler.hpp | 14 | ||||
-rw-r--r-- | host/lib/usrp/usrp2/mboard_impl.cpp | 8 | ||||
-rw-r--r-- | host/lib/usrp/usrp2/usrp2_impl.hpp | 1 |
3 files changed, 17 insertions, 6 deletions
diff --git a/host/lib/transport/vrt_packet_handler.hpp b/host/lib/transport/vrt_packet_handler.hpp index c5c63b089..6623957ac 100644 --- a/host/lib/transport/vrt_packet_handler.hpp +++ b/host/lib/transport/vrt_packet_handler.hpp @@ -146,9 +146,6 @@ namespace vrt_packet_handler{ const handle_overrun_t &handle_overrun, size_t vrt_header_offset_words32 ){ - metadata.has_time_spec = false; //false unless set in the helper - metadata.error_code = uhd::rx_metadata_t::ERROR_CODE_NONE; - //perform a receive if no rx data is waiting to be copied if (state.size_of_copy_buffs == 0){ state.fragment_offset_in_samps = 0; @@ -169,11 +166,18 @@ namespace vrt_packet_handler{ return 0; } } + //defaults for the metadata when this is a fragment + else{ + metadata.has_time_spec = false; + metadata.start_of_burst = false; + metadata.end_of_burst = false; + metadata.error_code = uhd::rx_metadata_t::ERROR_CODE_NONE; + } //extract the number of samples available to copy size_t bytes_per_item = otw_type.get_sample_size(); - size_t bytes_available = state.size_of_copy_buffs; - size_t nsamps_to_copy = std::min(total_samps, bytes_available/bytes_per_item); + size_t nsamps_available = state.size_of_copy_buffs/bytes_per_item; + size_t nsamps_to_copy = std::min(total_samps, nsamps_available); size_t bytes_to_copy = nsamps_to_copy*bytes_per_item; for (size_t i = 0; i < state.width; i++){ diff --git a/host/lib/usrp/usrp2/mboard_impl.cpp b/host/lib/usrp/usrp2/mboard_impl.cpp index b46832360..7518d3114 100644 --- a/host/lib/usrp/usrp2/mboard_impl.cpp +++ b/host/lib/usrp/usrp2/mboard_impl.cpp @@ -43,6 +43,12 @@ usrp2_mboard_impl::usrp2_mboard_impl( { //make a new interface for usrp2 stuff _iface = usrp2_iface::make(ctrl_transport); + + //extract the mboard rev numbers + _rev_lo = _iface->read_eeprom(I2C_ADDR_MBOARD, EE_MBOARD_REV_LSB, 1).at(0); + _rev_hi = _iface->read_eeprom(I2C_ADDR_MBOARD, EE_MBOARD_REV_MSB, 1).at(0); + + //contruct the interfaces to mboard perifs _clock_ctrl = usrp2_clock_ctrl::make(_iface); _codec_ctrl = usrp2_codec_ctrl::make(_iface); _serdes_ctrl = usrp2_serdes_ctrl::make(_iface); @@ -184,7 +190,7 @@ void usrp2_mboard_impl::get(const wax::obj &key_, wax::obj &val){ //handle the get request conditioned on the key switch(key.as<mboard_prop_t>()){ case MBOARD_PROP_NAME: - val = str(boost::format("usrp2 mboard %d") % _index); + val = str(boost::format("usrp2 mboard%d - rev %d:%d") % _index % _rev_hi % _rev_lo); return; case MBOARD_PROP_OTHERS:{ diff --git a/host/lib/usrp/usrp2/usrp2_impl.hpp b/host/lib/usrp/usrp2/usrp2_impl.hpp index 186516447..ab23830c0 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.hpp +++ b/host/lib/usrp/usrp2/usrp2_impl.hpp @@ -137,6 +137,7 @@ public: private: size_t _index; + int _rev_hi, _rev_lo; const usrp2_io_helper &_io_helper; //properties for this mboard |