mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-25 15:41:00 +00:00
daemon/binding/python: finish command_builder
This commit is contained in:
parent
4e70c29ca1
commit
01aeeea2cb
@ -1,7 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import socket
|
||||
import struct
|
||||
import btstack.command_builder
|
||||
|
||||
BTSTACK_SERVER_HOST = "localhost"
|
||||
BTSTACK_SERVER_TCP_PORT = 13333
|
||||
@ -14,15 +13,7 @@ BTSTACK_SET_POWER_MODE = 0x02
|
||||
def print_hex(data):
|
||||
print(" ".join("{:02x}".format(c) for c in data))
|
||||
|
||||
def opcode(ogf, ocf):
|
||||
return ocf | (ogf << 10)
|
||||
|
||||
# CommandBuilder - will be auto-generated later
|
||||
class CommandBuilder(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
class BTstackClient(CommandBuilder):
|
||||
class BTstackClient(btstack.command_builder.CommandBuilder):
|
||||
|
||||
#
|
||||
btstack_server_socket = None
|
||||
@ -53,11 +44,6 @@ class BTstackClient(CommandBuilder):
|
||||
header = struct.pack("<HHH", packet_type, channel, length)
|
||||
self.btstack_server_socket.sendall(header + command)
|
||||
|
||||
def btstack_set_power_mode(self, on):
|
||||
# - send: BTstackPowerUp
|
||||
cmd = struct.pack("<HBB", opcode(OGF_BTSTACK, BTSTACK_SET_POWER_MODE) ,1, 1);
|
||||
self.send_hci_command(cmd)
|
||||
|
||||
def run(self):
|
||||
print("[+] Run")
|
||||
while True:
|
||||
|
@ -21,5 +21,6 @@ btstack_client = btstack_client.BTstackClient()
|
||||
# connect to slient, register for HCI packets and power up
|
||||
btstack_client.connect()
|
||||
btstack_client.register_packet_handler(packet_handler)
|
||||
btstack_client.btstack_set_power_mode(1)
|
||||
btstack_client.BTstackSetPowerMode(1)
|
||||
btstack_client.GAPLEScanStart()
|
||||
btstack_client.run()
|
||||
|
@ -19,28 +19,31 @@ command_builder_header = \
|
||||
|
||||
import struct
|
||||
|
||||
def opcode(ogf, ocf):
|
||||
return ocf | (ogf << 10)
|
||||
|
||||
def pack24(value):
|
||||
return struct.pack("B", value & 0xff) + struct.pack("<H", value >> 8)
|
||||
|
||||
def name248(str):
|
||||
arg = str.encode('utf-8')
|
||||
return arg[:248] + bytes(248-len(arg))
|
||||
|
||||
# Command Builder
|
||||
|
||||
class CommandBuilder(object):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def pack24(value):
|
||||
return struct.pack("B", value & 0xff) + struct.pack("<H", value >> 8)
|
||||
|
||||
def name248(str):
|
||||
arg = str.encode('utf-8')
|
||||
return arg[:248] + bytes(248-len(arg))
|
||||
|
||||
def send_command(command):
|
||||
return FALSE
|
||||
|
||||
'''
|
||||
command_builder_command = '''
|
||||
def {name}({args}):
|
||||
def {name}(self, {args}):
|
||||
cmd_args = bytes()
|
||||
{args_builder}
|
||||
cmd = struct.pack("<HB", opcode({ogf}, {ocf}), len(cmd_args)) + cmd_args
|
||||
cmd = struct.pack("<HB", opcode(self.{ogf}, self.{ocf}), len(cmd_args)) + cmd_args
|
||||
return self.send_hci_command(cmd)
|
||||
'''
|
||||
|
||||
@ -170,9 +173,9 @@ def create_command_python(fout, name, ogf, ocf, format, params):
|
||||
'2' : 'cmd_args += struct.pack("<H", %s)',
|
||||
'H' : 'cmd_args += struct.pack("<H", %s)',
|
||||
'L' : 'cmd_args += struct.pack("<H", %s)',
|
||||
'3' : 'cmd_args += self.pack24(%s)',
|
||||
'3' : 'cmd_args += pack24(%s)',
|
||||
'4' : 'cmd_args += struct.pack("<H", %s)',
|
||||
'N' : 'cmd_args += self.name248(%s)',
|
||||
'N' : 'cmd_args += name248(%s)',
|
||||
'B' : 'cmd_args += %s.get_bytes()',
|
||||
'U' : 'cmd_args += %s.get_bytes()',
|
||||
'X' : 'cmd_args += %s.get_bytes()',
|
||||
@ -235,15 +238,15 @@ def mark_define_as_used(term):
|
||||
return
|
||||
defines_used.add(term)
|
||||
|
||||
def java_define_string(key):
|
||||
def python_define_string(key):
|
||||
global defines
|
||||
if key in defines:
|
||||
return ' public static final int %s = %s;\n' % (key, defines[key])
|
||||
return ' %s = %s\n' % (key, defines[key])
|
||||
else:
|
||||
return ' // defines[%s] not set\n' % key
|
||||
return ' # defines[%s] not set\n' % key
|
||||
|
||||
def java_defines_string(keys):
|
||||
return '\n'.join( map(java_define_string, sorted(keys)))
|
||||
return '\n'.join( map(python_define_string, sorted(keys)))
|
||||
|
||||
def create_command_builder(commands):
|
||||
global gen_path
|
||||
@ -261,9 +264,9 @@ def create_command_builder(commands):
|
||||
mark_define_as_used(ogf)
|
||||
mark_define_as_used(ocf)
|
||||
|
||||
# fout.write('\n # defines used\n\n')
|
||||
# for key in sorted(defines_used):
|
||||
# fout.write(java_define_string(key))
|
||||
fout.write('\n # defines used\n\n')
|
||||
for key in sorted(defines_used):
|
||||
fout.write(python_define_string(key))
|
||||
|
||||
def create_event(event_name, format, args):
|
||||
global gen_path
|
||||
|
Loading…
x
Reference in New Issue
Block a user