I'm assuming you mean PyArg_Parse and PyArg_ParseTuple? I couldn't find
any docs on Py_Parse or Py_ParseTuple...
Anyway, maybe something like this might work for you (portions taken
from example in
http://elmer.sourceforge.net/PyCon04...pycon04.html):
....
PyObject* evalModule;
PyObject* evalDict;
PyObject* evalVal;
PyObject* tupleItem;
unsigned char* my_c_array;
int i;
int tupleSize;
PyRun_SimpleString( "result = pyFuncWhichReadsDevice()" )
evalModule = PyImport_AddModule( (char*)"__main__" );
evalDict = PyModule_GetDict( evalModule );
evalVal = PyDict_GetItemString( evalDict, "result" );
if( evalVal == NULL ) {
PyErr_Print();
exit( 1 );
} else {
if( !PyTuple_Check( evalVal ) ) {
printf( "Error: pyFuncWhichReadsDevice() did not return a tuple" );
exit( 1 );
}
my_c_array = (unsigned char*) malloc( sizeof( unsigned char ) *
PyTuple_Size( evalVal ) );
tupleSize = PyTuple_Size( evalVal );
for( i=0; i < tupleSize; i++ ) {
tupleItem = PyTuple_GetItem( evalVal, i );
if( !PyInt_Check( tupleItem ) ) {
printf( "Error: pyFuncWhichReadsDevice() returned tuple with
non-int value" );
exit( 1 );
}
my_c_array[i] = (unsigned char) PyInt_AsLong( tupleItem );
}
}
....
I have no idea if this will work for you since I haven't even tried
to compile it...consider it pseudo-code.
-Rick.
yo***********@hotmail.com wrote:
Hi All ,
Bit of a problem with Py_Parse or Py_ParseTuple ?
I have a python script that reads a sector of flash in an embedded device.
it returns the value of each byte within the sector as a tuple.
i.e. [255,255,255,255,255,255,255, .......etc etc for the whole sector !
We are using this script to read whats currently in any sector.
No problems there.
Now I need to call our script from C.
I want to copy each of the bytes within the sector into an C unsigned char *array
Is there any way to do this using Py_ParseTuple or Py_Parse ???
something like this for instance ??? ......
Py_ParseTuple[pres,"??",&my_c_array]
so now my_c_array[0] = 255 ,my_c_array[1] = 255 ,my_c_array[2] = 255 , etc etc
Thanks for the help !