Hi
I have a bit of issue for serializing in C and deserializing it in python,
I defined a message to carry data, serialize it into array in C, then send
it over to python (via ctype).
I noticed that since the serialized array may contains 0 (zero) values, It
is better of to send as array of int to python,
otherwise truncated message would be transferred ( python expects strings
are NULL terminated ). In this case
when I receive an array of int values in python, I don't know how to
reconstruct a string from those values and feed it to ParseFromString()
because ParseFromString() does not accept array_of_int, because it does not
have len(). I can not build a string in python especially some of the
values are negative and python does not let me convert negative value to
char.
Any comment ?
Codes:
message siftOut{
message keypoint {
required float x = 1;
repeated float descr= 2 [packed=true];
}
repeated keypoint keypoints= 1;
} ;
When I filled a message such as:
siftOut vFrmDescr;
siftOut_keypoint *frmDescr = vFrmDescr.add_keypoints();
int l ;
frmDescr-set_x ( (float) k - x );
for (l = 0 ; l 128 ; ++l) {
frmDescr-add_descr ( (512.0 * descr [l]) ) ;
}
Then
char * charOut = new char[vFrmDescr.ByteSize()];
vFrmDescr.SerializeToArray( charOut , vFrmDescr.ByteSize());
and send it to python
in python
LIB = cdll[_loc]
LIB.protoBufFunc.argtypes =[c_char_p , c_int32 ]
LIB.protoBufFunc.restype = POINTER(c_int32)
stDescriptors = LIB.protoBufFunc( A sample dataa in string
format , 50 );
Now how can I use parsefromString() in python to read stDescriptors ?
Appreciate your help in advance.
Regards
Mani
--
You received this message because you are subscribed to the Google Groups
Protocol Buffers group.
To unsubscribe from this group and stop receiving emails from it, send an email
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.