Byte-Array to String

Robert Rawlins - Think Blue robert.rawlins at thinkbluemedia.co.uk
Thu Apr 19 11:03:09 EDT 2007


Thanks for getting back to me on this Tim, *pauses pulling his hair out for
a moment.

I'm back on this damn API and its driving me crazy I get three options
really for returning a service record from the API, they look like this.

		array{uint32} GetRemoteServiceHandles(string address, string
match)

			This method will request the SDP database of a
remote
			device and retrieve the service record handles. To
			request service browse send an empty match string.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.InProgress
	
org.bluez.Error.ConnectionAttemptFailed
					 org.bluez.Error.Failed

		array{byte} GetRemoteServiceRecord(string address, uint32
handle)

			This method will request the SDP database of a
remote
			device for a service record and return the binary
			stream of it.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.InProgress
					 org.bluez.Error.Failed

		string GetRemoteServiceRecordAsXML(string address, uint32
handle)

			This method will request the SDP database of a
remote
			device for a service record and return its data in
XML
			format.

			Possible errors: org.bluez.Error.InvalidArguments
					 org.bluez.Error.InProgress
					 org.bluez.Error.Failed

The first method, when I print its results just gives me
dbus.Array([dbus.UInt32(65547L)], signature=dbus.Signature('u')) the method
gives me that byte array and the third doesn't appear to work at all :-D

Unfortunately nowhere seems to document what exactly those arrays contain,
so I'm trying to crack one open and find out, but as you can see, I'm not
having much luck. Perhaps this is a DBus thing, they do have a mailing list
so I'll give them a go in a while.

If you have any brain waves let me know mate, I'll add another beer to the
tab,

Rob


-----Original Message-----
From: python-list-bounces+robert.rawlins=thinkbluemedia.co.uk at python.org
[mailto:python-list-bounces+robert.rawlins=thinkbluemedia.co.uk at python.org]
On Behalf Of Tim Golden
Sent: 19 April 2007 15:54
Cc: python-list at python.org
Subject: Re: Byte-Array to String

Robert Rawlins - Think Blue wrote:
> I have a byte array passed to me by dbus and I'm looking to convert it
into
> a string? Is that possible? Sorry for seeming like a putts with these
> questions, I'm not used to all these complex data types :-D
> 
> dbus.Array([dbus.Byte(54), dbus.Byte(0), dbus.Byte(24), dbus.Byte(9),
> dbus.Byte(0), dbus.Byte(0), dbus.Byte(10), dbus.Byte(0), dbu
> s.Byte(0), dbus.Byte(0), dbus.Byte(0), dbus.Byte(9), dbus.Byte(0),
> dbus.Byte(1), dbus.Byte(53), dbus.Byte(3), dbus.Byte(25), dbus.
> Byte(16), dbus.Byte(0), dbus.Byte(9), dbus.Byte(2), dbus.Byte(0),
> dbus.Byte(53), dbus.Byte(3), dbus.Byte(9), dbus.Byte(1), dbus.By
> te(1)], signature=dbus.Signature('y'))

No idea, but what happens when you iterate over it?

for i in array_thingy:
   print i

Or does it support the buffer interface?

for i in buffer (array_thingy):
   print i

If it did then you can at least get access to its
innards and construct some kind of string representation.
I've no idea what the numbers are supposed to represent,
so I don't know what "convert it to a string" is likely
to imply. This looks rather more like a dbus question than
a strictly Python one. Is there a DBus mailing list or
what-have-you?

TJG
-- 
http://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list