aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Boutier <charliebout@google.com>2021-10-05 16:35:16 +0000
committerCharlie Boutier <charliebout@google.com>2021-10-06 14:03:19 +0000
commita4384bca1bb60592efb54c33b445aed08f1b1f0b (patch)
tree6d5ea4a1daaa172d54006254855a873d3c8005fb
parent6bacc70527b556ec9479356e5ddd14b31e40d420 (diff)
downloadmmi2grpc-a4384bca1bb60592efb54c33b445aed08f1b1f0b.tar.gz
interact: fundation
Change-Id: If5ee695f46ce84e5fca6c54a9399e8ee008a5840
-rw-r--r--.gitignore3
-rw-r--r--__init__.py0
-rwxr-xr-xbuild.sh18
-rw-r--r--interact/__init__.py9
-rw-r--r--interact/l2cap.py59
-rw-r--r--lib/__init__.py0
-rw-r--r--lib/proto/__init__.py0
-rw-r--r--lib/proto/common_pb2.py304
-rw-r--r--lib/proto/common_pb2_grpc.py4
-rw-r--r--lib/proto/l2cap_pb2.py1017
-rw-r--r--lib/proto/l2cap_pb2_grpc.py533
-rw-r--r--lib/proto/neighbor_pb2.py481
-rw-r--r--lib/proto/neighbor_pb2_grpc.py267
-rw-r--r--lib/proto/rootservice_pb2.py288
-rw-r--r--lib/proto/rootservice_pb2_grpc.py161
-rw-r--r--proto/common.proto37
-rw-r--r--proto/l2cap.proto129
-rw-r--r--proto/neighbor.proto61
-rw-r--r--proto/rootservice.proto32
19 files changed, 3403 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bbf3300
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+virtualenv
+out/
+__pycache__ \ No newline at end of file
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/__init__.py
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..d645542
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+
+PYTHON_OUT="lib"
+PROTO_FOLDER="proto"
+
+mkdir ${PYTHON_OUT}
+
+python3 -m grpc_tools.protoc \
+ -I . \
+ --python_out=${PYTHON_OUT} \
+ --grpc_python_out=${PYTHON_OUT} \
+ "${PROTO_FOLDER}/l2cap.proto" \
+ "${PROTO_FOLDER}/neighbor.proto" \
+ "${PROTO_FOLDER}/common.proto" \
+ "${PROTO_FOLDER}/rootservice.proto"
+
+touch "${PYTHON_OUT}/__init__.py"
+touch "${PYTHON_OUT}/proto/__init__.py" \ No newline at end of file
diff --git a/interact/__init__.py b/interact/__init__.py
new file mode 100644
index 0000000..9b5830a
--- /dev/null
+++ b/interact/__init__.py
@@ -0,0 +1,9 @@
+import grpc
+from . import l2cap
+
+GRPC_PORT = 8999
+
+def run(profile: str, interaction_id: str, pts_addr: bytes):
+ channel = grpc.insecure_channel(f'localhost:{GRPC_PORT}')
+ if profile == "L2CAP":
+ l2cap.interact(channel, interaction_id, pts_addr) \ No newline at end of file
diff --git a/interact/l2cap.py b/interact/l2cap.py
new file mode 100644
index 0000000..c31e042
--- /dev/null
+++ b/interact/l2cap.py
@@ -0,0 +1,59 @@
+import os
+
+from grpc import Channel
+from lib.proto import l2cap_pb2_grpc
+from lib.proto import neighbor_pb2_grpc
+
+from lib.proto.common_pb2 import BluetoothAddress
+from lib.proto.l2cap_pb2 import CloseChannelRequest, OpenChannelRequest, SetEnableDynamicChannelRequest, RetransmissionFlowControlMode, DynamicChannelPacket, OpenChannelRequest
+from lib.proto.neighbor_pb2 import EnableMsg
+PSM = 1 # TODO: Add it to either utils.py or config file
+
+
+def interact(channel: Channel, interaction_id: str, pts_addr: bytes):
+ print(f'mmi_id: {interaction_id}')
+ addr = BluetoothAddress(address=pts_addr)
+ l2cap = l2cap_pb2_grpc.L2capClassicModuleFacadeStub(channel)
+ neighbor = neighbor_pb2_grpc.NeighborFacadeStub(channel)
+ if interaction_id == "MMI_TESTER_ENABLE_CONNECTION":
+ neighbor.EnablePageScan(EnableMsg(enabled=True))
+ l2cap.SetDynamicChannel(
+ SetEnableDynamicChannelRequest(
+ psm=PSM,
+ enable=True,
+ retransmission_mode=RetransmissionFlowControlMode.BASIC
+ )
+ )
+ if interaction_id == "MMI_IUT_SEND_CONFIG_REQ":
+ pass
+ if interaction_id == "MMI_IUT_SEND_L2CAP_DATA":
+ payload = b'\x00' + os.urandom(40) + b'\x00'
+ l2cap.SendDynamicChannelPacket(
+ DynamicChannelPacket(
+ remote=addr,
+ psm=PSM,
+ payload=payload
+ )
+ )
+ if interaction_id == "MMI_IUT_INITIATE_ACL_CONNECTION":
+ l2cap.SetDynamicChannel(
+ SetEnableDynamicChannelRequest(
+ psm=PSM,
+ enable=True,
+ retransmission_mode=RetransmissionFlowControlMode.BASIC
+ )
+ )
+ l2cap.OpenChannel(
+ OpenChannelRequest(
+ remote=addr,
+ psm=PSM,
+ mode=RetransmissionFlowControlMode.BASIC
+ )
+ )
+ if interaction_id == ("MMI_IUT_DISABLE_CONNECTION" or "MMI_IUT_SEND_DISCONNECT_RSP"):
+ print(f'Sending CLOSE CHANNEL')
+ l2cap.CloseChannel(CloseChannelRequest(psm=PSM))
+ if interaction_id == "MMI_IUT_SEND_ACL_DISCONNECTON":
+ pass
+ if interaction_id == "MMI_IUT_SEND_CONFIG_RSP":
+ pass
diff --git a/lib/__init__.py b/lib/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lib/__init__.py
diff --git a/lib/proto/__init__.py b/lib/proto/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lib/proto/__init__.py
diff --git a/lib/proto/common_pb2.py b/lib/proto/common_pb2.py
new file mode 100644
index 0000000..6d55382
--- /dev/null
+++ b/lib/proto/common_pb2.py
@@ -0,0 +1,304 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/common.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='proto/common.proto',
+ package='bluetooth.facade',
+ syntax='proto3',
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_pb=b'\n\x12proto/common.proto\x12\x10\x62luetooth.facade\"\x07\n\x05\x45mpty\"\x17\n\x04\x44\x61ta\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\"#\n\x10\x42luetoothAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0c\"\x89\x01\n\x18\x42luetoothAddressWithType\x12\x33\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\".bluetooth.facade.BluetoothAddress\x12\x38\n\x04type\x18\x02 \x01(\x0e\x32*.bluetooth.facade.BluetoothAddressTypeEnum*\x8a\x01\n\x18\x42luetoothAddressTypeEnum\x12\x19\n\x15PUBLIC_DEVICE_ADDRESS\x10\x00\x12\x19\n\x15RANDOM_DEVICE_ADDRESS\x10\x01\x12\x1b\n\x17PUBLIC_IDENTITY_ADDRESS\x10\x02\x12\x1b\n\x17RANDOM_IDENTITY_ADDRESS\x10\x03*\x9f\x01\n\x1b\x42luetoothOwnAddressTypeEnum\x12\x1d\n\x19USE_PUBLIC_DEVICE_ADDRESS\x10\x00\x12\x1d\n\x19USE_RANDOM_DEVICE_ADDRESS\x10\x01\x12 \n\x1cRESOLVABLE_OR_PUBLIC_ADDRESS\x10\x02\x12 \n\x1cRESOLVABLE_OR_RANDOM_ADDRESS\x10\x03*l\n\x1c\x42luetoothPeerAddressTypeEnum\x12%\n!PUBLIC_DEVICE_OR_IDENTITY_ADDRESS\x10\x00\x12%\n!RANDOM_DEVICE_OR_IDENTITY_ADDRESS\x10\x01\x62\x06proto3'
+)
+
+_BLUETOOTHADDRESSTYPEENUM = _descriptor.EnumDescriptor(
+ name='BluetoothAddressTypeEnum',
+ full_name='bluetooth.facade.BluetoothAddressTypeEnum',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='PUBLIC_DEVICE_ADDRESS', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='RANDOM_DEVICE_ADDRESS', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='PUBLIC_IDENTITY_ADDRESS', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='RANDOM_IDENTITY_ADDRESS', index=3, number=3,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=252,
+ serialized_end=390,
+)
+_sym_db.RegisterEnumDescriptor(_BLUETOOTHADDRESSTYPEENUM)
+
+BluetoothAddressTypeEnum = enum_type_wrapper.EnumTypeWrapper(_BLUETOOTHADDRESSTYPEENUM)
+_BLUETOOTHOWNADDRESSTYPEENUM = _descriptor.EnumDescriptor(
+ name='BluetoothOwnAddressTypeEnum',
+ full_name='bluetooth.facade.BluetoothOwnAddressTypeEnum',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='USE_PUBLIC_DEVICE_ADDRESS', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='USE_RANDOM_DEVICE_ADDRESS', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='RESOLVABLE_OR_PUBLIC_ADDRESS', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='RESOLVABLE_OR_RANDOM_ADDRESS', index=3, number=3,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=393,
+ serialized_end=552,
+)
+_sym_db.RegisterEnumDescriptor(_BLUETOOTHOWNADDRESSTYPEENUM)
+
+BluetoothOwnAddressTypeEnum = enum_type_wrapper.EnumTypeWrapper(_BLUETOOTHOWNADDRESSTYPEENUM)
+_BLUETOOTHPEERADDRESSTYPEENUM = _descriptor.EnumDescriptor(
+ name='BluetoothPeerAddressTypeEnum',
+ full_name='bluetooth.facade.BluetoothPeerAddressTypeEnum',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='PUBLIC_DEVICE_OR_IDENTITY_ADDRESS', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='RANDOM_DEVICE_OR_IDENTITY_ADDRESS', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=554,
+ serialized_end=662,
+)
+_sym_db.RegisterEnumDescriptor(_BLUETOOTHPEERADDRESSTYPEENUM)
+
+BluetoothPeerAddressTypeEnum = enum_type_wrapper.EnumTypeWrapper(_BLUETOOTHPEERADDRESSTYPEENUM)
+PUBLIC_DEVICE_ADDRESS = 0
+RANDOM_DEVICE_ADDRESS = 1
+PUBLIC_IDENTITY_ADDRESS = 2
+RANDOM_IDENTITY_ADDRESS = 3
+USE_PUBLIC_DEVICE_ADDRESS = 0
+USE_RANDOM_DEVICE_ADDRESS = 1
+RESOLVABLE_OR_PUBLIC_ADDRESS = 2
+RESOLVABLE_OR_RANDOM_ADDRESS = 3
+PUBLIC_DEVICE_OR_IDENTITY_ADDRESS = 0
+RANDOM_DEVICE_OR_IDENTITY_ADDRESS = 1
+
+
+
+_EMPTY = _descriptor.Descriptor(
+ name='Empty',
+ full_name='bluetooth.facade.Empty',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=40,
+ serialized_end=47,
+)
+
+
+_DATA = _descriptor.Descriptor(
+ name='Data',
+ full_name='bluetooth.facade.Data',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='payload', full_name='bluetooth.facade.Data.payload', index=0,
+ number=1, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=49,
+ serialized_end=72,
+)
+
+
+_BLUETOOTHADDRESS = _descriptor.Descriptor(
+ name='BluetoothAddress',
+ full_name='bluetooth.facade.BluetoothAddress',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='address', full_name='bluetooth.facade.BluetoothAddress.address', index=0,
+ number=1, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=74,
+ serialized_end=109,
+)
+
+
+_BLUETOOTHADDRESSWITHTYPE = _descriptor.Descriptor(
+ name='BluetoothAddressWithType',
+ full_name='bluetooth.facade.BluetoothAddressWithType',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='address', full_name='bluetooth.facade.BluetoothAddressWithType.address', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='type', full_name='bluetooth.facade.BluetoothAddressWithType.type', index=1,
+ number=2, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=112,
+ serialized_end=249,
+)
+
+_BLUETOOTHADDRESSWITHTYPE.fields_by_name['address'].message_type = _BLUETOOTHADDRESS
+_BLUETOOTHADDRESSWITHTYPE.fields_by_name['type'].enum_type = _BLUETOOTHADDRESSTYPEENUM
+DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
+DESCRIPTOR.message_types_by_name['Data'] = _DATA
+DESCRIPTOR.message_types_by_name['BluetoothAddress'] = _BLUETOOTHADDRESS
+DESCRIPTOR.message_types_by_name['BluetoothAddressWithType'] = _BLUETOOTHADDRESSWITHTYPE
+DESCRIPTOR.enum_types_by_name['BluetoothAddressTypeEnum'] = _BLUETOOTHADDRESSTYPEENUM
+DESCRIPTOR.enum_types_by_name['BluetoothOwnAddressTypeEnum'] = _BLUETOOTHOWNADDRESSTYPEENUM
+DESCRIPTOR.enum_types_by_name['BluetoothPeerAddressTypeEnum'] = _BLUETOOTHPEERADDRESSTYPEENUM
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {
+ 'DESCRIPTOR' : _EMPTY,
+ '__module__' : 'proto.common_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.Empty)
+ })
+_sym_db.RegisterMessage(Empty)
+
+Data = _reflection.GeneratedProtocolMessageType('Data', (_message.Message,), {
+ 'DESCRIPTOR' : _DATA,
+ '__module__' : 'proto.common_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.Data)
+ })
+_sym_db.RegisterMessage(Data)
+
+BluetoothAddress = _reflection.GeneratedProtocolMessageType('BluetoothAddress', (_message.Message,), {
+ 'DESCRIPTOR' : _BLUETOOTHADDRESS,
+ '__module__' : 'proto.common_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.BluetoothAddress)
+ })
+_sym_db.RegisterMessage(BluetoothAddress)
+
+BluetoothAddressWithType = _reflection.GeneratedProtocolMessageType('BluetoothAddressWithType', (_message.Message,), {
+ 'DESCRIPTOR' : _BLUETOOTHADDRESSWITHTYPE,
+ '__module__' : 'proto.common_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.BluetoothAddressWithType)
+ })
+_sym_db.RegisterMessage(BluetoothAddressWithType)
+
+
+# @@protoc_insertion_point(module_scope)
diff --git a/lib/proto/common_pb2_grpc.py b/lib/proto/common_pb2_grpc.py
new file mode 100644
index 0000000..2daafff
--- /dev/null
+++ b/lib/proto/common_pb2_grpc.py
@@ -0,0 +1,4 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
diff --git a/lib/proto/l2cap_pb2.py b/lib/proto/l2cap_pb2.py
new file mode 100644
index 0000000..f0bdde7
--- /dev/null
+++ b/lib/proto/l2cap_pb2.py
@@ -0,0 +1,1017 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/l2cap.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import common_pb2 as proto_dot_common__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='proto/l2cap.proto',
+ package='bluetooth.l2cap.classic',
+ syntax='proto3',
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_pb=b'\n\x11proto/l2cap.proto\x12\x17\x62luetooth.l2cap.classic\x1a\x12proto/common.proto\"\xae\x01\n\"LinkSecurityInterfaceCallbackEvent\x12\x33\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\".bluetooth.facade.BluetoothAddress\x12S\n\nevent_type\x18\x02 \x01(\x0e\x32?.bluetooth.l2cap.classic.LinkSecurityInterfaceCallbackEventType\")\n\x16RegisterChannelRequest\x12\x0f\n\x07\x63hannel\x18\x01 \x01(\r\"M\n\x17\x43onnectionCompleteEvent\x12\x32\n\x06remote\x18\x01 \x01(\x0b\x32\".bluetooth.facade.BluetoothAddress\"Z\n\x14\x43onnectionCloseEvent\x12\x32\n\x06remote\x18\x01 \x01(\x0b\x32\".bluetooth.facade.BluetoothAddress\x12\x0e\n\x06reason\x18\x02 \x01(\r\"\x9b\x01\n\x12OpenChannelRequest\x12\x32\n\x06remote\x18\x01 \x01(\x0b\x32\".bluetooth.facade.BluetoothAddress\x12\x0b\n\x03psm\x18\x02 \x01(\r\x12\x44\n\x04mode\x18\x03 \x01(\x0e\x32\x36.bluetooth.l2cap.classic.RetransmissionFlowControlMode\"\"\n\x13\x43loseChannelRequest\x12\x0b\n\x03psm\x18\x01 \x01(\r\"`\n\x12\x43hannelSignalEvent\x12\x0b\n\x03\x63id\x18\x01 \x01(\r\x12=\n\x04type\x18\x02 \x01(\x0e\x32/.bluetooth.l2cap.classic.ChannelSignalEventType\"`\n\x15SendL2capPacketResult\x12G\n\x0bresult_type\x18\x01 \x01(\x0e\x32\x32.bluetooth.l2cap.classic.SendL2capPacketResultType\"R\n\x0bL2capPacket\x12\r\n\x03psm\x18\x01 \x01(\rH\x00\x12\x13\n\tfixed_cid\x18\x02 \x01(\rH\x00\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\x42\x0e\n\x0c\x63hannel_type\"\x92\x01\n\x1eSetEnableDynamicChannelRequest\x12\x0b\n\x03psm\x18\x01 \x01(\r\x12\x0e\n\x06\x65nable\x18\x02 \x01(\x08\x12S\n\x13retransmission_mode\x18\x03 \x01(\x0e\x32\x36.bluetooth.l2cap.classic.RetransmissionFlowControlMode\"h\n\x14\x44ynamicChannelPacket\x12\x32\n\x06remote\x18\x01 \x01(\x0b\x32\".bluetooth.facade.BluetoothAddress\x12\x0b\n\x03psm\x18\x02 \x01(\r\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\"6\n\x17SetTrafficPausedRequest\x12\x0e\n\x06paused\x18\x01 \x01(\x08\x12\x0b\n\x03psm\x18\x02 \x01(\r\",\n\x1cGetChannelQueueDepthResponse\x12\x0c\n\x04size\x18\x01 \x01(\r*\xd0\x01\n&LinkSecurityInterfaceCallbackEventType\x12\x10\n\x0cON_CONNECTED\x10\x00\x12\x13\n\x0fON_DISCONNECTED\x10\x01\x12\x1e\n\x1aON_AUTHENTICATION_COMPLETE\x10\x02\x12\x18\n\x14ON_ENCRYPTION_CHANGE\x10\x03\x12\x1f\n\x1bON_READ_REMOTE_VERSION_INFO\x10\x04\x12$\n ON_READ_REMOTE_EXTENDED_FEATURES\x10\x05*G\n\x1dRetransmissionFlowControlMode\x12\t\n\x05\x42\x41SIC\x10\x00\x12\x08\n\x04\x45RTM\x10\x01\x12\x11\n\rERTM_OPTIONAL\x10\x02*<\n\x16\x43hannelSignalEventType\x12\x08\n\x04OPEN\x10\x00\x12\t\n\x05\x43LOSE\x10\x01\x12\r\n\tCONFIGURE\x10\x02*0\n\x19SendL2capPacketResultType\x12\x06\n\x02OK\x10\x00\x12\x0b\n\x07\x42\x41\x44_CID\x10\x01*\x9e\x01\n\x15\x43lassicSecurityPolicy\x12\x17\n\x13\x45NCRYPTED_TRANSPORT\x10\x00\x12%\n!AUTHENTICATED_ENCRYPTED_TRANSPORT\x10\x01\x12\x08\n\x04\x42\x45ST\x10\x02\x12;\n7_SDP_ONLY_NO_SECURITY_WHATSOEVER_PLAINTEXT_TRANSPORT_OK\x10\x03\x32\xc6\x0b\n\x18L2capClassicModuleFacade\x12h\n\x17\x46\x65tchConnectionComplete\x12\x17.bluetooth.facade.Empty\x1a\x30.bluetooth.l2cap.classic.ConnectionCompleteEvent\"\x00\x30\x01\x12\x62\n\x14\x46\x65tchConnectionClose\x12\x17.bluetooth.facade.Empty\x1a-.bluetooth.l2cap.classic.ConnectionCloseEvent\"\x00\x30\x01\x12U\n\x0bOpenChannel\x12+.bluetooth.l2cap.classic.OpenChannelRequest\x1a\x17.bluetooth.facade.Empty\"\x00\x12W\n\x0c\x43loseChannel\x12,.bluetooth.l2cap.classic.CloseChannelRequest\x1a\x17.bluetooth.facade.Empty\"\x00\x12S\n\x0e\x46\x65tchL2capData\x12\x17.bluetooth.facade.Empty\x1a$.bluetooth.l2cap.classic.L2capPacket\"\x00\x30\x01\x12g\n\x11SetDynamicChannel\x12\x37.bluetooth.l2cap.classic.SetEnableDynamicChannelRequest\x1a\x17.bluetooth.facade.Empty\"\x00\x12\x64\n\x18SendDynamicChannelPacket\x12-.bluetooth.l2cap.classic.DynamicChannelPacket\x1a\x17.bluetooth.facade.Empty\"\x00\x12_\n\x10SetTrafficPaused\x12\x30.bluetooth.l2cap.classic.SetTrafficPausedRequest\x1a\x17.bluetooth.facade.Empty\"\x00\x12h\n\x14GetChannelQueueDepth\x12\x17.bluetooth.facade.Empty\x1a\x35.bluetooth.l2cap.classic.GetChannelQueueDepthResponse\"\x00\x12^\n\x1dInitiateConnectionForSecurity\x12\".bluetooth.facade.BluetoothAddress\x1a\x17.bluetooth.facade.Empty\"\x00\x12y\n\x1d\x46\x65tchSecurityConnectionEvents\x12\x17.bluetooth.facade.Empty\x1a;.bluetooth.l2cap.classic.LinkSecurityInterfaceCallbackEvent\"\x00\x30\x01\x12`\n\x1fSecurityLinkEnsureAuthenticated\x12\".bluetooth.facade.BluetoothAddress\x1a\x17.bluetooth.facade.Empty\"\x00\x12Q\n\x10SecurityLinkHold\x12\".bluetooth.facade.BluetoothAddress\x1a\x17.bluetooth.facade.Empty\"\x00\x12W\n\x16SecurityLinkDisconnect\x12\".bluetooth.facade.BluetoothAddress\x1a\x17.bluetooth.facade.Empty\"\x00\x12T\n\x13SecurityLinkRelease\x12\".bluetooth.facade.BluetoothAddress\x1a\x17.bluetooth.facade.Empty\"\x00\x62\x06proto3'
+ ,
+ dependencies=[proto_dot_common__pb2.DESCRIPTOR,])
+
+_LINKSECURITYINTERFACECALLBACKEVENTTYPE = _descriptor.EnumDescriptor(
+ name='LinkSecurityInterfaceCallbackEventType',
+ full_name='bluetooth.l2cap.classic.LinkSecurityInterfaceCallbackEventType',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='ON_CONNECTED', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='ON_DISCONNECTED', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='ON_AUTHENTICATION_COMPLETE', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='ON_ENCRYPTION_CHANGE', index=3, number=3,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='ON_READ_REMOTE_VERSION_INFO', index=4, number=4,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='ON_READ_REMOTE_EXTENDED_FEATURES', index=5, number=5,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1289,
+ serialized_end=1497,
+)
+_sym_db.RegisterEnumDescriptor(_LINKSECURITYINTERFACECALLBACKEVENTTYPE)
+
+LinkSecurityInterfaceCallbackEventType = enum_type_wrapper.EnumTypeWrapper(_LINKSECURITYINTERFACECALLBACKEVENTTYPE)
+_RETRANSMISSIONFLOWCONTROLMODE = _descriptor.EnumDescriptor(
+ name='RetransmissionFlowControlMode',
+ full_name='bluetooth.l2cap.classic.RetransmissionFlowControlMode',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='BASIC', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='ERTM', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='ERTM_OPTIONAL', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1499,
+ serialized_end=1570,
+)
+_sym_db.RegisterEnumDescriptor(_RETRANSMISSIONFLOWCONTROLMODE)
+
+RetransmissionFlowControlMode = enum_type_wrapper.EnumTypeWrapper(_RETRANSMISSIONFLOWCONTROLMODE)
+_CHANNELSIGNALEVENTTYPE = _descriptor.EnumDescriptor(
+ name='ChannelSignalEventType',
+ full_name='bluetooth.l2cap.classic.ChannelSignalEventType',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='OPEN', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='CLOSE', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='CONFIGURE', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1572,
+ serialized_end=1632,
+)
+_sym_db.RegisterEnumDescriptor(_CHANNELSIGNALEVENTTYPE)
+
+ChannelSignalEventType = enum_type_wrapper.EnumTypeWrapper(_CHANNELSIGNALEVENTTYPE)
+_SENDL2CAPPACKETRESULTTYPE = _descriptor.EnumDescriptor(
+ name='SendL2capPacketResultType',
+ full_name='bluetooth.l2cap.classic.SendL2capPacketResultType',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='OK', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='BAD_CID', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1634,
+ serialized_end=1682,
+)
+_sym_db.RegisterEnumDescriptor(_SENDL2CAPPACKETRESULTTYPE)
+
+SendL2capPacketResultType = enum_type_wrapper.EnumTypeWrapper(_SENDL2CAPPACKETRESULTTYPE)
+_CLASSICSECURITYPOLICY = _descriptor.EnumDescriptor(
+ name='ClassicSecurityPolicy',
+ full_name='bluetooth.l2cap.classic.ClassicSecurityPolicy',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='ENCRYPTED_TRANSPORT', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='AUTHENTICATED_ENCRYPTED_TRANSPORT', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='BEST', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='_SDP_ONLY_NO_SECURITY_WHATSOEVER_PLAINTEXT_TRANSPORT_OK', index=3, number=3,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1685,
+ serialized_end=1843,
+)
+_sym_db.RegisterEnumDescriptor(_CLASSICSECURITYPOLICY)
+
+ClassicSecurityPolicy = enum_type_wrapper.EnumTypeWrapper(_CLASSICSECURITYPOLICY)
+ON_CONNECTED = 0
+ON_DISCONNECTED = 1
+ON_AUTHENTICATION_COMPLETE = 2
+ON_ENCRYPTION_CHANGE = 3
+ON_READ_REMOTE_VERSION_INFO = 4
+ON_READ_REMOTE_EXTENDED_FEATURES = 5
+BASIC = 0
+ERTM = 1
+ERTM_OPTIONAL = 2
+OPEN = 0
+CLOSE = 1
+CONFIGURE = 2
+OK = 0
+BAD_CID = 1
+ENCRYPTED_TRANSPORT = 0
+AUTHENTICATED_ENCRYPTED_TRANSPORT = 1
+BEST = 2
+_SDP_ONLY_NO_SECURITY_WHATSOEVER_PLAINTEXT_TRANSPORT_OK = 3
+
+
+
+_LINKSECURITYINTERFACECALLBACKEVENT = _descriptor.Descriptor(
+ name='LinkSecurityInterfaceCallbackEvent',
+ full_name='bluetooth.l2cap.classic.LinkSecurityInterfaceCallbackEvent',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='address', full_name='bluetooth.l2cap.classic.LinkSecurityInterfaceCallbackEvent.address', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='event_type', full_name='bluetooth.l2cap.classic.LinkSecurityInterfaceCallbackEvent.event_type', index=1,
+ number=2, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=67,
+ serialized_end=241,
+)
+
+
+_REGISTERCHANNELREQUEST = _descriptor.Descriptor(
+ name='RegisterChannelRequest',
+ full_name='bluetooth.l2cap.classic.RegisterChannelRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='channel', full_name='bluetooth.l2cap.classic.RegisterChannelRequest.channel', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=243,
+ serialized_end=284,
+)
+
+
+_CONNECTIONCOMPLETEEVENT = _descriptor.Descriptor(
+ name='ConnectionCompleteEvent',
+ full_name='bluetooth.l2cap.classic.ConnectionCompleteEvent',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='remote', full_name='bluetooth.l2cap.classic.ConnectionCompleteEvent.remote', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=286,
+ serialized_end=363,
+)
+
+
+_CONNECTIONCLOSEEVENT = _descriptor.Descriptor(
+ name='ConnectionCloseEvent',
+ full_name='bluetooth.l2cap.classic.ConnectionCloseEvent',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='remote', full_name='bluetooth.l2cap.classic.ConnectionCloseEvent.remote', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='reason', full_name='bluetooth.l2cap.classic.ConnectionCloseEvent.reason', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=365,
+ serialized_end=455,
+)
+
+
+_OPENCHANNELREQUEST = _descriptor.Descriptor(
+ name='OpenChannelRequest',
+ full_name='bluetooth.l2cap.classic.OpenChannelRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='remote', full_name='bluetooth.l2cap.classic.OpenChannelRequest.remote', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='psm', full_name='bluetooth.l2cap.classic.OpenChannelRequest.psm', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='mode', full_name='bluetooth.l2cap.classic.OpenChannelRequest.mode', index=2,
+ number=3, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=458,
+ serialized_end=613,
+)
+
+
+_CLOSECHANNELREQUEST = _descriptor.Descriptor(
+ name='CloseChannelRequest',
+ full_name='bluetooth.l2cap.classic.CloseChannelRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='psm', full_name='bluetooth.l2cap.classic.CloseChannelRequest.psm', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=615,
+ serialized_end=649,
+)
+
+
+_CHANNELSIGNALEVENT = _descriptor.Descriptor(
+ name='ChannelSignalEvent',
+ full_name='bluetooth.l2cap.classic.ChannelSignalEvent',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='cid', full_name='bluetooth.l2cap.classic.ChannelSignalEvent.cid', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='type', full_name='bluetooth.l2cap.classic.ChannelSignalEvent.type', index=1,
+ number=2, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=651,
+ serialized_end=747,
+)
+
+
+_SENDL2CAPPACKETRESULT = _descriptor.Descriptor(
+ name='SendL2capPacketResult',
+ full_name='bluetooth.l2cap.classic.SendL2capPacketResult',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='result_type', full_name='bluetooth.l2cap.classic.SendL2capPacketResult.result_type', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=749,
+ serialized_end=845,
+)
+
+
+_L2CAPPACKET = _descriptor.Descriptor(
+ name='L2capPacket',
+ full_name='bluetooth.l2cap.classic.L2capPacket',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='psm', full_name='bluetooth.l2cap.classic.L2capPacket.psm', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='fixed_cid', full_name='bluetooth.l2cap.classic.L2capPacket.fixed_cid', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='payload', full_name='bluetooth.l2cap.classic.L2capPacket.payload', index=2,
+ number=3, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ _descriptor.OneofDescriptor(
+ name='channel_type', full_name='bluetooth.l2cap.classic.L2capPacket.channel_type',
+ index=0, containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[]),
+ ],
+ serialized_start=847,
+ serialized_end=929,
+)
+
+
+_SETENABLEDYNAMICCHANNELREQUEST = _descriptor.Descriptor(
+ name='SetEnableDynamicChannelRequest',
+ full_name='bluetooth.l2cap.classic.SetEnableDynamicChannelRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='psm', full_name='bluetooth.l2cap.classic.SetEnableDynamicChannelRequest.psm', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='enable', full_name='bluetooth.l2cap.classic.SetEnableDynamicChannelRequest.enable', index=1,
+ number=2, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='retransmission_mode', full_name='bluetooth.l2cap.classic.SetEnableDynamicChannelRequest.retransmission_mode', index=2,
+ number=3, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=932,
+ serialized_end=1078,
+)
+
+
+_DYNAMICCHANNELPACKET = _descriptor.Descriptor(
+ name='DynamicChannelPacket',
+ full_name='bluetooth.l2cap.classic.DynamicChannelPacket',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='remote', full_name='bluetooth.l2cap.classic.DynamicChannelPacket.remote', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='psm', full_name='bluetooth.l2cap.classic.DynamicChannelPacket.psm', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='payload', full_name='bluetooth.l2cap.classic.DynamicChannelPacket.payload', index=2,
+ number=3, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1080,
+ serialized_end=1184,
+)
+
+
+_SETTRAFFICPAUSEDREQUEST = _descriptor.Descriptor(
+ name='SetTrafficPausedRequest',
+ full_name='bluetooth.l2cap.classic.SetTrafficPausedRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='paused', full_name='bluetooth.l2cap.classic.SetTrafficPausedRequest.paused', index=0,
+ number=1, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='psm', full_name='bluetooth.l2cap.classic.SetTrafficPausedRequest.psm', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1186,
+ serialized_end=1240,
+)
+
+
+_GETCHANNELQUEUEDEPTHRESPONSE = _descriptor.Descriptor(
+ name='GetChannelQueueDepthResponse',
+ full_name='bluetooth.l2cap.classic.GetChannelQueueDepthResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='size', full_name='bluetooth.l2cap.classic.GetChannelQueueDepthResponse.size', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1242,
+ serialized_end=1286,
+)
+
+_LINKSECURITYINTERFACECALLBACKEVENT.fields_by_name['address'].message_type = proto_dot_common__pb2._BLUETOOTHADDRESS
+_LINKSECURITYINTERFACECALLBACKEVENT.fields_by_name['event_type'].enum_type = _LINKSECURITYINTERFACECALLBACKEVENTTYPE
+_CONNECTIONCOMPLETEEVENT.fields_by_name['remote'].message_type = proto_dot_common__pb2._BLUETOOTHADDRESS
+_CONNECTIONCLOSEEVENT.fields_by_name['remote'].message_type = proto_dot_common__pb2._BLUETOOTHADDRESS
+_OPENCHANNELREQUEST.fields_by_name['remote'].message_type = proto_dot_common__pb2._BLUETOOTHADDRESS
+_OPENCHANNELREQUEST.fields_by_name['mode'].enum_type = _RETRANSMISSIONFLOWCONTROLMODE
+_CHANNELSIGNALEVENT.fields_by_name['type'].enum_type = _CHANNELSIGNALEVENTTYPE
+_SENDL2CAPPACKETRESULT.fields_by_name['result_type'].enum_type = _SENDL2CAPPACKETRESULTTYPE
+_L2CAPPACKET.oneofs_by_name['channel_type'].fields.append(
+ _L2CAPPACKET.fields_by_name['psm'])
+_L2CAPPACKET.fields_by_name['psm'].containing_oneof = _L2CAPPACKET.oneofs_by_name['channel_type']
+_L2CAPPACKET.oneofs_by_name['channel_type'].fields.append(
+ _L2CAPPACKET.fields_by_name['fixed_cid'])
+_L2CAPPACKET.fields_by_name['fixed_cid'].containing_oneof = _L2CAPPACKET.oneofs_by_name['channel_type']
+_SETENABLEDYNAMICCHANNELREQUEST.fields_by_name['retransmission_mode'].enum_type = _RETRANSMISSIONFLOWCONTROLMODE
+_DYNAMICCHANNELPACKET.fields_by_name['remote'].message_type = proto_dot_common__pb2._BLUETOOTHADDRESS
+DESCRIPTOR.message_types_by_name['LinkSecurityInterfaceCallbackEvent'] = _LINKSECURITYINTERFACECALLBACKEVENT
+DESCRIPTOR.message_types_by_name['RegisterChannelRequest'] = _REGISTERCHANNELREQUEST
+DESCRIPTOR.message_types_by_name['ConnectionCompleteEvent'] = _CONNECTIONCOMPLETEEVENT
+DESCRIPTOR.message_types_by_name['ConnectionCloseEvent'] = _CONNECTIONCLOSEEVENT
+DESCRIPTOR.message_types_by_name['OpenChannelRequest'] = _OPENCHANNELREQUEST
+DESCRIPTOR.message_types_by_name['CloseChannelRequest'] = _CLOSECHANNELREQUEST
+DESCRIPTOR.message_types_by_name['ChannelSignalEvent'] = _CHANNELSIGNALEVENT
+DESCRIPTOR.message_types_by_name['SendL2capPacketResult'] = _SENDL2CAPPACKETRESULT
+DESCRIPTOR.message_types_by_name['L2capPacket'] = _L2CAPPACKET
+DESCRIPTOR.message_types_by_name['SetEnableDynamicChannelRequest'] = _SETENABLEDYNAMICCHANNELREQUEST
+DESCRIPTOR.message_types_by_name['DynamicChannelPacket'] = _DYNAMICCHANNELPACKET
+DESCRIPTOR.message_types_by_name['SetTrafficPausedRequest'] = _SETTRAFFICPAUSEDREQUEST
+DESCRIPTOR.message_types_by_name['GetChannelQueueDepthResponse'] = _GETCHANNELQUEUEDEPTHRESPONSE
+DESCRIPTOR.enum_types_by_name['LinkSecurityInterfaceCallbackEventType'] = _LINKSECURITYINTERFACECALLBACKEVENTTYPE
+DESCRIPTOR.enum_types_by_name['RetransmissionFlowControlMode'] = _RETRANSMISSIONFLOWCONTROLMODE
+DESCRIPTOR.enum_types_by_name['ChannelSignalEventType'] = _CHANNELSIGNALEVENTTYPE
+DESCRIPTOR.enum_types_by_name['SendL2capPacketResultType'] = _SENDL2CAPPACKETRESULTTYPE
+DESCRIPTOR.enum_types_by_name['ClassicSecurityPolicy'] = _CLASSICSECURITYPOLICY
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+LinkSecurityInterfaceCallbackEvent = _reflection.GeneratedProtocolMessageType('LinkSecurityInterfaceCallbackEvent', (_message.Message,), {
+ 'DESCRIPTOR' : _LINKSECURITYINTERFACECALLBACKEVENT,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.LinkSecurityInterfaceCallbackEvent)
+ })
+_sym_db.RegisterMessage(LinkSecurityInterfaceCallbackEvent)
+
+RegisterChannelRequest = _reflection.GeneratedProtocolMessageType('RegisterChannelRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _REGISTERCHANNELREQUEST,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.RegisterChannelRequest)
+ })
+_sym_db.RegisterMessage(RegisterChannelRequest)
+
+ConnectionCompleteEvent = _reflection.GeneratedProtocolMessageType('ConnectionCompleteEvent', (_message.Message,), {
+ 'DESCRIPTOR' : _CONNECTIONCOMPLETEEVENT,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.ConnectionCompleteEvent)
+ })
+_sym_db.RegisterMessage(ConnectionCompleteEvent)
+
+ConnectionCloseEvent = _reflection.GeneratedProtocolMessageType('ConnectionCloseEvent', (_message.Message,), {
+ 'DESCRIPTOR' : _CONNECTIONCLOSEEVENT,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.ConnectionCloseEvent)
+ })
+_sym_db.RegisterMessage(ConnectionCloseEvent)
+
+OpenChannelRequest = _reflection.GeneratedProtocolMessageType('OpenChannelRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _OPENCHANNELREQUEST,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.OpenChannelRequest)
+ })
+_sym_db.RegisterMessage(OpenChannelRequest)
+
+CloseChannelRequest = _reflection.GeneratedProtocolMessageType('CloseChannelRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _CLOSECHANNELREQUEST,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.CloseChannelRequest)
+ })
+_sym_db.RegisterMessage(CloseChannelRequest)
+
+ChannelSignalEvent = _reflection.GeneratedProtocolMessageType('ChannelSignalEvent', (_message.Message,), {
+ 'DESCRIPTOR' : _CHANNELSIGNALEVENT,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.ChannelSignalEvent)
+ })
+_sym_db.RegisterMessage(ChannelSignalEvent)
+
+SendL2capPacketResult = _reflection.GeneratedProtocolMessageType('SendL2capPacketResult', (_message.Message,), {
+ 'DESCRIPTOR' : _SENDL2CAPPACKETRESULT,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.SendL2capPacketResult)
+ })
+_sym_db.RegisterMessage(SendL2capPacketResult)
+
+L2capPacket = _reflection.GeneratedProtocolMessageType('L2capPacket', (_message.Message,), {
+ 'DESCRIPTOR' : _L2CAPPACKET,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.L2capPacket)
+ })
+_sym_db.RegisterMessage(L2capPacket)
+
+SetEnableDynamicChannelRequest = _reflection.GeneratedProtocolMessageType('SetEnableDynamicChannelRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _SETENABLEDYNAMICCHANNELREQUEST,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.SetEnableDynamicChannelRequest)
+ })
+_sym_db.RegisterMessage(SetEnableDynamicChannelRequest)
+
+DynamicChannelPacket = _reflection.GeneratedProtocolMessageType('DynamicChannelPacket', (_message.Message,), {
+ 'DESCRIPTOR' : _DYNAMICCHANNELPACKET,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.DynamicChannelPacket)
+ })
+_sym_db.RegisterMessage(DynamicChannelPacket)
+
+SetTrafficPausedRequest = _reflection.GeneratedProtocolMessageType('SetTrafficPausedRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _SETTRAFFICPAUSEDREQUEST,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.SetTrafficPausedRequest)
+ })
+_sym_db.RegisterMessage(SetTrafficPausedRequest)
+
+GetChannelQueueDepthResponse = _reflection.GeneratedProtocolMessageType('GetChannelQueueDepthResponse', (_message.Message,), {
+ 'DESCRIPTOR' : _GETCHANNELQUEUEDEPTHRESPONSE,
+ '__module__' : 'proto.l2cap_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.l2cap.classic.GetChannelQueueDepthResponse)
+ })
+_sym_db.RegisterMessage(GetChannelQueueDepthResponse)
+
+
+
+_L2CAPCLASSICMODULEFACADE = _descriptor.ServiceDescriptor(
+ name='L2capClassicModuleFacade',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade',
+ file=DESCRIPTOR,
+ index=0,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_start=1846,
+ serialized_end=3324,
+ methods=[
+ _descriptor.MethodDescriptor(
+ name='FetchConnectionComplete',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.FetchConnectionComplete',
+ index=0,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._EMPTY,
+ output_type=_CONNECTIONCOMPLETEEVENT,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='FetchConnectionClose',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.FetchConnectionClose',
+ index=1,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._EMPTY,
+ output_type=_CONNECTIONCLOSEEVENT,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='OpenChannel',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.OpenChannel',
+ index=2,
+ containing_service=None,
+ input_type=_OPENCHANNELREQUEST,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='CloseChannel',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.CloseChannel',
+ index=3,
+ containing_service=None,
+ input_type=_CLOSECHANNELREQUEST,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='FetchL2capData',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.FetchL2capData',
+ index=4,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._EMPTY,
+ output_type=_L2CAPPACKET,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SetDynamicChannel',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.SetDynamicChannel',
+ index=5,
+ containing_service=None,
+ input_type=_SETENABLEDYNAMICCHANNELREQUEST,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SendDynamicChannelPacket',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.SendDynamicChannelPacket',
+ index=6,
+ containing_service=None,
+ input_type=_DYNAMICCHANNELPACKET,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SetTrafficPaused',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.SetTrafficPaused',
+ index=7,
+ containing_service=None,
+ input_type=_SETTRAFFICPAUSEDREQUEST,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='GetChannelQueueDepth',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.GetChannelQueueDepth',
+ index=8,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._EMPTY,
+ output_type=_GETCHANNELQUEUEDEPTHRESPONSE,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='InitiateConnectionForSecurity',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.InitiateConnectionForSecurity',
+ index=9,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._BLUETOOTHADDRESS,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='FetchSecurityConnectionEvents',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.FetchSecurityConnectionEvents',
+ index=10,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._EMPTY,
+ output_type=_LINKSECURITYINTERFACECALLBACKEVENT,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SecurityLinkEnsureAuthenticated',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.SecurityLinkEnsureAuthenticated',
+ index=11,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._BLUETOOTHADDRESS,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SecurityLinkHold',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.SecurityLinkHold',
+ index=12,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._BLUETOOTHADDRESS,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SecurityLinkDisconnect',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.SecurityLinkDisconnect',
+ index=13,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._BLUETOOTHADDRESS,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SecurityLinkRelease',
+ full_name='bluetooth.l2cap.classic.L2capClassicModuleFacade.SecurityLinkRelease',
+ index=14,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._BLUETOOTHADDRESS,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+])
+_sym_db.RegisterServiceDescriptor(_L2CAPCLASSICMODULEFACADE)
+
+DESCRIPTOR.services_by_name['L2capClassicModuleFacade'] = _L2CAPCLASSICMODULEFACADE
+
+# @@protoc_insertion_point(module_scope)
diff --git a/lib/proto/l2cap_pb2_grpc.py b/lib/proto/l2cap_pb2_grpc.py
new file mode 100644
index 0000000..74b9a86
--- /dev/null
+++ b/lib/proto/l2cap_pb2_grpc.py
@@ -0,0 +1,533 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from . import common_pb2 as proto_dot_common__pb2
+from . import l2cap_pb2 as proto_dot_l2cap__pb2
+
+
+class L2capClassicModuleFacadeStub(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.FetchConnectionComplete = channel.unary_stream(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchConnectionComplete',
+ request_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ response_deserializer=proto_dot_l2cap__pb2.ConnectionCompleteEvent.FromString,
+ )
+ self.FetchConnectionClose = channel.unary_stream(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchConnectionClose',
+ request_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ response_deserializer=proto_dot_l2cap__pb2.ConnectionCloseEvent.FromString,
+ )
+ self.OpenChannel = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/OpenChannel',
+ request_serializer=proto_dot_l2cap__pb2.OpenChannelRequest.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.CloseChannel = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/CloseChannel',
+ request_serializer=proto_dot_l2cap__pb2.CloseChannelRequest.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.FetchL2capData = channel.unary_stream(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchL2capData',
+ request_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ response_deserializer=proto_dot_l2cap__pb2.L2capPacket.FromString,
+ )
+ self.SetDynamicChannel = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SetDynamicChannel',
+ request_serializer=proto_dot_l2cap__pb2.SetEnableDynamicChannelRequest.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.SendDynamicChannelPacket = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SendDynamicChannelPacket',
+ request_serializer=proto_dot_l2cap__pb2.DynamicChannelPacket.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.SetTrafficPaused = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SetTrafficPaused',
+ request_serializer=proto_dot_l2cap__pb2.SetTrafficPausedRequest.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.GetChannelQueueDepth = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/GetChannelQueueDepth',
+ request_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ response_deserializer=proto_dot_l2cap__pb2.GetChannelQueueDepthResponse.FromString,
+ )
+ self.InitiateConnectionForSecurity = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/InitiateConnectionForSecurity',
+ request_serializer=proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.FetchSecurityConnectionEvents = channel.unary_stream(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchSecurityConnectionEvents',
+ request_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ response_deserializer=proto_dot_l2cap__pb2.LinkSecurityInterfaceCallbackEvent.FromString,
+ )
+ self.SecurityLinkEnsureAuthenticated = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkEnsureAuthenticated',
+ request_serializer=proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.SecurityLinkHold = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkHold',
+ request_serializer=proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.SecurityLinkDisconnect = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkDisconnect',
+ request_serializer=proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.SecurityLinkRelease = channel.unary_unary(
+ '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkRelease',
+ request_serializer=proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+
+
+class L2capClassicModuleFacadeServicer(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def FetchConnectionComplete(self, request, context):
+ """Testing Android Bluetooth stack only. Optional for other stack.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def FetchConnectionClose(self, request, context):
+ """Testing Android Bluetooth stack only. Optional for other stack.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def OpenChannel(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def CloseChannel(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def FetchL2capData(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SetDynamicChannel(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SendDynamicChannelPacket(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SetTrafficPaused(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def GetChannelQueueDepth(self, request, context):
+ """Get the buffer size of channel queue end for L2CAP user (how many packets we can buffer
+ before L2CAP user dequeues.
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def InitiateConnectionForSecurity(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def FetchSecurityConnectionEvents(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SecurityLinkEnsureAuthenticated(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SecurityLinkHold(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SecurityLinkDisconnect(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SecurityLinkRelease(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_L2capClassicModuleFacadeServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'FetchConnectionComplete': grpc.unary_stream_rpc_method_handler(
+ servicer.FetchConnectionComplete,
+ request_deserializer=proto_dot_common__pb2.Empty.FromString,
+ response_serializer=proto_dot_l2cap__pb2.ConnectionCompleteEvent.SerializeToString,
+ ),
+ 'FetchConnectionClose': grpc.unary_stream_rpc_method_handler(
+ servicer.FetchConnectionClose,
+ request_deserializer=proto_dot_common__pb2.Empty.FromString,
+ response_serializer=proto_dot_l2cap__pb2.ConnectionCloseEvent.SerializeToString,
+ ),
+ 'OpenChannel': grpc.unary_unary_rpc_method_handler(
+ servicer.OpenChannel,
+ request_deserializer=proto_dot_l2cap__pb2.OpenChannelRequest.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'CloseChannel': grpc.unary_unary_rpc_method_handler(
+ servicer.CloseChannel,
+ request_deserializer=proto_dot_l2cap__pb2.CloseChannelRequest.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'FetchL2capData': grpc.unary_stream_rpc_method_handler(
+ servicer.FetchL2capData,
+ request_deserializer=proto_dot_common__pb2.Empty.FromString,
+ response_serializer=proto_dot_l2cap__pb2.L2capPacket.SerializeToString,
+ ),
+ 'SetDynamicChannel': grpc.unary_unary_rpc_method_handler(
+ servicer.SetDynamicChannel,
+ request_deserializer=proto_dot_l2cap__pb2.SetEnableDynamicChannelRequest.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'SendDynamicChannelPacket': grpc.unary_unary_rpc_method_handler(
+ servicer.SendDynamicChannelPacket,
+ request_deserializer=proto_dot_l2cap__pb2.DynamicChannelPacket.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'SetTrafficPaused': grpc.unary_unary_rpc_method_handler(
+ servicer.SetTrafficPaused,
+ request_deserializer=proto_dot_l2cap__pb2.SetTrafficPausedRequest.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'GetChannelQueueDepth': grpc.unary_unary_rpc_method_handler(
+ servicer.GetChannelQueueDepth,
+ request_deserializer=proto_dot_common__pb2.Empty.FromString,
+ response_serializer=proto_dot_l2cap__pb2.GetChannelQueueDepthResponse.SerializeToString,
+ ),
+ 'InitiateConnectionForSecurity': grpc.unary_unary_rpc_method_handler(
+ servicer.InitiateConnectionForSecurity,
+ request_deserializer=proto_dot_common__pb2.BluetoothAddress.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'FetchSecurityConnectionEvents': grpc.unary_stream_rpc_method_handler(
+ servicer.FetchSecurityConnectionEvents,
+ request_deserializer=proto_dot_common__pb2.Empty.FromString,
+ response_serializer=proto_dot_l2cap__pb2.LinkSecurityInterfaceCallbackEvent.SerializeToString,
+ ),
+ 'SecurityLinkEnsureAuthenticated': grpc.unary_unary_rpc_method_handler(
+ servicer.SecurityLinkEnsureAuthenticated,
+ request_deserializer=proto_dot_common__pb2.BluetoothAddress.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'SecurityLinkHold': grpc.unary_unary_rpc_method_handler(
+ servicer.SecurityLinkHold,
+ request_deserializer=proto_dot_common__pb2.BluetoothAddress.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'SecurityLinkDisconnect': grpc.unary_unary_rpc_method_handler(
+ servicer.SecurityLinkDisconnect,
+ request_deserializer=proto_dot_common__pb2.BluetoothAddress.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'SecurityLinkRelease': grpc.unary_unary_rpc_method_handler(
+ servicer.SecurityLinkRelease,
+ request_deserializer=proto_dot_common__pb2.BluetoothAddress.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'bluetooth.l2cap.classic.L2capClassicModuleFacade', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class L2capClassicModuleFacade(object):
+ """Missing associated documentation comment in .proto file."""
+
+ @staticmethod
+ def FetchConnectionComplete(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchConnectionComplete',
+ proto_dot_common__pb2.Empty.SerializeToString,
+ proto_dot_l2cap__pb2.ConnectionCompleteEvent.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def FetchConnectionClose(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchConnectionClose',
+ proto_dot_common__pb2.Empty.SerializeToString,
+ proto_dot_l2cap__pb2.ConnectionCloseEvent.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def OpenChannel(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/OpenChannel',
+ proto_dot_l2cap__pb2.OpenChannelRequest.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def CloseChannel(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/CloseChannel',
+ proto_dot_l2cap__pb2.CloseChannelRequest.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def FetchL2capData(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchL2capData',
+ proto_dot_common__pb2.Empty.SerializeToString,
+ proto_dot_l2cap__pb2.L2capPacket.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SetDynamicChannel(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SetDynamicChannel',
+ proto_dot_l2cap__pb2.SetEnableDynamicChannelRequest.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SendDynamicChannelPacket(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SendDynamicChannelPacket',
+ proto_dot_l2cap__pb2.DynamicChannelPacket.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SetTrafficPaused(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SetTrafficPaused',
+ proto_dot_l2cap__pb2.SetTrafficPausedRequest.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def GetChannelQueueDepth(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/GetChannelQueueDepth',
+ proto_dot_common__pb2.Empty.SerializeToString,
+ proto_dot_l2cap__pb2.GetChannelQueueDepthResponse.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def InitiateConnectionForSecurity(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/InitiateConnectionForSecurity',
+ proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def FetchSecurityConnectionEvents(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/FetchSecurityConnectionEvents',
+ proto_dot_common__pb2.Empty.SerializeToString,
+ proto_dot_l2cap__pb2.LinkSecurityInterfaceCallbackEvent.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SecurityLinkEnsureAuthenticated(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkEnsureAuthenticated',
+ proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SecurityLinkHold(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkHold',
+ proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SecurityLinkDisconnect(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkDisconnect',
+ proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SecurityLinkRelease(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.l2cap.classic.L2capClassicModuleFacade/SecurityLinkRelease',
+ proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/lib/proto/neighbor_pb2.py b/lib/proto/neighbor_pb2.py
new file mode 100644
index 0000000..be9e5ba
--- /dev/null
+++ b/lib/proto/neighbor_pb2.py
@@ -0,0 +1,481 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/neighbor.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import common_pb2 as proto_dot_common__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='proto/neighbor.proto',
+ package='bluetooth.neighbor',
+ syntax='proto3',
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_pb=b'\n\x14proto/neighbor.proto\x12\x12\x62luetooth.neighbor\x1a\x12proto/common.proto\"\x1c\n\tEnableMsg\x12\x0f\n\x07\x65nabled\x18\x01 \x01(\x08\"L\n\x13\x44iscoverabilitiyMsg\x12\x35\n\x04mode\x18\x01 \x01(\x0e\x32\'.bluetooth.neighbor.DiscoverabilityMode\"\xab\x01\n\nInquiryMsg\x12=\n\x0cinquiry_mode\x18\x01 \x01(\x0e\x32\'.bluetooth.neighbor.DiscoverabilityMode\x12\x33\n\x0bresult_mode\x18\x02 \x01(\x0e\x32\x1e.bluetooth.neighbor.ResultMode\x12\x14\n\x0clength_1_28s\x18\x03 \x01(\r\x12\x13\n\x0bmax_results\x18\x04 \x01(\r\"\"\n\x10InquiryResultMsg\x12\x0e\n\x06packet\x18\x01 \x01(\x0c\"`\n\x14RemoteNameRequestMsg\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0c\x12!\n\x19page_scan_repetition_mode\x18\x02 \x01(\r\x12\x14\n\x0c\x63lock_offset\x18\x03 \x01(\r\"F\n\x15RemoteNameResponseMsg\x12\x0e\n\x06status\x18\x01 \x01(\r\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\x0c\x12\x0c\n\x04name\x18\x03 \x01(\x0c*8\n\x13\x44iscoverabilityMode\x12\x07\n\x03OFF\x10\x00\x12\x0b\n\x07LIMITED\x10\x01\x12\x0b\n\x07GENERAL\x10\x02*2\n\nResultMode\x12\x0c\n\x08STANDARD\x10\x00\x12\x08\n\x04RSSI\x10\x01\x12\x0c\n\x08\x45XTENDED\x10\x02\x32\xe6\x04\n\x0eNeighborFacade\x12M\n\x11SetConnectability\x12\x1d.bluetooth.neighbor.EnableMsg\x1a\x17.bluetooth.facade.Empty\"\x00\x12X\n\x12SetDiscoverability\x12\'.bluetooth.neighbor.DiscoverabilitiyMsg\x1a\x17.bluetooth.facade.Empty\"\x00\x12Z\n\x0eSetInquiryMode\x12\x1e.bluetooth.neighbor.InquiryMsg\x1a$.bluetooth.neighbor.InquiryResultMsg\"\x00\x30\x01\x12U\n\x0eReadRemoteName\x12(.bluetooth.neighbor.RemoteNameRequestMsg\x1a\x17.bluetooth.facade.Empty\"\x00\x12]\n\x13GetRemoteNameEvents\x12\x17.bluetooth.facade.Empty\x1a).bluetooth.neighbor.RemoteNameResponseMsg\"\x00\x30\x01\x12M\n\x11\x45nableInquiryScan\x12\x1d.bluetooth.neighbor.EnableMsg\x1a\x17.bluetooth.facade.Empty\"\x00\x12J\n\x0e\x45nablePageScan\x12\x1d.bluetooth.neighbor.EnableMsg\x1a\x17.bluetooth.facade.Empty\"\x00\x62\x06proto3'
+ ,
+ dependencies=[proto_dot_common__pb2.DESCRIPTOR,])
+
+_DISCOVERABILITYMODE = _descriptor.EnumDescriptor(
+ name='DiscoverabilityMode',
+ full_name='bluetooth.neighbor.DiscoverabilityMode',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='OFF', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='LIMITED', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='GENERAL', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=552,
+ serialized_end=608,
+)
+_sym_db.RegisterEnumDescriptor(_DISCOVERABILITYMODE)
+
+DiscoverabilityMode = enum_type_wrapper.EnumTypeWrapper(_DISCOVERABILITYMODE)
+_RESULTMODE = _descriptor.EnumDescriptor(
+ name='ResultMode',
+ full_name='bluetooth.neighbor.ResultMode',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='STANDARD', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='RSSI', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='EXTENDED', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=610,
+ serialized_end=660,
+)
+_sym_db.RegisterEnumDescriptor(_RESULTMODE)
+
+ResultMode = enum_type_wrapper.EnumTypeWrapper(_RESULTMODE)
+OFF = 0
+LIMITED = 1
+GENERAL = 2
+STANDARD = 0
+RSSI = 1
+EXTENDED = 2
+
+
+
+_ENABLEMSG = _descriptor.Descriptor(
+ name='EnableMsg',
+ full_name='bluetooth.neighbor.EnableMsg',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='enabled', full_name='bluetooth.neighbor.EnableMsg.enabled', index=0,
+ number=1, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=64,
+ serialized_end=92,
+)
+
+
+_DISCOVERABILITIYMSG = _descriptor.Descriptor(
+ name='DiscoverabilitiyMsg',
+ full_name='bluetooth.neighbor.DiscoverabilitiyMsg',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='mode', full_name='bluetooth.neighbor.DiscoverabilitiyMsg.mode', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=94,
+ serialized_end=170,
+)
+
+
+_INQUIRYMSG = _descriptor.Descriptor(
+ name='InquiryMsg',
+ full_name='bluetooth.neighbor.InquiryMsg',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='inquiry_mode', full_name='bluetooth.neighbor.InquiryMsg.inquiry_mode', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='result_mode', full_name='bluetooth.neighbor.InquiryMsg.result_mode', index=1,
+ number=2, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='length_1_28s', full_name='bluetooth.neighbor.InquiryMsg.length_1_28s', index=2,
+ number=3, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='max_results', full_name='bluetooth.neighbor.InquiryMsg.max_results', index=3,
+ number=4, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=173,
+ serialized_end=344,
+)
+
+
+_INQUIRYRESULTMSG = _descriptor.Descriptor(
+ name='InquiryResultMsg',
+ full_name='bluetooth.neighbor.InquiryResultMsg',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='packet', full_name='bluetooth.neighbor.InquiryResultMsg.packet', index=0,
+ number=1, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=346,
+ serialized_end=380,
+)
+
+
+_REMOTENAMEREQUESTMSG = _descriptor.Descriptor(
+ name='RemoteNameRequestMsg',
+ full_name='bluetooth.neighbor.RemoteNameRequestMsg',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='address', full_name='bluetooth.neighbor.RemoteNameRequestMsg.address', index=0,
+ number=1, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='page_scan_repetition_mode', full_name='bluetooth.neighbor.RemoteNameRequestMsg.page_scan_repetition_mode', index=1,
+ number=2, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='clock_offset', full_name='bluetooth.neighbor.RemoteNameRequestMsg.clock_offset', index=2,
+ number=3, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=382,
+ serialized_end=478,
+)
+
+
+_REMOTENAMERESPONSEMSG = _descriptor.Descriptor(
+ name='RemoteNameResponseMsg',
+ full_name='bluetooth.neighbor.RemoteNameResponseMsg',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='status', full_name='bluetooth.neighbor.RemoteNameResponseMsg.status', index=0,
+ number=1, type=13, cpp_type=3, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='address', full_name='bluetooth.neighbor.RemoteNameResponseMsg.address', index=1,
+ number=2, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ _descriptor.FieldDescriptor(
+ name='name', full_name='bluetooth.neighbor.RemoteNameResponseMsg.name', index=2,
+ number=3, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=b"",
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=480,
+ serialized_end=550,
+)
+
+_DISCOVERABILITIYMSG.fields_by_name['mode'].enum_type = _DISCOVERABILITYMODE
+_INQUIRYMSG.fields_by_name['inquiry_mode'].enum_type = _DISCOVERABILITYMODE
+_INQUIRYMSG.fields_by_name['result_mode'].enum_type = _RESULTMODE
+DESCRIPTOR.message_types_by_name['EnableMsg'] = _ENABLEMSG
+DESCRIPTOR.message_types_by_name['DiscoverabilitiyMsg'] = _DISCOVERABILITIYMSG
+DESCRIPTOR.message_types_by_name['InquiryMsg'] = _INQUIRYMSG
+DESCRIPTOR.message_types_by_name['InquiryResultMsg'] = _INQUIRYRESULTMSG
+DESCRIPTOR.message_types_by_name['RemoteNameRequestMsg'] = _REMOTENAMEREQUESTMSG
+DESCRIPTOR.message_types_by_name['RemoteNameResponseMsg'] = _REMOTENAMERESPONSEMSG
+DESCRIPTOR.enum_types_by_name['DiscoverabilityMode'] = _DISCOVERABILITYMODE
+DESCRIPTOR.enum_types_by_name['ResultMode'] = _RESULTMODE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+EnableMsg = _reflection.GeneratedProtocolMessageType('EnableMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _ENABLEMSG,
+ '__module__' : 'proto.neighbor_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.neighbor.EnableMsg)
+ })
+_sym_db.RegisterMessage(EnableMsg)
+
+DiscoverabilitiyMsg = _reflection.GeneratedProtocolMessageType('DiscoverabilitiyMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _DISCOVERABILITIYMSG,
+ '__module__' : 'proto.neighbor_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.neighbor.DiscoverabilitiyMsg)
+ })
+_sym_db.RegisterMessage(DiscoverabilitiyMsg)
+
+InquiryMsg = _reflection.GeneratedProtocolMessageType('InquiryMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _INQUIRYMSG,
+ '__module__' : 'proto.neighbor_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.neighbor.InquiryMsg)
+ })
+_sym_db.RegisterMessage(InquiryMsg)
+
+InquiryResultMsg = _reflection.GeneratedProtocolMessageType('InquiryResultMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _INQUIRYRESULTMSG,
+ '__module__' : 'proto.neighbor_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.neighbor.InquiryResultMsg)
+ })
+_sym_db.RegisterMessage(InquiryResultMsg)
+
+RemoteNameRequestMsg = _reflection.GeneratedProtocolMessageType('RemoteNameRequestMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _REMOTENAMEREQUESTMSG,
+ '__module__' : 'proto.neighbor_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.neighbor.RemoteNameRequestMsg)
+ })
+_sym_db.RegisterMessage(RemoteNameRequestMsg)
+
+RemoteNameResponseMsg = _reflection.GeneratedProtocolMessageType('RemoteNameResponseMsg', (_message.Message,), {
+ 'DESCRIPTOR' : _REMOTENAMERESPONSEMSG,
+ '__module__' : 'proto.neighbor_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.neighbor.RemoteNameResponseMsg)
+ })
+_sym_db.RegisterMessage(RemoteNameResponseMsg)
+
+
+
+_NEIGHBORFACADE = _descriptor.ServiceDescriptor(
+ name='NeighborFacade',
+ full_name='bluetooth.neighbor.NeighborFacade',
+ file=DESCRIPTOR,
+ index=0,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_start=663,
+ serialized_end=1277,
+ methods=[
+ _descriptor.MethodDescriptor(
+ name='SetConnectability',
+ full_name='bluetooth.neighbor.NeighborFacade.SetConnectability',
+ index=0,
+ containing_service=None,
+ input_type=_ENABLEMSG,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SetDiscoverability',
+ full_name='bluetooth.neighbor.NeighborFacade.SetDiscoverability',
+ index=1,
+ containing_service=None,
+ input_type=_DISCOVERABILITIYMSG,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='SetInquiryMode',
+ full_name='bluetooth.neighbor.NeighborFacade.SetInquiryMode',
+ index=2,
+ containing_service=None,
+ input_type=_INQUIRYMSG,
+ output_type=_INQUIRYRESULTMSG,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='ReadRemoteName',
+ full_name='bluetooth.neighbor.NeighborFacade.ReadRemoteName',
+ index=3,
+ containing_service=None,
+ input_type=_REMOTENAMEREQUESTMSG,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='GetRemoteNameEvents',
+ full_name='bluetooth.neighbor.NeighborFacade.GetRemoteNameEvents',
+ index=4,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._EMPTY,
+ output_type=_REMOTENAMERESPONSEMSG,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='EnableInquiryScan',
+ full_name='bluetooth.neighbor.NeighborFacade.EnableInquiryScan',
+ index=5,
+ containing_service=None,
+ input_type=_ENABLEMSG,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='EnablePageScan',
+ full_name='bluetooth.neighbor.NeighborFacade.EnablePageScan',
+ index=6,
+ containing_service=None,
+ input_type=_ENABLEMSG,
+ output_type=proto_dot_common__pb2._EMPTY,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+])
+_sym_db.RegisterServiceDescriptor(_NEIGHBORFACADE)
+
+DESCRIPTOR.services_by_name['NeighborFacade'] = _NEIGHBORFACADE
+
+# @@protoc_insertion_point(module_scope)
diff --git a/lib/proto/neighbor_pb2_grpc.py b/lib/proto/neighbor_pb2_grpc.py
new file mode 100644
index 0000000..fc71c18
--- /dev/null
+++ b/lib/proto/neighbor_pb2_grpc.py
@@ -0,0 +1,267 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from . import common_pb2 as proto_dot_common__pb2
+from . import neighbor_pb2 as proto_dot_neighbor__pb2
+
+
+class NeighborFacadeStub(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.SetConnectability = channel.unary_unary(
+ '/bluetooth.neighbor.NeighborFacade/SetConnectability',
+ request_serializer=proto_dot_neighbor__pb2.EnableMsg.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.SetDiscoverability = channel.unary_unary(
+ '/bluetooth.neighbor.NeighborFacade/SetDiscoverability',
+ request_serializer=proto_dot_neighbor__pb2.DiscoverabilitiyMsg.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.SetInquiryMode = channel.unary_stream(
+ '/bluetooth.neighbor.NeighborFacade/SetInquiryMode',
+ request_serializer=proto_dot_neighbor__pb2.InquiryMsg.SerializeToString,
+ response_deserializer=proto_dot_neighbor__pb2.InquiryResultMsg.FromString,
+ )
+ self.ReadRemoteName = channel.unary_unary(
+ '/bluetooth.neighbor.NeighborFacade/ReadRemoteName',
+ request_serializer=proto_dot_neighbor__pb2.RemoteNameRequestMsg.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.GetRemoteNameEvents = channel.unary_stream(
+ '/bluetooth.neighbor.NeighborFacade/GetRemoteNameEvents',
+ request_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ response_deserializer=proto_dot_neighbor__pb2.RemoteNameResponseMsg.FromString,
+ )
+ self.EnableInquiryScan = channel.unary_unary(
+ '/bluetooth.neighbor.NeighborFacade/EnableInquiryScan',
+ request_serializer=proto_dot_neighbor__pb2.EnableMsg.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+ self.EnablePageScan = channel.unary_unary(
+ '/bluetooth.neighbor.NeighborFacade/EnablePageScan',
+ request_serializer=proto_dot_neighbor__pb2.EnableMsg.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.Empty.FromString,
+ )
+
+
+class NeighborFacadeServicer(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def SetConnectability(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SetDiscoverability(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def SetInquiryMode(self, request, context):
+ """Sets inquiry mode and fetches inquiry result HCI packet
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def ReadRemoteName(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def GetRemoteNameEvents(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def EnableInquiryScan(self, request, context):
+ """TODO: Should we use a blocking call for ReadRemoteName instead? (Note: blocking model may not work for GD stack)
+ """
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def EnablePageScan(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_NeighborFacadeServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'SetConnectability': grpc.unary_unary_rpc_method_handler(
+ servicer.SetConnectability,
+ request_deserializer=proto_dot_neighbor__pb2.EnableMsg.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'SetDiscoverability': grpc.unary_unary_rpc_method_handler(
+ servicer.SetDiscoverability,
+ request_deserializer=proto_dot_neighbor__pb2.DiscoverabilitiyMsg.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'SetInquiryMode': grpc.unary_stream_rpc_method_handler(
+ servicer.SetInquiryMode,
+ request_deserializer=proto_dot_neighbor__pb2.InquiryMsg.FromString,
+ response_serializer=proto_dot_neighbor__pb2.InquiryResultMsg.SerializeToString,
+ ),
+ 'ReadRemoteName': grpc.unary_unary_rpc_method_handler(
+ servicer.ReadRemoteName,
+ request_deserializer=proto_dot_neighbor__pb2.RemoteNameRequestMsg.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'GetRemoteNameEvents': grpc.unary_stream_rpc_method_handler(
+ servicer.GetRemoteNameEvents,
+ request_deserializer=proto_dot_common__pb2.Empty.FromString,
+ response_serializer=proto_dot_neighbor__pb2.RemoteNameResponseMsg.SerializeToString,
+ ),
+ 'EnableInquiryScan': grpc.unary_unary_rpc_method_handler(
+ servicer.EnableInquiryScan,
+ request_deserializer=proto_dot_neighbor__pb2.EnableMsg.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ 'EnablePageScan': grpc.unary_unary_rpc_method_handler(
+ servicer.EnablePageScan,
+ request_deserializer=proto_dot_neighbor__pb2.EnableMsg.FromString,
+ response_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'bluetooth.neighbor.NeighborFacade', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class NeighborFacade(object):
+ """Missing associated documentation comment in .proto file."""
+
+ @staticmethod
+ def SetConnectability(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.neighbor.NeighborFacade/SetConnectability',
+ proto_dot_neighbor__pb2.EnableMsg.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SetDiscoverability(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.neighbor.NeighborFacade/SetDiscoverability',
+ proto_dot_neighbor__pb2.DiscoverabilitiyMsg.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def SetInquiryMode(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(request, target, '/bluetooth.neighbor.NeighborFacade/SetInquiryMode',
+ proto_dot_neighbor__pb2.InquiryMsg.SerializeToString,
+ proto_dot_neighbor__pb2.InquiryResultMsg.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def ReadRemoteName(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.neighbor.NeighborFacade/ReadRemoteName',
+ proto_dot_neighbor__pb2.RemoteNameRequestMsg.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def GetRemoteNameEvents(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_stream(request, target, '/bluetooth.neighbor.NeighborFacade/GetRemoteNameEvents',
+ proto_dot_common__pb2.Empty.SerializeToString,
+ proto_dot_neighbor__pb2.RemoteNameResponseMsg.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def EnableInquiryScan(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.neighbor.NeighborFacade/EnableInquiryScan',
+ proto_dot_neighbor__pb2.EnableMsg.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def EnablePageScan(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.neighbor.NeighborFacade/EnablePageScan',
+ proto_dot_neighbor__pb2.EnableMsg.SerializeToString,
+ proto_dot_common__pb2.Empty.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/lib/proto/rootservice_pb2.py b/lib/proto/rootservice_pb2.py
new file mode 100644
index 0000000..5944a74
--- /dev/null
+++ b/lib/proto/rootservice_pb2.py
@@ -0,0 +1,288 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: proto/rootservice.proto
+"""Generated protocol buffer code."""
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from . import common_pb2 as proto_dot_common__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='proto/rootservice.proto',
+ package='bluetooth.facade',
+ syntax='proto3',
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_pb=b'\n\x17proto/rootservice.proto\x12\x10\x62luetooth.facade\x1a\x12proto/common.proto\"Q\n\x11StartStackRequest\x12<\n\x11module_under_test\x18\x01 \x01(\x0e\x32!.bluetooth.facade.BluetoothModule\"\x14\n\x12StartStackResponse\"\x12\n\x10StopStackRequest\"\x13\n\x11StopStackResponse*Z\n\x0f\x42luetoothModule\x12\x07\n\x03HAL\x10\x00\x12\x07\n\x03HCI\x10\x01\x12\x12\n\x0eHCI_INTERFACES\x10\x02\x12\t\n\x05L2CAP\x10\x03\x12\x0c\n\x08SECURITY\x10\x04\x12\x08\n\x04SHIM\x10\x05\x32\xbf\x01\n\nRootFacade\x12Y\n\nStartStack\x12#.bluetooth.facade.StartStackRequest\x1a$.bluetooth.facade.StartStackResponse\"\x00\x12V\n\tStopStack\x12\".bluetooth.facade.StopStackRequest\x1a#.bluetooth.facade.StopStackResponse\"\x00\x32\x65\n\x10ReadOnlyProperty\x12Q\n\x10ReadLocalAddress\x12\x17.bluetooth.facade.Empty\x1a\".bluetooth.facade.BluetoothAddress\"\x00\x62\x06proto3'
+ ,
+ dependencies=[proto_dot_common__pb2.DESCRIPTOR,])
+
+_BLUETOOTHMODULE = _descriptor.EnumDescriptor(
+ name='BluetoothModule',
+ full_name='bluetooth.facade.BluetoothModule',
+ filename=None,
+ file=DESCRIPTOR,
+ create_key=_descriptor._internal_create_key,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='HAL', index=0, number=0,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='HCI', index=1, number=1,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='HCI_INTERFACES', index=2, number=2,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='L2CAP', index=3, number=3,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='SECURITY', index=4, number=4,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ _descriptor.EnumValueDescriptor(
+ name='SHIM', index=5, number=5,
+ serialized_options=None,
+ type=None,
+ create_key=_descriptor._internal_create_key),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=211,
+ serialized_end=301,
+)
+_sym_db.RegisterEnumDescriptor(_BLUETOOTHMODULE)
+
+BluetoothModule = enum_type_wrapper.EnumTypeWrapper(_BLUETOOTHMODULE)
+HAL = 0
+HCI = 1
+HCI_INTERFACES = 2
+L2CAP = 3
+SECURITY = 4
+SHIM = 5
+
+
+
+_STARTSTACKREQUEST = _descriptor.Descriptor(
+ name='StartStackRequest',
+ full_name='bluetooth.facade.StartStackRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='module_under_test', full_name='bluetooth.facade.StartStackRequest.module_under_test', index=0,
+ number=1, type=14, cpp_type=8, label=1,
+ has_default_value=False, default_value=0,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=65,
+ serialized_end=146,
+)
+
+
+_STARTSTACKRESPONSE = _descriptor.Descriptor(
+ name='StartStackResponse',
+ full_name='bluetooth.facade.StartStackResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=148,
+ serialized_end=168,
+)
+
+
+_STOPSTACKREQUEST = _descriptor.Descriptor(
+ name='StopStackRequest',
+ full_name='bluetooth.facade.StopStackRequest',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=170,
+ serialized_end=188,
+)
+
+
+_STOPSTACKRESPONSE = _descriptor.Descriptor(
+ name='StopStackResponse',
+ full_name='bluetooth.facade.StopStackResponse',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ create_key=_descriptor._internal_create_key,
+ fields=[
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=190,
+ serialized_end=209,
+)
+
+_STARTSTACKREQUEST.fields_by_name['module_under_test'].enum_type = _BLUETOOTHMODULE
+DESCRIPTOR.message_types_by_name['StartStackRequest'] = _STARTSTACKREQUEST
+DESCRIPTOR.message_types_by_name['StartStackResponse'] = _STARTSTACKRESPONSE
+DESCRIPTOR.message_types_by_name['StopStackRequest'] = _STOPSTACKREQUEST
+DESCRIPTOR.message_types_by_name['StopStackResponse'] = _STOPSTACKRESPONSE
+DESCRIPTOR.enum_types_by_name['BluetoothModule'] = _BLUETOOTHMODULE
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+StartStackRequest = _reflection.GeneratedProtocolMessageType('StartStackRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _STARTSTACKREQUEST,
+ '__module__' : 'proto.rootservice_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.StartStackRequest)
+ })
+_sym_db.RegisterMessage(StartStackRequest)
+
+StartStackResponse = _reflection.GeneratedProtocolMessageType('StartStackResponse', (_message.Message,), {
+ 'DESCRIPTOR' : _STARTSTACKRESPONSE,
+ '__module__' : 'proto.rootservice_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.StartStackResponse)
+ })
+_sym_db.RegisterMessage(StartStackResponse)
+
+StopStackRequest = _reflection.GeneratedProtocolMessageType('StopStackRequest', (_message.Message,), {
+ 'DESCRIPTOR' : _STOPSTACKREQUEST,
+ '__module__' : 'proto.rootservice_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.StopStackRequest)
+ })
+_sym_db.RegisterMessage(StopStackRequest)
+
+StopStackResponse = _reflection.GeneratedProtocolMessageType('StopStackResponse', (_message.Message,), {
+ 'DESCRIPTOR' : _STOPSTACKRESPONSE,
+ '__module__' : 'proto.rootservice_pb2'
+ # @@protoc_insertion_point(class_scope:bluetooth.facade.StopStackResponse)
+ })
+_sym_db.RegisterMessage(StopStackResponse)
+
+
+
+_ROOTFACADE = _descriptor.ServiceDescriptor(
+ name='RootFacade',
+ full_name='bluetooth.facade.RootFacade',
+ file=DESCRIPTOR,
+ index=0,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_start=304,
+ serialized_end=495,
+ methods=[
+ _descriptor.MethodDescriptor(
+ name='StartStack',
+ full_name='bluetooth.facade.RootFacade.StartStack',
+ index=0,
+ containing_service=None,
+ input_type=_STARTSTACKREQUEST,
+ output_type=_STARTSTACKRESPONSE,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+ _descriptor.MethodDescriptor(
+ name='StopStack',
+ full_name='bluetooth.facade.RootFacade.StopStack',
+ index=1,
+ containing_service=None,
+ input_type=_STOPSTACKREQUEST,
+ output_type=_STOPSTACKRESPONSE,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+])
+_sym_db.RegisterServiceDescriptor(_ROOTFACADE)
+
+DESCRIPTOR.services_by_name['RootFacade'] = _ROOTFACADE
+
+
+_READONLYPROPERTY = _descriptor.ServiceDescriptor(
+ name='ReadOnlyProperty',
+ full_name='bluetooth.facade.ReadOnlyProperty',
+ file=DESCRIPTOR,
+ index=1,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ serialized_start=497,
+ serialized_end=598,
+ methods=[
+ _descriptor.MethodDescriptor(
+ name='ReadLocalAddress',
+ full_name='bluetooth.facade.ReadOnlyProperty.ReadLocalAddress',
+ index=0,
+ containing_service=None,
+ input_type=proto_dot_common__pb2._EMPTY,
+ output_type=proto_dot_common__pb2._BLUETOOTHADDRESS,
+ serialized_options=None,
+ create_key=_descriptor._internal_create_key,
+ ),
+])
+_sym_db.RegisterServiceDescriptor(_READONLYPROPERTY)
+
+DESCRIPTOR.services_by_name['ReadOnlyProperty'] = _READONLYPROPERTY
+
+# @@protoc_insertion_point(module_scope)
diff --git a/lib/proto/rootservice_pb2_grpc.py b/lib/proto/rootservice_pb2_grpc.py
new file mode 100644
index 0000000..961bd9f
--- /dev/null
+++ b/lib/proto/rootservice_pb2_grpc.py
@@ -0,0 +1,161 @@
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+"""Client and server classes corresponding to protobuf-defined services."""
+import grpc
+
+from . import common_pb2 as proto_dot_common__pb2
+from . import rootservice_pb2 as proto_dot_rootservice__pb2
+
+
+class RootFacadeStub(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.StartStack = channel.unary_unary(
+ '/bluetooth.facade.RootFacade/StartStack',
+ request_serializer=proto_dot_rootservice__pb2.StartStackRequest.SerializeToString,
+ response_deserializer=proto_dot_rootservice__pb2.StartStackResponse.FromString,
+ )
+ self.StopStack = channel.unary_unary(
+ '/bluetooth.facade.RootFacade/StopStack',
+ request_serializer=proto_dot_rootservice__pb2.StopStackRequest.SerializeToString,
+ response_deserializer=proto_dot_rootservice__pb2.StopStackResponse.FromString,
+ )
+
+
+class RootFacadeServicer(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def StartStack(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def StopStack(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_RootFacadeServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'StartStack': grpc.unary_unary_rpc_method_handler(
+ servicer.StartStack,
+ request_deserializer=proto_dot_rootservice__pb2.StartStackRequest.FromString,
+ response_serializer=proto_dot_rootservice__pb2.StartStackResponse.SerializeToString,
+ ),
+ 'StopStack': grpc.unary_unary_rpc_method_handler(
+ servicer.StopStack,
+ request_deserializer=proto_dot_rootservice__pb2.StopStackRequest.FromString,
+ response_serializer=proto_dot_rootservice__pb2.StopStackResponse.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'bluetooth.facade.RootFacade', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class RootFacade(object):
+ """Missing associated documentation comment in .proto file."""
+
+ @staticmethod
+ def StartStack(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.facade.RootFacade/StartStack',
+ proto_dot_rootservice__pb2.StartStackRequest.SerializeToString,
+ proto_dot_rootservice__pb2.StartStackResponse.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+ @staticmethod
+ def StopStack(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.facade.RootFacade/StopStack',
+ proto_dot_rootservice__pb2.StopStackRequest.SerializeToString,
+ proto_dot_rootservice__pb2.StopStackResponse.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+
+class ReadOnlyPropertyStub(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.ReadLocalAddress = channel.unary_unary(
+ '/bluetooth.facade.ReadOnlyProperty/ReadLocalAddress',
+ request_serializer=proto_dot_common__pb2.Empty.SerializeToString,
+ response_deserializer=proto_dot_common__pb2.BluetoothAddress.FromString,
+ )
+
+
+class ReadOnlyPropertyServicer(object):
+ """Missing associated documentation comment in .proto file."""
+
+ def ReadLocalAddress(self, request, context):
+ """Missing associated documentation comment in .proto file."""
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_ReadOnlyPropertyServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'ReadLocalAddress': grpc.unary_unary_rpc_method_handler(
+ servicer.ReadLocalAddress,
+ request_deserializer=proto_dot_common__pb2.Empty.FromString,
+ response_serializer=proto_dot_common__pb2.BluetoothAddress.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'bluetooth.facade.ReadOnlyProperty', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
+
+
+ # This class is part of an EXPERIMENTAL API.
+class ReadOnlyProperty(object):
+ """Missing associated documentation comment in .proto file."""
+
+ @staticmethod
+ def ReadLocalAddress(request,
+ target,
+ options=(),
+ channel_credentials=None,
+ call_credentials=None,
+ insecure=False,
+ compression=None,
+ wait_for_ready=None,
+ timeout=None,
+ metadata=None):
+ return grpc.experimental.unary_unary(request, target, '/bluetooth.facade.ReadOnlyProperty/ReadLocalAddress',
+ proto_dot_common__pb2.Empty.SerializeToString,
+ proto_dot_common__pb2.BluetoothAddress.FromString,
+ options, channel_credentials,
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/proto/common.proto b/proto/common.proto
new file mode 100644
index 0000000..a68bff2
--- /dev/null
+++ b/proto/common.proto
@@ -0,0 +1,37 @@
+syntax = "proto3";
+
+package bluetooth.facade;
+
+message Empty {}
+
+message Data {
+ bytes payload = 1;
+}
+
+message BluetoothAddress {
+ bytes address = 1;
+}
+
+enum BluetoothAddressTypeEnum {
+ PUBLIC_DEVICE_ADDRESS = 0x0;
+ RANDOM_DEVICE_ADDRESS = 0x1;
+ PUBLIC_IDENTITY_ADDRESS = 0x2;
+ RANDOM_IDENTITY_ADDRESS = 0x3;
+}
+
+enum BluetoothOwnAddressTypeEnum {
+ USE_PUBLIC_DEVICE_ADDRESS = 0x0;
+ USE_RANDOM_DEVICE_ADDRESS = 0x1;
+ RESOLVABLE_OR_PUBLIC_ADDRESS = 0x2;
+ RESOLVABLE_OR_RANDOM_ADDRESS = 0x3;
+}
+
+message BluetoothAddressWithType {
+ BluetoothAddress address = 1;
+ BluetoothAddressTypeEnum type = 2;
+}
+
+enum BluetoothPeerAddressTypeEnum {
+ PUBLIC_DEVICE_OR_IDENTITY_ADDRESS = 0x0;
+ RANDOM_DEVICE_OR_IDENTITY_ADDRESS = 0x1;
+} \ No newline at end of file
diff --git a/proto/l2cap.proto b/proto/l2cap.proto
new file mode 100644
index 0000000..4aa4422
--- /dev/null
+++ b/proto/l2cap.proto
@@ -0,0 +1,129 @@
+syntax = "proto3";
+
+package bluetooth.l2cap.classic;
+
+import "proto/common.proto";
+
+service L2capClassicModuleFacade {
+ rpc FetchConnectionComplete(facade.Empty) returns (stream ConnectionCompleteEvent) {
+ // Testing Android Bluetooth stack only. Optional for other stack.
+ }
+ rpc FetchConnectionClose(facade.Empty) returns (stream ConnectionCloseEvent) {
+ // Testing Android Bluetooth stack only. Optional for other stack.
+ }
+ rpc OpenChannel(OpenChannelRequest) returns (facade.Empty) {}
+ rpc CloseChannel(CloseChannelRequest) returns (facade.Empty) {}
+ rpc FetchL2capData(facade.Empty) returns (stream L2capPacket) {}
+ rpc SetDynamicChannel(SetEnableDynamicChannelRequest) returns (facade.Empty) {}
+ rpc SendDynamicChannelPacket(DynamicChannelPacket) returns (facade.Empty) {}
+ rpc SetTrafficPaused(SetTrafficPausedRequest) returns (facade.Empty) {}
+ rpc GetChannelQueueDepth(facade.Empty) returns (GetChannelQueueDepthResponse) {
+ // Get the buffer size of channel queue end for L2CAP user (how many packets we can buffer
+ // before L2CAP user dequeues.
+ }
+ rpc InitiateConnectionForSecurity(facade.BluetoothAddress) returns (facade.Empty) {}
+ rpc FetchSecurityConnectionEvents(facade.Empty) returns (stream LinkSecurityInterfaceCallbackEvent) {}
+ rpc SecurityLinkEnsureAuthenticated(facade.BluetoothAddress) returns (facade.Empty) {}
+ rpc SecurityLinkHold(facade.BluetoothAddress) returns (facade.Empty) {}
+ rpc SecurityLinkDisconnect(facade.BluetoothAddress) returns (facade.Empty) {}
+ rpc SecurityLinkRelease(facade.BluetoothAddress) returns (facade.Empty) {}
+}
+
+enum LinkSecurityInterfaceCallbackEventType {
+ ON_CONNECTED = 0;
+ ON_DISCONNECTED = 1;
+ ON_AUTHENTICATION_COMPLETE = 2;
+ ON_ENCRYPTION_CHANGE = 3;
+ ON_READ_REMOTE_VERSION_INFO = 4;
+ ON_READ_REMOTE_EXTENDED_FEATURES = 5;
+}
+
+message LinkSecurityInterfaceCallbackEvent {
+ facade.BluetoothAddress address = 1;
+ LinkSecurityInterfaceCallbackEventType event_type = 2;
+}
+
+message RegisterChannelRequest {
+ uint32 channel = 1;
+}
+
+message ConnectionCompleteEvent {
+ facade.BluetoothAddress remote = 1;
+}
+
+message ConnectionCloseEvent {
+ facade.BluetoothAddress remote = 1;
+ uint32 reason = 2;
+}
+
+enum RetransmissionFlowControlMode {
+ BASIC = 0;
+ ERTM = 1;
+ ERTM_OPTIONAL = 2;
+}
+
+message OpenChannelRequest {
+ facade.BluetoothAddress remote = 1;
+ uint32 psm = 2;
+ RetransmissionFlowControlMode mode = 3;
+}
+
+message CloseChannelRequest {
+ uint32 psm = 1;
+}
+
+enum ChannelSignalEventType {
+ OPEN = 0;
+ CLOSE = 1;
+ CONFIGURE = 2;
+}
+
+message ChannelSignalEvent {
+ uint32 cid = 1;
+ ChannelSignalEventType type = 2;
+}
+
+enum SendL2capPacketResultType {
+ OK = 0;
+ BAD_CID = 1;
+}
+
+message SendL2capPacketResult {
+ SendL2capPacketResultType result_type = 1;
+}
+
+message L2capPacket {
+ oneof channel_type {
+ uint32 psm = 1;
+ uint32 fixed_cid = 2;
+ }
+ bytes payload = 3;
+}
+
+message SetEnableDynamicChannelRequest {
+ uint32 psm = 1;
+ bool enable = 2;
+ RetransmissionFlowControlMode retransmission_mode = 3;
+}
+
+message DynamicChannelPacket {
+ facade.BluetoothAddress remote = 1;
+ uint32 psm = 2;
+ bytes payload = 3;
+}
+
+message SetTrafficPausedRequest {
+ bool paused = 1;
+ uint32 psm = 2;
+}
+
+message GetChannelQueueDepthResponse {
+ uint32 size = 1;
+}
+
+enum ClassicSecurityPolicy {
+ ENCRYPTED_TRANSPORT = 0;
+ AUTHENTICATED_ENCRYPTED_TRANSPORT = 1;
+ BEST = 2;
+ _SDP_ONLY_NO_SECURITY_WHATSOEVER_PLAINTEXT_TRANSPORT_OK = 3;
+}
diff --git a/proto/neighbor.proto b/proto/neighbor.proto
new file mode 100644
index 0000000..6fb7b05
--- /dev/null
+++ b/proto/neighbor.proto
@@ -0,0 +1,61 @@
+syntax = "proto3";
+
+package bluetooth.neighbor;
+
+import "proto/common.proto";
+
+service NeighborFacade {
+ rpc SetConnectability(EnableMsg) returns (facade.Empty) {}
+ rpc SetDiscoverability(DiscoverabilitiyMsg) returns (facade.Empty) {}
+ rpc SetInquiryMode(InquiryMsg) returns (stream InquiryResultMsg) {
+ // Sets inquiry mode and fetches inquiry result HCI packet
+ }
+ rpc ReadRemoteName(RemoteNameRequestMsg) returns (facade.Empty) {}
+ rpc GetRemoteNameEvents(facade.Empty) returns (stream RemoteNameResponseMsg) {}
+ // TODO: Should we use a blocking call for ReadRemoteName instead? (Note: blocking model may not work for GD stack)
+ rpc EnableInquiryScan(EnableMsg) returns (facade.Empty) {}
+ rpc EnablePageScan(EnableMsg) returns (facade.Empty) {}
+}
+
+message EnableMsg {
+ bool enabled = 1;
+}
+
+enum DiscoverabilityMode {
+ OFF = 0;
+ LIMITED = 1;
+ GENERAL = 2;
+}
+
+message DiscoverabilitiyMsg {
+ DiscoverabilityMode mode = 1;
+}
+
+enum ResultMode {
+ STANDARD = 0;
+ RSSI = 1;
+ EXTENDED = 2;
+}
+
+message InquiryMsg {
+ DiscoverabilityMode inquiry_mode = 1;
+ ResultMode result_mode = 2;
+ uint32 length_1_28s = 3;
+ uint32 max_results = 4; // 0 is unlimited
+}
+
+message InquiryResultMsg {
+ bytes packet = 1;
+}
+
+message RemoteNameRequestMsg {
+ bytes address = 1;
+ uint32 page_scan_repetition_mode = 2; // r0, r1, r2
+ uint32 clock_offset = 3;
+}
+
+message RemoteNameResponseMsg {
+ uint32 status = 1;
+ bytes address = 2;
+ bytes name = 3;
+}
diff --git a/proto/rootservice.proto b/proto/rootservice.proto
new file mode 100644
index 0000000..2ab245d
--- /dev/null
+++ b/proto/rootservice.proto
@@ -0,0 +1,32 @@
+syntax = "proto3";
+package bluetooth.facade;
+
+import "proto/common.proto";
+
+service RootFacade {
+ rpc StartStack(StartStackRequest) returns (StartStackResponse) {}
+ rpc StopStack(StopStackRequest) returns (StopStackResponse) {}
+}
+
+enum BluetoothModule {
+ HAL = 0;
+ HCI = 1;
+ HCI_INTERFACES = 2;
+ L2CAP = 3;
+ SECURITY = 4;
+ SHIM = 5;
+}
+
+message StartStackRequest {
+ BluetoothModule module_under_test = 1;
+}
+
+message StartStackResponse {}
+
+message StopStackRequest {}
+
+message StopStackResponse {}
+
+service ReadOnlyProperty {
+ rpc ReadLocalAddress(Empty) returns (BluetoothAddress) {}
+} \ No newline at end of file