Rami Chowdhury, 29.06.2010 20:56:
On Tuesday 29 June 2010 05:24:26 Zohair M. Abu Shaban wrote:
From: rami.chowdh...@gmail.com
On Monday 28 June 2010 12:46:13 Zohair M. Abu Shaban wrote:
I have this python function defined as:

def set_time_at_next_pps(self, *args, **kwargs):
      """set_time_at_next_pps(self, usrp2::time_spec_t time_spec)

->  bool"""

it was generated to do the same function as the c++:

"Generated" by what?


set_time_at_next_pps(usrp2::time_spec_t(0, 0))

I am new to python and don't know hoe to use this python syntax.

  Any hint or help please?

Can you give us a little more information? What do you need to use it
for?

I am using hardware that uses some libraries on Linux.
>>
>>     def set_time_at_next_pps(*args, **kwargs):
         """set_time_at_next_pps(self, usrp2::time_spec_t time_spec) ->
             bool
>>          """
>>          return _usrp2.usrp2_base_set_time_at_next_pps(*args, **kwargs)

This is actually a definition of a function in C++ transformed to python.
It receives a structure parameter and returns boolean the structure is
defined like this: in a library called libusrp2.so and the header file is
usrp2.h

   typedef struct time_spec{
       uint32_t secs;
       uint32_t ticks;
       time_spec(void){
         secs = ~0;
         ticks = ~0;
       }
       time_spec(uint32_t new_secs, uint32_t new_ticks = 0){
         secs = new_secs;
         ticks = new_ticks;
       }
   } time_spec_t;

in my python code I wrote:
zeroise=usrp2.time_spec_t(0,0)
self.$(id).set_time_at_next_pps(zeroise)

The error Iam receiveing is :
     zeroise=usrp2.time_spec_t(0,0)
AttributeError: 'module' object has no attribute 'time_spec_t'

What is "usrp2"? The "generated" module?


Thank you for the details. Could you let me know how you're accessing the C++
code? Are you using ctypes? Are you using a Python extension module that wraps
the C++ code? Some other method?

These are the right questions.


MY PROBLEM THAT I NEED HELP FOR IS:
1- Am I using the structure correctly?
2- Am I invoking the python definition correctly?

I'd guess not, since you're getting an error ;-)

Try "dir(usrp2)" or "help(usrp2)", that will tell you what the module provides.

If you're after wrapping the library yourself, take a look at ctypes and Cython. Depending on the requirements, either of the two is a good choice.

Stefan

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to