The questions were not about time_spec_t and get_real_secs()..I wondered that 
"How can I execute the command usrp->get_time_now(); and usrp2->get_time_now(); 
simultaneously.As I mentioned the previous question, I tried to use 
set_command_time(), but it does not work.the code that I tried 
is---------------------------------------------------------------usrp->set_time_next_pps(uhd::time_spec_t(0.0));
    usrp2->set_time_next_pps(uhd::time_spec_t(0.0));    
boost::this_thread::sleep(boost::posix_time::seconds(2));    uhd::time_spec_t 
start_time = usrp->get_time_now() + uhd::time_spec_t(0.3);    
usrp->set_command_time(start_time);    uhd::time_spec_t usrp_t = 
usrp->get_time_now();    uhd::time_spec_t usrp2_t = usrp2->get_time_now();    
usrp->clear_command_time();    std::cout << boost::format(            " Start   
    : %f us\n"            " Response 1: %f us\n"            " Response 2: %f 
us"        ) % (start_time.get_real_secs()*1e6) % (usrp_t.get_real_secs()*1e6) 
% (usrp2_t.get_real_secs()*1e6) << std::endl;    std::cout << boost::format(    
    " Difference of response time 1: %f us"    ) % ((usrp_t - 
start_time).get_real_secs()*1e6) << std::endl;    std::cout << boost::format(   
     " Difference of response time 2: %f us"    ) % ((usrp2_t - 
start_time).get_real_secs()*1e6) << 
std::endl;-------------------------------------------------------------------------------------------OUTPUT-------------------------------------Checking
 USRP devices for lock.Waiting for reference lock.... * 30FDE72: LOCKEDWaiting 
for reference lock... * 3125CB5: LOCKEDQuerying Clock for time and setting USRP 
times... Start       : 1329026.312500 us Response 1: 1329026.625000 us Response 
2: 1329261.625000 us Difference of response time 1: 0.312500 us Difference of 
response time 2: 235.312500 
us-----------------------------------------------------------------What I 
expect was, in OUTPUT, Difference of response time 2 should be 0.312500 us, not 
235.312500 us.This result means that the command usrp->get_time_now(); and 
usrp2->get_time_now(); were not executed simultaneously.I also changed the 
code-----------------------------------------------------------------uhd::time_spec_t
 start_time = usrp->get_time_now() + 
uhd::time_spec_t(0.3);usrp->set_command_time(start_time);uhd::time_spec_t 
usrp_t = usrp->get_time_now();uhd::time_spec_t usrp2_t = 
usrp2->get_time_now();usrp->clear_command_time();-----------------------------------------------------------------to-----------------------------------------------------------------uhd::time_spec_t
 start_time = usrp->get_time_now() + 
uhd::time_spec_t(0.3);usrp->set_command_time(start_time);usrp2->set_command_time(start_time);uhd::time_spec_t
 usrp_t = usrp->get_time_now();uhd::time_spec_t usrp2_t = 
usrp2->get_time_now();usrp->clear_command_time();usrp2->clear_command_time();-----------------------------------------------------------------But
 it does not work.Again, How can I execute the command usrp->get_time_now(); 
and usrp2->get_time_now(); simultaneously?usrp: USRP B210usrp2: USRP B200Hojoon
-----------------------원본메일-----------------------보낸사람 : "Marcus D. Leech via 
USRP-users" <usrp-users@lists.ettus.com>받는사람: usrp-users@lists.ettus.com보낸날짜: 
2018-04-26 01:41:04 GMT +0900 (Asia/Seoul)제목: Re: [USRP-users] synchronization 
between two usrps.
  
   
  
  
  
   On 04/25/2018 10:53 AM, Hojoon Yang via USRP-users wrote:
    
   
   
   Hi, 
    
   I connected one usrp b210 and one usrp b200 to octoclock for 
synchronization. 
    
   I'm trying to verify that the usrps connected to octoclock is "really" 
synchronized. 
    
   To check it, I did as follows. 
    
   usrp->set_time_next_pps(uhd::time_spec_t(0.0)); 
   usrp2->set_time_next_pps(uhd::time_spec_t(0.0)); 
   boost::this_thread::sleep(boost::posix_time::seconds(2)); 
    
   uhd::time_spec_t start_time = usrp->get_time_now() + uhd::time_spec_t(0.1); 
   usrp->set_command_time(start_time); 
   uhd::time_spec_t usrp_t = usrp->get_time_now(); 
   uhd::time_spec_t usrp2_t = usrp2->get_time_now(); 
   usrp->clear_command_time(); 
    
   I think I did wrong, because the results are different from my expectations. 
    
   Q1. Can I execute usrp->get_time_now(); and usrp2->get_time_now(); 
simultaneously? I'm trying to use set_command_time, but it didn't work well as 
above. 
    
   Q2. How can I verify that the two usrps connected to the octoclock, is 
really synchronized? in terms of time.. 
    
   I already used get_time_last_pps() command, this command works perfect, the 
two usrps showed same value. 
    
   but this command only showed "the full_secs" which does not include 
frac_secs.. I want to check "the frac_secs" between two usrps. 
    
   I read this thread, 
http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-January/012227.html
 
     
   But, I can't find the way to check frac_secs.. 
     
   Hojoon 
   
    
   
  
https://files.ettus.com/manual/classuhd_1_1usrp_1_1multi__usrp.html#afb4bffe3f969c11ee7c0a2cba5178780
   
   Returns a time_spec_t, and there are multiple methods associated with 
time_spec_t
   
   
  https://files.ettus.com/manual/classuhd_1_1time__spec__t.html
   
   Including get_real_secs()
   
   Many of the example programs included with UHD source use this method--you 
could look there usage examples.
   
   
   
   
     
 
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to