accessing BLT vectors from C
genehilton at my-deja.com
genehilton at my-deja.com
Fri Apr 21 15:11:47 EDT 2000
Has anyone out there written anything that will enable me to access
the BLT C api. I am using BLT as a part of a data acquisition
system. It works great, but filling the vectors is really slow in
python. I wrote a python module in C to use the Blt c api, but it can't
find the vectors I created with Pmw.Blt.Vector(). I can access (in the
c module) vectors that I create in the c-module. This must be some sort
of TCL thing I don't understand. Here is a snippet from the C module
if (!PyArg_ParseTuple(args, "OO",&master,&bltobj)) return NULL;
/* get the name of the vector - PMW stores it as the repr. */
bltobjname=PyObject_Str(bltobj);
if (!bltobjname) return NULL;
bltname=PyString_AsString(bltobjname);
if (!bltname) return NULL;
printf("%s\n",bltname);
/* get the interpreter from an argument (for now) */
interp=((TkappObject *)master)->interp;
/* this doesn't work (returns a 0) */
printf("%d\n",Blt_VectorExists(interp,bltname));
printf("%d\n",Blt_CreateVector(interp,"myvec",1,&vec));
/* this works (returns a 1) */
printf("%d\n",Blt_VectorExists(interp,"myvec"));
I call it with the following python code
import Tkinter
import Pmw
import mymod
v=Pmw.Blt.Vector(1)
mymod.myroutine(master.tk,v)
v=Pmw.Blt.Vector(1)
I get an output like
0 (couldn't find it - v created in python)
0 (created ok in c)
1 (found the one created in c)
Any pointers would be real helpful
Gene Hilton
hilton at boulder.nist.gov
Sent via Deja.com http://www.deja.com/
Before you buy.
More information about the Python-list
mailing list