discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] gr-uhd timed command messages


From: Nigel Steed
Subject: Re: [Discuss-gnuradio] gr-uhd timed command messages
Date: Tue, 8 Mar 2016 13:54:39 +0000

Hi Marcus,

I updated my code to (which compiles):

pmt::pmt_t timeStamp = pmt::mp(pmt::from_long(0), pmt::from_double(1));
command = pmt::dict_add(command, pmt::mp("time"), timeStamp);

But my UHD Source gives the following error when it receives the message:

Block gr uhd usrp source(1)>]:pmt_cdr:wrong_type:{0 1}

I have rebuilt gr-uhd with the UHD_USRP_MULTI_USRP_COMMAND_TIME_API defined. 

Have I done something stupid ?

Thanks,

Nigel

-----Original Message-----
From: Marcus Müller [mailto:address@hidden 
Sent: Friday, March 4, 2016 10:44 AM
To: Nigel Steed <address@hidden>; address@hidden
Subject: Re: [Discuss-gnuradio] gr-uhd timed command messages

Hi Nigel,

from_long(1), from_double(1)
implies that your timestamp is at 1 [full second] + 1 [fraction of second] = 
2s; usually you'd do from_long(2), from_double(0) for that :)

> Do you think it maybe better for me to modify UHD Source and implement the 
> timed command in the set_center_freq function in the usrp_source_impl.cc (UHD 
> Source Block) ? As I am successfully stepping the UHD Source using the 
> message port successfully and I just need to add a timed command so both 
> channels re-tune together.
Not quite sure. As far as I can tell, the usrp_source does exactly the timed 
command tuning when you issue these commands; however, I've to admit I haven't 
read up on your discussion with Martin, so there might be a bug and it doesn't?

Best regards,
Marcus


On 04.03.2016 11:35, Nigel Steed wrote:
> Thanks Marcus,
>
> The UHD Source finally understand the following:
>
> pmt::pmt_t timeStamp = pmt::cons(pmt::from_long(1), 
> pmt::from_double(1)); d_rxCommand = pmt::dict_add(d_rxCommand, 
> pmt::mp("time"), timeStamp);
>
> Although UHD Source reports processing the message, I eventually get a packet 
> loss error and the N210 disconnects (no control response error).
>
> Do you think it maybe better for me to modify UHD Source and implement the 
> timed command in the set_center_freq function in the usrp_source_impl.cc (UHD 
> Source Block) ? As I am successfully stepping the UHD Source using the 
> message port successfully and I just need to add a timed command so both 
> channels re-tune together.
>
> Thanks,
>
> Nigel
> -----Original Message-----
> From: address@hidden 
> [mailto:address@hidden On 
> Behalf Of Marcus Müller
> Sent: 04 March 2016 08:35
> To: address@hidden
> Subject: Re: [Discuss-gnuradio] gr-uhd timed command messages
>
> Hi Nigel,
>
>>             d_rxCommand = pmt::dict_add(d_rxCommand, pmt::mp("time"), 
>> pmt::mp(0.5));
> Timestamps aren't just doubles for UHD; they ought to be [1]
>
>> timestamp: A pair composed of (long full_secs, double frac_secs).
> Similar to uhd::time_spec_t.
>
> So your timestamp needs to be a pair of long, double
>
> pmt_t timestamp = pmt::make_pair(pmt::from_long(0), 
> pmt::from_double(0.5)); d_rxCommand = pmt::dict_add(d_rxCommand, 
> pmt::mp("time"), timestamp);
>
> if I'm not mistaken.
>
> Best regards,
> Marcus
>
> [1] 
> https://gnuradio.org/doc/doxygen/page_uhd.html#uhd_command_syntax_cmds
> On 04.03.2016 01:39, Nigel Steed wrote:
>> Hi Martin,
>>
>> I have put the following code into my block.
>>
>>
>>      d_rxCommand = pmt::make_dict();
>>              d_rxCommand = pmt::dict_add(d_rxCommand, pmt::mp("time"), 
>> pmt::mp(0.5));
>>              message_port_pub(pmt::mp("rx_freq_msg"), d_rxCommand );
>>
>> It sends the message to the UHD Sink. But I get this error at run time:
>>
>>      thread[thread-per-block[5]: <block gr uhd usrp source (1)>]: pmt_cdr: 
>> wrong_type : 1
>>
>> Any ideas ? I am trying to auto step the frequencies, and currently have my 
>> own block to generate frequency messages which works fine. I am now trying 
>> to implement the time commands. Is there any other way to do it ?
>>
>> Thanks,
>>
>> Nigel
>>
>>
>>
>> -----Original Message-----
>> From: address@hidden
>> [mailto:address@hidden On 
>> Behalf Of Martin Braun
>> Sent: Wednesday, March 2, 2016 9:24 PM
>> To: address@hidden
>> Subject: Re: [Discuss-gnuradio] gr-uhd timed command messages
>>
>> When using messages, simply add a 'time' key to the command dictionary, and 
>> it will be set for the command you're calling. The time stamp value, is a 
>> long/double pair, for full and fractional time. Example:
>>
>> {'freq': 1e9, 'time': (100, 0.1)}
>>
>> If this is your message, it will set the frequency to 1 GHz at time 100.1.
>>
>> Cheers,
>> Martin
>>
>>
>>
>> On 03/02/2016 05:46 AM, Nigel Steed wrote:
>>> Hi,
>>>
>>>  
>>>
>>> Anyone know or managed to implement the time command using a message 
>>> port to the UHD Source Block ?
>>>
>>>  
>>>
>>> I believe time commands are not implemented in the latest GNURadio 
>>> gr-uhd ? Is that correct ?
>>>
>>>  
>>>
>>> Thanks,
>>>
>>>  
>>>
>>> Nigel
>>>
>>>
>>>
>>> _______________________________________________
>>> Discuss-gnuradio mailing list
>>> address@hidden
>>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio




reply via email to

[Prev in Thread] Current Thread [Next in Thread]