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

Reply via email to