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: [email protected] 
[mailto:[email protected]] On Behalf Of 
Marcus Müller
Sent: 04 March 2016 08:35
To: [email protected]
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: [email protected] 
> [mailto:[email protected]] On 
> Behalf Of Martin Braun
> Sent: Wednesday, March 2, 2016 9:24 PM
> To: [email protected]
> 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
>> [email protected]
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to