Just for the sake of anybody else who finds this mail thread when searching.
Check out the file 'pmt_to_python.py' which resides at 'gnuradio-runtime/python/pmt/pmt_to_python.py' (the location pre-3.7 is different). The two useful functions are: pmt.to_pmt - Converts a python object to a PMT object. pmt.python_to_pmt.python_to_pmt - Converts a PMT object to a python object. It can handle booleans, strings, integers, longs, floats, complex numbers, dictionaries, lists and tuples. I added a mention of these functions to the wiki. On Thu, Apr 11, 2013 at 11:27 AM, Ben Reynwar <[email protected]> wrote: > Yes, that's perfect. Thanks. > > On Thu, Apr 11, 2013 at 10:58 AM, Martin Braun (CEL) > <[email protected]> wrote: >> Hi Ben, >> >> doesn't pmt.to_pmt(LIST) do what you want? >> >> Cheers, >> MB >> >> On Thu, Apr 11, 2013 at 10:03:21AM -0700, Ben Reynwar wrote: >>> Great, thanks. I'm only using it for QA code so setting the elements >>> one by one like you suggest will work fine. >>> >>> On Thu, Apr 11, 2013 at 9:52 AM, Martin Luelf <[email protected]> wrote: >>> >> Hi all, >>> >> >>> >> Is there a way to create a uniform PMT vector from python? >>> >> >>> >> I can use, for example, 'pmt.make_c32vector(length, value)' to create >>> >> a vector where each element is 'value' but I don't see a way to modify >>> >> these values from python. >>> >> >>> >> If there isn't, are there any objections to overloading these >>> >> functions to take std::vectors as input so that we can pass in lists >>> >> from python? >>> >> >>> >> Cheers, >>> >> Ben >>> > >>> > Hi, >>> > >>> > I remember, I wasn't sure about the supposed way of doing that either for >>> > a u8vector. Finally I used the set method to set the individual elements >>> > like this: >>> > ------ >>> > # elements as list >>> > values = (0xA1, ...) >>> > >>> > # create pmt vector with one default value for all elements >>> > pmtvector = pmt.pmt_make_u8vector(len(values), 0x00) >>> > >>> > # set the individual elements >>> > for i in xrange(len(values)) : >>> > pmt.pmt_u8vector_set(pmtvector, i, values[i]) >>> > ------ >>> > >>> > Not nice, but it works for me. Although I agree that passing a list at >>> > construction would be very handy. >>> > >>> > Yours >>> > Martin >>> > >>> > >>> > _______________________________________________ >>> > 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 >> >> -- >> Karlsruhe Institute of Technology (KIT) >> Communications Engineering Lab (CEL) >> >> Dipl.-Ing. Martin Braun >> Research Associate >> >> Kaiserstraße 12 >> Building 05.01 >> 76131 Karlsruhe >> >> Phone: +49 721 608-43790 >> Fax: +49 721 608-46071 >> www.cel.kit.edu >> >> KIT -- University of the State of Baden-Württemberg and >> National Laboratory of the Helmholtz Association >> >> _______________________________________________ >> 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
