Hi Josh,

I am very keen on this block (UHD_AMSG_SOURCE), because I saw that you post
a dictionary downstream in this example. Thus, I would like to analyze how
it works. I've tried to replicate your code in a different block, but I
have some issues with the dictionary.

Here is my summary:

*Issue (1):* According to the wiki:
http://gnuradio.org/redmine/projects/gnuradio/wiki/TypePMT#Dictionaries. If
I want to set values in the dictionary, I should use

pmt_dict_set(%parameters here)

However, this command it doesn't work for me (as it is not part of pmt).

The command that works without problem is:

pmt_dict_add(%parameters here)


*Issue (2):* I've set a dictionary with one value on it. (See the code
below). However, it is always empty when I tried to check the items, keys
or values:

pmt::pmt_t value_dict=pmt::pmt_make_dict();
    std::cout << std::endl << "Making a dictionary : " << value_dict
<<std::endl;
    pmt::pmt_dict_add (value_dict,blob_key,pmt::pmt_from_uint64(10));
    std::cout << std::endl << "Adding the value, items : " <<
pmt::pmt_dict_items(value_dict) <<std::endl;
    std::cout << std::endl << "Adding the value, keys : " <<
pmt::pmt_dict_keys(value_dict) <<std::endl;
    std::cout << std::endl << "Adding the value, values : " <<
pmt::pmt_dict_values(value_dict) <<std::endl;

Results (always empty!):

Adding the value, items : ()
Adding the value, keys : ()
Adding the value, values : ()


*Issue (3):* I post the dictionary downstream similar to the code in
"UHD_AMSG_SOURCE":

this->post_msg(0,value_dict,_msg.value,_id);

However, similarly to my previous post, the flow graph complains that this
is a wrong type:

thread[thread-per-block[8]: <gr_block msg_sourcer (9)>]:
gr_block_detail::add_item_tag key: wrong_type : ()

For these reasons, I would like to see how your code is working with these
dictionaries.

Thanks again,

Jose

On Thu, Oct 11, 2012 at 12:05 PM, Jose Torres Diaz <
[email protected]> wrote:

> Hi Josh,
>
> I've changed the .xml file. Also, I've checked the new top_block.py file
> and it is generated as follows:
>
> self.extras_uhd_amsg_source_0 =
> gr_extras.uhd_amsg_source(uhd.device_addr="172.17.3.140"
>
> However, it is still complaining when I run the flow graph:
>
>   File "/home/asrpuser/Desktop/Jose Torres Material /top_block.py", line 33
>     self.extras_uhd_amsg_source_0 =
> gr_extras.uhd_amsg_source(uhd.device_addr="add=172.17.3.140")
> SyntaxError: keyword can't be an expression
>
> Thanks,
>
> Jose.
>
>
>
> On Thu, Oct 11, 2012 at 11:44 AM, Josh Blum <[email protected]> wrote:
>
>>
>>
>> On 10/10/2012 06:09 PM, Jose Torres Diaz wrote:
>> > Hi Josh,
>> >
>> > Do you mean to change in the top_block.py?. I did this, but when I run
>> > again the top_block.py, it changes back to:
>> >
>> > gr_extras.uhd_amsg_source(device_addr="add=172.17.3.140")
>> >
>> > even if I try:
>> >
>> > gr_extras.uhd_amsg_source(uhd.device_addr="add=172.17.3.140")
>> >
>> > Thanks again Josh,
>> >
>>
>> I see. Its the xml definition. Too bad python/swig does get the
>> constructor overloads that c++ sees.
>>
>> I pushed this change to the repo:
>> > diff --git a/grc/extras_uhd_amsg_source.xml
>> b/grc/extras_uhd_amsg_source.xml
>> > index 5f8c261..5bb59f0 100644
>> > --- a/grc/extras_uhd_amsg_source.xml
>> > +++ b/grc/extras_uhd_amsg_source.xml
>> > @@ -4,7 +4,7 @@
>> >      <key>extras_uhd_amsg_source</key>
>> >      <import>from gnuradio import uhd</import>
>> >      <import>import gnuradio.extras as gr_extras</import>
>> > -    <make>gr_extras.uhd_amsg_source(device_addr=$dev_addr)</make>
>> > +    <make>gr_extras.uhd_amsg_source(uhd.device_addr($dev_addr))</make>
>> >      <param>
>> >          <name>Device Addr</name>
>> >          <key>dev_addr</key>
>>
>> -josh
>>
>> > Regards,
>> >
>> > Jose
>> >
>> > On Thu, Oct 11, 2012 at 11:24 AM, Josh Blum <[email protected]> wrote:
>> >
>> >>
>> >>
>> >> On 10/10/2012 05:51 PM, Jose Torres Diaz wrote:
>> >>> Hi All,
>> >>>
>> >>> I'm checking the functionality of the block "UHD AMsg Source" using
>> the
>> >>> USRP N210. The device is correctly detected as you can see:
>> >>>
>> >>> uhd_find_devices
>> >>> linux; GNU C++ version 4.6.1; Boost_104601;
>> UHD_003.004.003-221-g9d6f9492
>> >>>
>> >>> --------------------------------------------------
>> >>> -- UHD Device 0
>> >>> --------------------------------------------------
>> >>> Device Address:
>> >>>     type: usrp2
>> >>>     addr: 172.17.3.140
>> >>>     name:
>> >>>     serial: E0R17TCUP
>> >>>
>> >>> I've attached a screen-shot of the GRC file. When I run the flow
>> graph, I
>> >>> get the following error:
>> >>>
>> >>> Traceback (most recent call last):
>> >>>   File "/home/asrpuser/Desktop/Jose Torres Material /top_block.py",
>> line
>> >>> 54, in <module>
>> >>>     tb = top_block()
>> >>>   File "/home/asrpuser/Desktop/Jose Torres Material /top_block.py",
>> line
>> >>> 33, in __init__
>> >>>     self.extras_uhd_amsg_source_0 =
>> >>> gr_extras.uhd_amsg_source(device_addr="add=172.17.3.140")
>> >>
>> >> try gr_extras.uhd_amsg_source(uhd.device_addr("addr=172.17.3.140"))
>> >>
>> >>>   File
>> >>>
>> "/usr/local/lib/python2.7/dist-packages/gnuradio/extras/extras_swig.py",
>> >>> line 5384, in make
>> >>>     return _extras_swig.uhd_amsg_source_make(*args, **kwargs)
>> >>> TypeError: in method 'uhd_amsg_source_make', argument 1 of type
>> >>> 'uhd::device_addr_t const &'
>> >>>
>> >>> Anyone has seen an error like this before?, How can  I
>> solve/workaround
>> >>> this error?
>> >>>
>> >>> Thanks a lot for your help,
>> >>>
>> >>> Jose.
>> >>>
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> 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