Python report typeError of argument for my block

Hello,

I wrote a signal block whose constructor has an argument of type
“uint64_t”. But when in python it is constructed, the error is reported
as TypeErrorL in method ‘myblock’, argument 1 of type ‘uint64_t’.

Then I changed the uint64_t to unsigned long long in my C++ code, but
the
python still report TypeError for ‘unsigned long long’.

I am thinking that SWIG can not recognize the uint64_t and unsigned long
long, so I need to do something like type mapping , but not know how to
do
it.
Is there any example that I can follow?

Thanks

Alex,
Dreams can come true just believe.

On 11/15/2012 06:44 PM, Alex Z. wrote:

long, so I need to do something like type mapping , but not know how to do
it.
Is there any example that I can follow?

It should be possible. Try adding %include <stdint.i> at the top of your
swig file.

-josh

Thanks Josh,

Just found that my C++ interface is using type of uint64_t while I
passed
the data of time_t in python. And the python/SWIG cannot convert the
time_t
to uint64_t automatically, unlike in C++…

Changed the C++ interface to time_t and make the type conversion within
the
C++ code. The constructor works in python now.

But we do need to pay attention when c++ types is not recognized in
python,
assuming your suggestion is a solution. I will try this later for
possible
case.

On Thu, Nov 15, 2012 at 9:20 PM, Josh B. [email protected] wrote:

python still report TypeError for ‘unsigned long long’.


Discuss-gnuradio mailing list
[email protected]
Discuss-gnuradio Info Page

Alex,
Dreams can come true just believe.