Rather than a try/catch block, I just changed my code from usrp->set_time_source(val,mboard); to if (usrp->get_time_source(mboard)!=val) usrp->set_time_source(val,mboard);
This seems to handle it for me. I also did the same for usrp->set_clock_source() because I was experiencing some long delays (but not crashing). Rob On Thu, Sep 20, 2018 at 12:21 PM Rob Kossler <rkoss...@nd.edu> wrote: > Yes. I can do that. > > On Thu, Sep 20, 2018 at 12:14 PM Michael West <michael.w...@ettus.com> > wrote: > >> Hi Rob, >> >> Thanks for letting us know. We will look into that. It is hard to tell >> from the error if MPM is doing the work and the RPC call is just timing out >> or it is failing to execute in MPM altogether. We will try to reproduce it >> and see what is going on. In the meantime, is it possible for you to use a >> try/catch block around the set_time_source() call as a workaround? >> >> Regards, >> Michael >> >> On Thu, Sep 20, 2018 at 7:37 AM, Rob Kossler via USRP-users < >> usrp-users@lists.ettus.com> wrote: >> >>> With the latest 3.13 release and the N310, I get an exception when >>> calling usrp->set_time_source(). It seems that this should just be a >>> warning (or nothing at all if the requested source is equal to the current >>> source). I realize that with the N310, it is necessary to set the time >>> source in the args at object creation. But, I still have instances in my >>> code where I call the set_time_source() function. It seems to me that if >>> the source is "internal" and I subsequently call >>> set_time_source("internal"), it shouldn't be a problem. >>> >>> Rob >>> >>> >>> ******** Here is the code needed to generate the exception >>> uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); >>> usrp->set_time_source("internal"); >>> >>> >>> ******** Here is the result >>> [INFO] [UHD] linux; GNU C++ version 5.4.0 20160609; Boost_105800; >>> UHD_3.13.0.3-0-g85347b89 >>> [INFO] [MPMD] Initializing 1 device(s) in parallel with args: >>> mgmt_addr=192.168.61.2,type=n3xx,product=n310,serial=315A34B,claimed=False,addr=192.168.61.2 >>> [WARNING] [MPM.RPCServer] A timeout event occured! >>> [ERROR] [MPM.RPCServer] Lost claim during API call to `set_time_source'! >>> [WARNING] [MPM.RPCServer] Attempt to unclaim session with invalid token! >>> [INFO] [MPM.PeriphManager] init() called with device args >>> `product=n310,mgmt_addr=192.168.61.2'. >>> [INFO] [0/DmaFIFO_0] Initializing block control (NOC ID: >>> 0xF1F0D00000000004) >>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1341 MB/s) >>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1361 MB/s) >>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1348 MB/s) >>> [INFO] [0/DmaFIFO_0] BIST passed (Throughput: 1342 MB/s) >>> [INFO] [0/Radio_0] Initializing block control (NOC ID: >>> 0x12AD100000011312) >>> [INFO] [0/Radio_1] Initializing block control (NOC ID: >>> 0x12AD100000011312) >>> [INFO] [0/DDC_0] Initializing block control (NOC ID: 0xDDC0000000000000) >>> [INFO] [0/DDC_1] Initializing block control (NOC ID: 0xDDC0000000000000) >>> [INFO] [0/DUC_0] Initializing block control (NOC ID: 0xD0C0000000000002) >>> [INFO] [0/DUC_1] Initializing block control (NOC ID: 0xD0C0000000000002) >>> >>> [ERROR] [UHD] Exception caught in safe-call. >>> in uhd::mpmd::mpmd_mboard_impl::~mpmd_mboard_impl() >>> at >>> /home/irisheyes9/uhd/3_13/uhd/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp:369 >>> if (not rpc->request_with_token<bool>("unclaim")) { >>> uhd::_log::log(uhd::log::warning, >>> "/home/irisheyes9/uhd/3_13/uhd/host/lib/usrp/mpmd/mpmd_mboard_impl.cpp", >>> 369, "MPMD", boost::this_thread::get_id()) << "Failure to ack unclaim!";; } >>> -> rpc::timeout: Timeout of 2000ms while calling RPC function 'unclaim' >>> Error: rpc::timeout: Timeout of 2000ms while calling RPC function >>> 'set_time_source' >>> irisheyes9@irisheyes9-Z240-SFF:~$ >>> >>> >>> _______________________________________________ >>> USRP-users mailing list >>> USRP-users@lists.ettus.com >>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>> >>> >>
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com