Re: [ctypes-users] Re: Converting between ctypes data and Python data
by Carsten Wartmann other posts by this author
Feb 15 2006 3:00AM messages near this date
[ctypes-users] Re: Converting between ctypes data and Python data
|
Re: [ctypes-users] Re: Converting between ctypes data and Python data
Thomas Heller schrieb:
> Carsten Wartmann wrote:
> > Hello,
> >
> > after yours help on this list I got my application working, in fact it
> > is working like a charm.
> >
> > However, as I looked today on my "code" I noticed that I convert the
> > ctypes structures (given back from a dll function) into python data with
> > a simple for...in...: construct.
> >
> > I guess there must be a better way?
> >
> > I am converting this:
> >
> > SPINKIT_HANDLE = c_void_p
> > class SPINKIT_DATA(Structure):
> > _fields_ = [("Device", SPINKIT_HANDLE),
> > ("Spins", c_int * 6),
> > ("Buttons", BOOL * 7)]
> > SPINKIT_DATA_SIZE = sizeof(SPINKIT_DATA)
> >
> > into this:
> >
> > class SpinkitPyData:
> > def __init__(self):
> > self.Handle = -1
> > self.Spins = [0,0,0,0,0,0]
> > self.Buttons = [False,False,False,False,False,False,False]
>
> Sorry, but I'm not sure what you're asking.
Hrm, that happens when you write in a hurry...
The funtion I am using is returning SPINKIT_DATA(Structure): and I find
that this is not easy to use in python and so I "convert" it into
SpinkitPyData and return() this to have easier acces to the results.
def SpinKitReadNonBlocking(self,data):
"Read Immediate"
datac=SPINKIT_DATA()
if
windll.spinkit.SpinKitReadImmediate(self.Handle,pointer(datac)):
data.Device=self.Handle
i=0
for spin in datac.Spins:
data.Spins[i]=spin
i=i+1
i=0
for button in datac.Buttons:
data.Buttons[i]=button
i=i+1
return(True)
else:
return(False)
What I am asking is, if there is a more elegant way to convert the
SPINKIT_DATA(Structure) into something more pythonesque like my
SpinkitPyData which I think is a nice representation and easy to access
inside python.
Hope this makes it more clear?
Regards,
Carsten
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
ctypes-users mailing list
ctypes-users@[...].net
https://lists.sourceforge.net/lists/listinfo/ctypes-users
Thread:
Carsten Wartmann
Thomas Heller
Carsten Wartmann
Thomas Heller
Carsten Wartmann
|