I use dbus to communicate two programs. One creates a large image, and then sends it another program for further processing. I pass the image as a ByteArray.
With 2000x2000 images my program works, but with 4000x4000 it crasses with:
process 2283: arguments to dbus_message_iter_append_fixed_array() were
incorrect,assertion "n_elements <= DBUS_MAXIMUM_ARRAY_LENGTH / _dbus_type_get_alignment
(element_type)" failed in file dbus-message.c line 2628.
I understand that this means that I am passing an array more than allowed. Is there any other way to transfer big data to dbus?
This is the code snippet I'm using:
handle = StringIO()
hdulist.writeto(handle)
hdub = dbus.ByteArray(handle.getvalue())
self.dbi.store_image(hdub)
At the other end, I have something like
def store_image(self, bindata):
handle = StringIO.StringIO(bindata)
hdulist = pyfits.open(handle)
source
share