daemon/binding/python: improve event pretty print

This commit is contained in:
Matthias Ringwald 2018-11-20 21:58:12 +01:00
parent a43b5e8717
commit c81841c709
2 changed files with 15 additions and 4 deletions

View File

@ -18,8 +18,13 @@ class BD_ADDR(object):
return
# list comprehension
self.addr = bytes([int(a,16) for a in parts])
if isinstance(addr, bytes):
elif isinstance(addr, bytes):
self.addr = addr
elif isinstance(addr, bytearray):
self.addr = addr
else:
print('cannot use for bdaddr, len %u' % len(addr))
print(addr)
def get_bytes(self):
data = bytearray(self.addr)

View File

@ -250,7 +250,7 @@ def create_event(fout, event_name, format, args):
'L' : 'return struct.unpack("<H", self.payload[{offset} : {offset}+2])',
'3' : 'return btstack.btstack_types.unpack24(self.payload[{offset}:3])',
'4' : 'return struct.unpack("<I", self.payload[{offset} : {offset}+4])',
'B' : 'return btstack.btstack_types.BD_ADDR(self.payload[{offset}:6])',
'B' : 'data = bytearray(self.payload[{offset}:{offset}+6]); data.reverse(); return btstack.btstack_types.BD_ADDR(data)',
'X' : 'return btstack.btstack_types.GATTService(self.payload[{offset}:20])',
'Y' : 'return btstack.btstack_types.GATTCharacteristic(self.payload[{offset}:24])',
'Z' : 'return btstack.btstack_types.GATTCharacteristicDescriptor(self.payload[{offset}:18])',
@ -288,10 +288,16 @@ def create_event(fout, event_name, format, args):
getters += event_getter.format(arg.lower(), access)
offset += size
to_string_args = ''
for arg in args:
for f, arg in zip(format, args):
to_string_args += ' repr += ", %s = "\n' % arg
if f in ['1','2','3','4','H']:
to_string_args += ' repr += hex(self.get_%s())\n' % arg.lower()
elif f in ['R', 'V', 'D', 'Q']:
to_string_args += ' repr += hex_string(self.get_%s())\n' % arg.lower()
else:
to_string_args += ' repr += str(self.get_%s())\n' % arg.lower()
to_string_method = event_to_string.format(event_name, to_string_args)
fout.write('# %s - %s' % (event_name, format))
fout.write(event_template.format(event_name, getters, to_string_method))
def event_supported(event_name):