bumble 0.0.200__py3-none-any.whl → 0.0.201__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. bumble/_version.py +2 -2
  2. bumble/att.py +1 -1
  3. bumble/transport/android_netsim.py +28 -11
  4. bumble/transport/grpc_protobuf/netsim/__init__.py +0 -0
  5. bumble/transport/grpc_protobuf/{common_pb2.py → netsim/common_pb2.py} +9 -8
  6. bumble/transport/grpc_protobuf/{common_pb2.pyi → netsim/common_pb2.pyi} +11 -5
  7. bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.py +29 -0
  8. bumble/transport/grpc_protobuf/{hci_packet_pb2.pyi → netsim/hci_packet_pb2.pyi} +13 -7
  9. bumble/transport/grpc_protobuf/netsim/model_pb2.py +63 -0
  10. bumble/transport/grpc_protobuf/netsim/model_pb2.pyi +238 -0
  11. bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.py +32 -0
  12. bumble/transport/grpc_protobuf/{packet_streamer_pb2.pyi → netsim/packet_streamer_pb2.pyi} +6 -6
  13. bumble/transport/grpc_protobuf/{packet_streamer_pb2_grpc.py → netsim/packet_streamer_pb2_grpc.py} +7 -7
  14. bumble/transport/grpc_protobuf/netsim/startup_pb2.py +41 -0
  15. bumble/transport/grpc_protobuf/netsim/startup_pb2.pyi +76 -0
  16. bumble/transport/grpc_protobuf/netsim/startup_pb2_grpc.py +4 -0
  17. bumble/transport/grpc_protobuf/rootcanal/__init__.py +0 -0
  18. bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.py +39 -0
  19. bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.pyi +78 -0
  20. bumble/transport/grpc_protobuf/rootcanal/configuration_pb2_grpc.py +4 -0
  21. {bumble-0.0.200.dist-info → bumble-0.0.201.dist-info}/METADATA +1 -1
  22. {bumble-0.0.200.dist-info → bumble-0.0.201.dist-info}/RECORD +29 -21
  23. bumble/transport/grpc_protobuf/hci_packet_pb2.py +0 -28
  24. bumble/transport/grpc_protobuf/packet_streamer_pb2.py +0 -31
  25. bumble/transport/grpc_protobuf/startup_pb2.py +0 -32
  26. bumble/transport/grpc_protobuf/startup_pb2.pyi +0 -46
  27. /bumble/transport/grpc_protobuf/{common_pb2_grpc.py → netsim/common_pb2_grpc.py} +0 -0
  28. /bumble/transport/grpc_protobuf/{hci_packet_pb2_grpc.py → netsim/hci_packet_pb2_grpc.py} +0 -0
  29. /bumble/transport/grpc_protobuf/{startup_pb2_grpc.py → netsim/model_pb2_grpc.py} +0 -0
  30. {bumble-0.0.200.dist-info → bumble-0.0.201.dist-info}/LICENSE +0 -0
  31. {bumble-0.0.200.dist-info → bumble-0.0.201.dist-info}/WHEEL +0 -0
  32. {bumble-0.0.200.dist-info → bumble-0.0.201.dist-info}/entry_points.txt +0 -0
  33. {bumble-0.0.200.dist-info → bumble-0.0.201.dist-info}/top_level.txt +0 -0
bumble/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.0.200'
16
- __version_tuple__ = version_tuple = (0, 0, 200)
15
+ __version__ = version = '0.0.201'
16
+ __version_tuple__ = version_tuple = (0, 0, 201)
bumble/att.py CHANGED
@@ -710,7 +710,7 @@ class ATT_Prepare_Write_Response(ATT_PDU):
710
710
 
711
711
 
712
712
  # -----------------------------------------------------------------------------
713
- @ATT_PDU.subclass([])
713
+ @ATT_PDU.subclass([("flags", 1)])
714
714
  class ATT_Execute_Write_Request(ATT_PDU):
715
715
  '''
716
716
  See Bluetooth spec @ Vol 3, Part F - 3.4.6.3 Execute Write Request
@@ -20,12 +20,14 @@ import atexit
20
20
  import logging
21
21
  import os
22
22
  import pathlib
23
+ import platform
23
24
  import sys
24
25
  from typing import Dict, Optional
25
26
 
26
27
  import grpc.aio
27
28
 
28
- from .common import (
29
+ import bumble
30
+ from bumble.transport.common import (
29
31
  ParserSource,
30
32
  PumpedTransport,
31
33
  PumpedPacketSource,
@@ -36,15 +38,15 @@ from .common import (
36
38
  )
37
39
 
38
40
  # pylint: disable=no-name-in-module
39
- from .grpc_protobuf.packet_streamer_pb2_grpc import (
41
+ from .grpc_protobuf.netsim.packet_streamer_pb2_grpc import (
40
42
  PacketStreamerStub,
41
43
  PacketStreamerServicer,
42
44
  add_PacketStreamerServicer_to_server,
43
45
  )
44
- from .grpc_protobuf.packet_streamer_pb2 import PacketRequest, PacketResponse
45
- from .grpc_protobuf.hci_packet_pb2 import HCIPacket
46
- from .grpc_protobuf.startup_pb2 import Chip, ChipInfo
47
- from .grpc_protobuf.common_pb2 import ChipKind
46
+ from .grpc_protobuf.netsim.packet_streamer_pb2 import PacketRequest, PacketResponse
47
+ from .grpc_protobuf.netsim.hci_packet_pb2 import HCIPacket
48
+ from .grpc_protobuf.netsim.startup_pb2 import Chip, ChipInfo, DeviceInfo
49
+ from .grpc_protobuf.netsim.common_pb2 import ChipKind
48
50
 
49
51
 
50
52
  # -----------------------------------------------------------------------------
@@ -58,6 +60,7 @@ logger = logging.getLogger(__name__)
58
60
  # -----------------------------------------------------------------------------
59
61
  DEFAULT_NAME = 'bumble0'
60
62
  DEFAULT_MANUFACTURER = 'Bumble'
63
+ DEFAULT_VARIANT = ''
61
64
 
62
65
 
63
66
  # -----------------------------------------------------------------------------
@@ -199,7 +202,6 @@ async def open_android_netsim_controller_transport(
199
202
  data = (
200
203
  bytes([request.hci_packet.packet_type]) + request.hci_packet.packet
201
204
  )
202
- logger.debug(f'<<< PACKET: {data.hex()}')
203
205
  self.on_data_received(data)
204
206
 
205
207
  async def send_packet(self, data):
@@ -253,7 +255,7 @@ async def open_android_netsim_controller_transport(
253
255
 
254
256
  # Check that we don't already have a device
255
257
  if self.device:
256
- logger.debug('busy, already serving a device')
258
+ logger.debug('Busy, already serving a device')
257
259
  return PacketResponse(error='Busy')
258
260
 
259
261
  # Instantiate a new device
@@ -312,16 +314,24 @@ async def open_android_netsim_host_transport_with_channel(
312
314
  ):
313
315
  # Wrapper for I/O operations
314
316
  class HciDevice:
315
- def __init__(self, name, manufacturer, hci_device):
317
+ def __init__(self, name, variant, manufacturer, hci_device):
316
318
  self.name = name
319
+ self.variant = variant
317
320
  self.manufacturer = manufacturer
318
321
  self.hci_device = hci_device
319
322
 
320
323
  async def start(self): # Send the startup info
321
- chip_info = ChipInfo(
324
+ device_info = DeviceInfo(
322
325
  name=self.name,
323
- chip=Chip(kind=ChipKind.BLUETOOTH, manufacturer=self.manufacturer),
326
+ kind='BUMBLE',
327
+ version=bumble.__version__,
328
+ sdk_version=platform.python_version(),
329
+ build_id=platform.platform(),
330
+ arch=platform.machine(),
331
+ variant=self.variant,
324
332
  )
333
+ chip = Chip(kind=ChipKind.BLUETOOTH, manufacturer=self.manufacturer)
334
+ chip_info = ChipInfo(name=self.name, chip=chip, device_info=device_info)
325
335
  logger.debug(f'Sending chip info to netsim: {chip_info}')
326
336
  await self.hci_device.write(PacketRequest(initial_info=chip_info))
327
337
 
@@ -349,12 +359,16 @@ async def open_android_netsim_host_transport_with_channel(
349
359
  )
350
360
 
351
361
  name = DEFAULT_NAME if options is None else options.get('name', DEFAULT_NAME)
362
+ variant = (
363
+ DEFAULT_VARIANT if options is None else options.get('variant', DEFAULT_VARIANT)
364
+ )
352
365
  manufacturer = DEFAULT_MANUFACTURER
353
366
 
354
367
  # Connect as a host
355
368
  service = PacketStreamerStub(channel)
356
369
  hci_device = HciDevice(
357
370
  name=name,
371
+ variant=variant,
358
372
  manufacturer=manufacturer,
359
373
  hci_device=service.StreamPackets(),
360
374
  )
@@ -404,6 +418,9 @@ async def open_android_netsim_transport(spec: Optional[str]) -> Transport:
404
418
  The "chip" name, used to identify the "chip" instance. This
405
419
  may be useful when several clients are connected, since each needs to use a
406
420
  different name.
421
+ variant=<variant>
422
+ The device info variant field, which may be used to convey a device or
423
+ application type (ex: "virtual-speaker", or "keyboard")
407
424
 
408
425
  In `controller` mode:
409
426
  The <host>:<port> part is required. <host> may be the address of a local network
File without changes
@@ -1,11 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: common.proto
3
+ # source: netsim/common.proto
4
+ # Protobuf Python Version: 4.25.1
4
5
  """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
6
  from google.protobuf import descriptor as _descriptor
7
7
  from google.protobuf import descriptor_pool as _descriptor_pool
8
8
  from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
9
10
  # @@protoc_insertion_point(imports)
10
11
 
11
12
  _sym_db = _symbol_database.Default()
@@ -13,13 +14,13 @@ _sym_db = _symbol_database.Default()
13
14
 
14
15
 
15
16
 
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x63ommon.proto\x12\rnetsim.common*=\n\x08\x43hipKind\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\r\n\tBLUETOOTH\x10\x01\x12\x08\n\x04WIFI\x10\x02\x12\x07\n\x03UWB\x10\x03\x62\x06proto3')
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13netsim/common.proto\x12\rnetsim.common*S\n\x08\x43hipKind\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\r\n\tBLUETOOTH\x10\x01\x12\x08\n\x04WIFI\x10\x02\x12\x07\n\x03UWB\x10\x03\x12\x14\n\x10\x42LUETOOTH_BEACON\x10\x04\x62\x06proto3')
17
18
 
18
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'common_pb2', globals())
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'netsim.common_pb2', _globals)
20
22
  if _descriptor._USE_C_DESCRIPTORS == False:
21
-
22
23
  DESCRIPTOR._options = None
23
- _CHIPKIND._serialized_start=31
24
- _CHIPKIND._serialized_end=92
24
+ _globals['_CHIPKIND']._serialized_start=38
25
+ _globals['_CHIPKIND']._serialized_end=121
25
26
  # @@protoc_insertion_point(module_scope)
@@ -2,11 +2,17 @@ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
2
2
  from google.protobuf import descriptor as _descriptor
3
3
  from typing import ClassVar as _ClassVar
4
4
 
5
- BLUETOOTH: ChipKind
6
5
  DESCRIPTOR: _descriptor.FileDescriptor
7
- UNSPECIFIED: ChipKind
8
- UWB: ChipKind
9
- WIFI: ChipKind
10
6
 
11
7
  class ChipKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
12
- __slots__ = []
8
+ __slots__ = ()
9
+ UNSPECIFIED: _ClassVar[ChipKind]
10
+ BLUETOOTH: _ClassVar[ChipKind]
11
+ WIFI: _ClassVar[ChipKind]
12
+ UWB: _ClassVar[ChipKind]
13
+ BLUETOOTH_BEACON: _ClassVar[ChipKind]
14
+ UNSPECIFIED: ChipKind
15
+ BLUETOOTH: ChipKind
16
+ WIFI: ChipKind
17
+ UWB: ChipKind
18
+ BLUETOOTH_BEACON: ChipKind
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: netsim/hci_packet.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17netsim/hci_packet.proto\x12\rnetsim.packet\"\xb2\x01\n\tHCIPacket\x12\x38\n\x0bpacket_type\x18\x01 \x01(\x0e\x32#.netsim.packet.HCIPacket.PacketType\x12\x0e\n\x06packet\x18\x02 \x01(\x0c\"[\n\nPacketType\x12\x1a\n\x16HCI_PACKET_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x43OMMAND\x10\x01\x12\x07\n\x03\x41\x43L\x10\x02\x12\x07\n\x03SCO\x10\x03\x12\t\n\x05\x45VENT\x10\x04\x12\x07\n\x03ISO\x10\x05\x42J\n\x1f\x63om.android.emulation.bluetoothP\x01\xf8\x01\x01\xa2\x02\x03\x41\x45\x42\xaa\x02\x1b\x41ndroid.Emulation.Bluetoothb\x06proto3')
18
+
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'netsim.hci_packet_pb2', _globals)
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+ _globals['DESCRIPTOR']._options = None
24
+ _globals['DESCRIPTOR']._serialized_options = b'\n\037com.android.emulation.bluetoothP\001\370\001\001\242\002\003AEB\252\002\033Android.Emulation.Bluetooth'
25
+ _globals['_HCIPACKET']._serialized_start=43
26
+ _globals['_HCIPACKET']._serialized_end=221
27
+ _globals['_HCIPACKET_PACKETTYPE']._serialized_start=130
28
+ _globals['_HCIPACKET_PACKETTYPE']._serialized_end=221
29
+ # @@protoc_insertion_point(module_scope)
@@ -6,17 +6,23 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
6
6
  DESCRIPTOR: _descriptor.FileDescriptor
7
7
 
8
8
  class HCIPacket(_message.Message):
9
- __slots__ = ["packet", "packet_type"]
9
+ __slots__ = ("packet_type", "packet")
10
10
  class PacketType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
11
- __slots__ = []
12
- ACL: HCIPacket.PacketType
11
+ __slots__ = ()
12
+ HCI_PACKET_UNSPECIFIED: _ClassVar[HCIPacket.PacketType]
13
+ COMMAND: _ClassVar[HCIPacket.PacketType]
14
+ ACL: _ClassVar[HCIPacket.PacketType]
15
+ SCO: _ClassVar[HCIPacket.PacketType]
16
+ EVENT: _ClassVar[HCIPacket.PacketType]
17
+ ISO: _ClassVar[HCIPacket.PacketType]
18
+ HCI_PACKET_UNSPECIFIED: HCIPacket.PacketType
13
19
  COMMAND: HCIPacket.PacketType
20
+ ACL: HCIPacket.PacketType
21
+ SCO: HCIPacket.PacketType
14
22
  EVENT: HCIPacket.PacketType
15
- HCI_PACKET_UNSPECIFIED: HCIPacket.PacketType
16
23
  ISO: HCIPacket.PacketType
17
- PACKET_FIELD_NUMBER: _ClassVar[int]
18
24
  PACKET_TYPE_FIELD_NUMBER: _ClassVar[int]
19
- SCO: HCIPacket.PacketType
20
- packet: bytes
25
+ PACKET_FIELD_NUMBER: _ClassVar[int]
21
26
  packet_type: HCIPacket.PacketType
27
+ packet: bytes
22
28
  def __init__(self, packet_type: _Optional[_Union[HCIPacket.PacketType, str]] = ..., packet: _Optional[bytes] = ...) -> None: ...
@@ -0,0 +1,63 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: netsim/model.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from bumble.transport.grpc_protobuf.netsim import common_pb2 as netsim_dot_common__pb2
16
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
17
+ from bumble.transport.grpc_protobuf.rootcanal import configuration_pb2 as rootcanal_dot_configuration__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12netsim/model.proto\x12\x0cnetsim.model\x1a\x13netsim/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1drootcanal/configuration.proto\"+\n\x08Position\x12\t\n\x01x\x18\x01 \x01(\x02\x12\t\n\x01y\x18\x02 \x01(\x02\x12\t\n\x01z\x18\x03 \x01(\x02\"7\n\x0bOrientation\x12\x0b\n\x03yaw\x18\x01 \x01(\x02\x12\r\n\x05pitch\x18\x02 \x01(\x02\x12\x0c\n\x04roll\x18\x03 \x01(\x02\"\x84\x0c\n\x04\x43hip\x12%\n\x04kind\x18\x01 \x01(\x0e\x32\x17.netsim.common.ChipKind\x12\n\n\x02id\x18\x02 \x01(\r\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x04 \x01(\t\x12\x14\n\x0cproduct_name\x18\x05 \x01(\t\x12*\n\x02\x62t\x18\x06 \x01(\x0b\x32\x1c.netsim.model.Chip.BluetoothH\x00\x12\x32\n\nble_beacon\x18\t \x01(\x0b\x32\x1c.netsim.model.Chip.BleBeaconH\x00\x12\'\n\x03uwb\x18\x07 \x01(\x0b\x32\x18.netsim.model.Chip.RadioH\x00\x12(\n\x04wifi\x18\x08 \x01(\x0b\x32\x18.netsim.model.Chip.RadioH\x00\x12+\n\x06offset\x18\x0f \x01(\x0b\x32\x16.netsim.model.PositionH\x01\x88\x01\x01\x1aX\n\x05Radio\x12\x12\n\x05state\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\r\n\x05range\x18\x02 \x01(\x02\x12\x10\n\x08tx_count\x18\x03 \x01(\x05\x12\x10\n\x08rx_count\x18\x04 \x01(\x05\x42\x08\n\x06_state\x1a\xb1\x01\n\tBluetooth\x12,\n\nlow_energy\x18\x01 \x01(\x0b\x32\x18.netsim.model.Chip.Radio\x12)\n\x07\x63lassic\x18\x02 \x01(\x0b\x32\x18.netsim.model.Chip.Radio\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12:\n\rbt_properties\x18\x04 \x01(\x0b\x32#.rootcanal.configuration.Controller\x1a\x8d\x07\n\tBleBeacon\x12(\n\x02\x62t\x18\x01 \x01(\x0b\x32\x1c.netsim.model.Chip.Bluetooth\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12@\n\x08settings\x18\x03 \x01(\x0b\x32..netsim.model.Chip.BleBeacon.AdvertiseSettings\x12<\n\x08\x61\x64v_data\x18\x04 \x01(\x0b\x32*.netsim.model.Chip.BleBeacon.AdvertiseData\x12\x41\n\rscan_response\x18\x05 \x01(\x0b\x32*.netsim.model.Chip.BleBeacon.AdvertiseData\x1a\xaa\x03\n\x11\x41\x64vertiseSettings\x12V\n\x0e\x61\x64vertise_mode\x18\x01 \x01(\x0e\x32<.netsim.model.Chip.BleBeacon.AdvertiseSettings.AdvertiseModeH\x00\x12\x16\n\x0cmilliseconds\x18\x02 \x01(\x04H\x00\x12Y\n\x0etx_power_level\x18\x03 \x01(\x0e\x32?.netsim.model.Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPowerH\x01\x12\r\n\x03\x64\x62m\x18\x04 \x01(\x05H\x01\x12\x11\n\tscannable\x18\x05 \x01(\x08\x12\x0f\n\x07timeout\x18\x06 \x01(\x04\"=\n\rAdvertiseMode\x12\r\n\tLOW_POWER\x10\x00\x12\x0c\n\x08\x42\x41LANCED\x10\x01\x12\x0f\n\x0bLOW_LATENCY\x10\x02\"@\n\x10\x41\x64vertiseTxPower\x12\r\n\tULTRA_LOW\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\x08\n\x04HIGH\x10\x03\x42\n\n\x08intervalB\n\n\x08tx_power\x1a\xd4\x01\n\rAdvertiseData\x12\x1b\n\x13include_device_name\x18\x01 \x01(\x08\x12\x1e\n\x16include_tx_power_level\x18\x02 \x01(\x08\x12\x19\n\x11manufacturer_data\x18\x03 \x01(\x0c\x12\x44\n\x08services\x18\x04 \x03(\x0b\x32\x32.netsim.model.Chip.BleBeacon.AdvertiseData.Service\x1a%\n\x07Service\x12\x0c\n\x04uuid\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x42\x06\n\x04\x63hipB\t\n\x07_offset\"\xea\x03\n\nChipCreate\x12%\n\x04kind\x18\x01 \x01(\x0e\x32\x17.netsim.common.ChipKind\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x04 \x01(\t\x12\x14\n\x0cproduct_name\x18\x05 \x01(\t\x12>\n\nble_beacon\x18\x06 \x01(\x0b\x32(.netsim.model.ChipCreate.BleBeaconCreateH\x00\x12:\n\rbt_properties\x18\x07 \x01(\x0b\x32#.rootcanal.configuration.Controller\x1a\xe5\x01\n\x0f\x42leBeaconCreate\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12@\n\x08settings\x18\x03 \x01(\x0b\x32..netsim.model.Chip.BleBeacon.AdvertiseSettings\x12<\n\x08\x61\x64v_data\x18\x04 \x01(\x0b\x32*.netsim.model.Chip.BleBeacon.AdvertiseData\x12\x41\n\rscan_response\x18\x05 \x01(\x0b\x32*.netsim.model.Chip.BleBeacon.AdvertiseDataB\x06\n\x04\x63hip\"\xc1\x01\n\x06\x44\x65vice\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x14\n\x07visible\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12(\n\x08position\x18\x04 \x01(\x0b\x32\x16.netsim.model.Position\x12.\n\x0borientation\x18\x05 \x01(\x0b\x32\x19.netsim.model.Orientation\x12!\n\x05\x63hips\x18\x06 \x03(\x0b\x32\x12.netsim.model.ChipB\n\n\x08_visible\"\x9f\x01\n\x0c\x44\x65viceCreate\x12\x0c\n\x04name\x18\x01 \x01(\t\x12(\n\x08position\x18\x02 \x01(\x0b\x32\x16.netsim.model.Position\x12.\n\x0borientation\x18\x03 \x01(\x0b\x32\x19.netsim.model.Orientation\x12\'\n\x05\x63hips\x18\x04 \x03(\x0b\x32\x18.netsim.model.ChipCreate\".\n\x05Scene\x12%\n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\x14.netsim.model.Device\"\xd1\x01\n\x07\x43\x61pture\x12\n\n\x02id\x18\x01 \x01(\r\x12*\n\tchip_kind\x18\x02 \x01(\x0e\x32\x17.netsim.common.ChipKind\x12\x13\n\x0b\x64\x65vice_name\x18\x03 \x01(\t\x12\x12\n\x05state\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12\x0c\n\x04size\x18\x05 \x01(\x05\x12\x0f\n\x07records\x18\x06 \x01(\x05\x12-\n\ttimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\r\n\x05valid\x18\x08 \x01(\x08\x42\x08\n\x06_state*e\n\x07PhyKind\x12\x08\n\x04NONE\x10\x00\x12\x15\n\x11\x42LUETOOTH_CLASSIC\x10\x01\x12\x18\n\x14\x42LUETOOTH_LOW_ENERGY\x10\x02\x12\x08\n\x04WIFI\x10\x03\x12\x07\n\x03UWB\x10\x04\x12\x0c\n\x08WIFI_RTT\x10\x05\x62\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'netsim.model_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_PHYKIND']._serialized_start=2877
28
+ _globals['_PHYKIND']._serialized_end=2978
29
+ _globals['_POSITION']._serialized_start=121
30
+ _globals['_POSITION']._serialized_end=164
31
+ _globals['_ORIENTATION']._serialized_start=166
32
+ _globals['_ORIENTATION']._serialized_end=221
33
+ _globals['_CHIP']._serialized_start=224
34
+ _globals['_CHIP']._serialized_end=1764
35
+ _globals['_CHIP_RADIO']._serialized_start=565
36
+ _globals['_CHIP_RADIO']._serialized_end=653
37
+ _globals['_CHIP_BLUETOOTH']._serialized_start=656
38
+ _globals['_CHIP_BLUETOOTH']._serialized_end=833
39
+ _globals['_CHIP_BLEBEACON']._serialized_start=836
40
+ _globals['_CHIP_BLEBEACON']._serialized_end=1745
41
+ _globals['_CHIP_BLEBEACON_ADVERTISESETTINGS']._serialized_start=1104
42
+ _globals['_CHIP_BLEBEACON_ADVERTISESETTINGS']._serialized_end=1530
43
+ _globals['_CHIP_BLEBEACON_ADVERTISESETTINGS_ADVERTISEMODE']._serialized_start=1379
44
+ _globals['_CHIP_BLEBEACON_ADVERTISESETTINGS_ADVERTISEMODE']._serialized_end=1440
45
+ _globals['_CHIP_BLEBEACON_ADVERTISESETTINGS_ADVERTISETXPOWER']._serialized_start=1442
46
+ _globals['_CHIP_BLEBEACON_ADVERTISESETTINGS_ADVERTISETXPOWER']._serialized_end=1506
47
+ _globals['_CHIP_BLEBEACON_ADVERTISEDATA']._serialized_start=1533
48
+ _globals['_CHIP_BLEBEACON_ADVERTISEDATA']._serialized_end=1745
49
+ _globals['_CHIP_BLEBEACON_ADVERTISEDATA_SERVICE']._serialized_start=1708
50
+ _globals['_CHIP_BLEBEACON_ADVERTISEDATA_SERVICE']._serialized_end=1745
51
+ _globals['_CHIPCREATE']._serialized_start=1767
52
+ _globals['_CHIPCREATE']._serialized_end=2257
53
+ _globals['_CHIPCREATE_BLEBEACONCREATE']._serialized_start=2020
54
+ _globals['_CHIPCREATE_BLEBEACONCREATE']._serialized_end=2249
55
+ _globals['_DEVICE']._serialized_start=2260
56
+ _globals['_DEVICE']._serialized_end=2453
57
+ _globals['_DEVICECREATE']._serialized_start=2456
58
+ _globals['_DEVICECREATE']._serialized_end=2615
59
+ _globals['_SCENE']._serialized_start=2617
60
+ _globals['_SCENE']._serialized_end=2663
61
+ _globals['_CAPTURE']._serialized_start=2666
62
+ _globals['_CAPTURE']._serialized_end=2875
63
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,238 @@
1
+ from bumble.transport.grpc_protobuf.netsim import common_pb2 as _common_pb2
2
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
3
+ from bumble.transport.grpc_protobuf.rootcanal import configuration_pb2 as _configuration_pb2
4
+ from google.protobuf.internal import containers as _containers
5
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import message as _message
8
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
9
+
10
+ DESCRIPTOR: _descriptor.FileDescriptor
11
+
12
+ class PhyKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
13
+ __slots__ = ()
14
+ NONE: _ClassVar[PhyKind]
15
+ BLUETOOTH_CLASSIC: _ClassVar[PhyKind]
16
+ BLUETOOTH_LOW_ENERGY: _ClassVar[PhyKind]
17
+ WIFI: _ClassVar[PhyKind]
18
+ UWB: _ClassVar[PhyKind]
19
+ WIFI_RTT: _ClassVar[PhyKind]
20
+ NONE: PhyKind
21
+ BLUETOOTH_CLASSIC: PhyKind
22
+ BLUETOOTH_LOW_ENERGY: PhyKind
23
+ WIFI: PhyKind
24
+ UWB: PhyKind
25
+ WIFI_RTT: PhyKind
26
+
27
+ class Position(_message.Message):
28
+ __slots__ = ("x", "y", "z")
29
+ X_FIELD_NUMBER: _ClassVar[int]
30
+ Y_FIELD_NUMBER: _ClassVar[int]
31
+ Z_FIELD_NUMBER: _ClassVar[int]
32
+ x: float
33
+ y: float
34
+ z: float
35
+ def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., z: _Optional[float] = ...) -> None: ...
36
+
37
+ class Orientation(_message.Message):
38
+ __slots__ = ("yaw", "pitch", "roll")
39
+ YAW_FIELD_NUMBER: _ClassVar[int]
40
+ PITCH_FIELD_NUMBER: _ClassVar[int]
41
+ ROLL_FIELD_NUMBER: _ClassVar[int]
42
+ yaw: float
43
+ pitch: float
44
+ roll: float
45
+ def __init__(self, yaw: _Optional[float] = ..., pitch: _Optional[float] = ..., roll: _Optional[float] = ...) -> None: ...
46
+
47
+ class Chip(_message.Message):
48
+ __slots__ = ("kind", "id", "name", "manufacturer", "product_name", "bt", "ble_beacon", "uwb", "wifi", "offset")
49
+ class Radio(_message.Message):
50
+ __slots__ = ("state", "range", "tx_count", "rx_count")
51
+ STATE_FIELD_NUMBER: _ClassVar[int]
52
+ RANGE_FIELD_NUMBER: _ClassVar[int]
53
+ TX_COUNT_FIELD_NUMBER: _ClassVar[int]
54
+ RX_COUNT_FIELD_NUMBER: _ClassVar[int]
55
+ state: bool
56
+ range: float
57
+ tx_count: int
58
+ rx_count: int
59
+ def __init__(self, state: bool = ..., range: _Optional[float] = ..., tx_count: _Optional[int] = ..., rx_count: _Optional[int] = ...) -> None: ...
60
+ class Bluetooth(_message.Message):
61
+ __slots__ = ("low_energy", "classic", "address", "bt_properties")
62
+ LOW_ENERGY_FIELD_NUMBER: _ClassVar[int]
63
+ CLASSIC_FIELD_NUMBER: _ClassVar[int]
64
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
65
+ BT_PROPERTIES_FIELD_NUMBER: _ClassVar[int]
66
+ low_energy: Chip.Radio
67
+ classic: Chip.Radio
68
+ address: str
69
+ bt_properties: _configuration_pb2.Controller
70
+ def __init__(self, low_energy: _Optional[_Union[Chip.Radio, _Mapping]] = ..., classic: _Optional[_Union[Chip.Radio, _Mapping]] = ..., address: _Optional[str] = ..., bt_properties: _Optional[_Union[_configuration_pb2.Controller, _Mapping]] = ...) -> None: ...
71
+ class BleBeacon(_message.Message):
72
+ __slots__ = ("bt", "address", "settings", "adv_data", "scan_response")
73
+ class AdvertiseSettings(_message.Message):
74
+ __slots__ = ("advertise_mode", "milliseconds", "tx_power_level", "dbm", "scannable", "timeout")
75
+ class AdvertiseMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
76
+ __slots__ = ()
77
+ LOW_POWER: _ClassVar[Chip.BleBeacon.AdvertiseSettings.AdvertiseMode]
78
+ BALANCED: _ClassVar[Chip.BleBeacon.AdvertiseSettings.AdvertiseMode]
79
+ LOW_LATENCY: _ClassVar[Chip.BleBeacon.AdvertiseSettings.AdvertiseMode]
80
+ LOW_POWER: Chip.BleBeacon.AdvertiseSettings.AdvertiseMode
81
+ BALANCED: Chip.BleBeacon.AdvertiseSettings.AdvertiseMode
82
+ LOW_LATENCY: Chip.BleBeacon.AdvertiseSettings.AdvertiseMode
83
+ class AdvertiseTxPower(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
84
+ __slots__ = ()
85
+ ULTRA_LOW: _ClassVar[Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower]
86
+ LOW: _ClassVar[Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower]
87
+ MEDIUM: _ClassVar[Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower]
88
+ HIGH: _ClassVar[Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower]
89
+ ULTRA_LOW: Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower
90
+ LOW: Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower
91
+ MEDIUM: Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower
92
+ HIGH: Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower
93
+ ADVERTISE_MODE_FIELD_NUMBER: _ClassVar[int]
94
+ MILLISECONDS_FIELD_NUMBER: _ClassVar[int]
95
+ TX_POWER_LEVEL_FIELD_NUMBER: _ClassVar[int]
96
+ DBM_FIELD_NUMBER: _ClassVar[int]
97
+ SCANNABLE_FIELD_NUMBER: _ClassVar[int]
98
+ TIMEOUT_FIELD_NUMBER: _ClassVar[int]
99
+ advertise_mode: Chip.BleBeacon.AdvertiseSettings.AdvertiseMode
100
+ milliseconds: int
101
+ tx_power_level: Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower
102
+ dbm: int
103
+ scannable: bool
104
+ timeout: int
105
+ def __init__(self, advertise_mode: _Optional[_Union[Chip.BleBeacon.AdvertiseSettings.AdvertiseMode, str]] = ..., milliseconds: _Optional[int] = ..., tx_power_level: _Optional[_Union[Chip.BleBeacon.AdvertiseSettings.AdvertiseTxPower, str]] = ..., dbm: _Optional[int] = ..., scannable: bool = ..., timeout: _Optional[int] = ...) -> None: ...
106
+ class AdvertiseData(_message.Message):
107
+ __slots__ = ("include_device_name", "include_tx_power_level", "manufacturer_data", "services")
108
+ class Service(_message.Message):
109
+ __slots__ = ("uuid", "data")
110
+ UUID_FIELD_NUMBER: _ClassVar[int]
111
+ DATA_FIELD_NUMBER: _ClassVar[int]
112
+ uuid: str
113
+ data: bytes
114
+ def __init__(self, uuid: _Optional[str] = ..., data: _Optional[bytes] = ...) -> None: ...
115
+ INCLUDE_DEVICE_NAME_FIELD_NUMBER: _ClassVar[int]
116
+ INCLUDE_TX_POWER_LEVEL_FIELD_NUMBER: _ClassVar[int]
117
+ MANUFACTURER_DATA_FIELD_NUMBER: _ClassVar[int]
118
+ SERVICES_FIELD_NUMBER: _ClassVar[int]
119
+ include_device_name: bool
120
+ include_tx_power_level: bool
121
+ manufacturer_data: bytes
122
+ services: _containers.RepeatedCompositeFieldContainer[Chip.BleBeacon.AdvertiseData.Service]
123
+ def __init__(self, include_device_name: bool = ..., include_tx_power_level: bool = ..., manufacturer_data: _Optional[bytes] = ..., services: _Optional[_Iterable[_Union[Chip.BleBeacon.AdvertiseData.Service, _Mapping]]] = ...) -> None: ...
124
+ BT_FIELD_NUMBER: _ClassVar[int]
125
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
126
+ SETTINGS_FIELD_NUMBER: _ClassVar[int]
127
+ ADV_DATA_FIELD_NUMBER: _ClassVar[int]
128
+ SCAN_RESPONSE_FIELD_NUMBER: _ClassVar[int]
129
+ bt: Chip.Bluetooth
130
+ address: str
131
+ settings: Chip.BleBeacon.AdvertiseSettings
132
+ adv_data: Chip.BleBeacon.AdvertiseData
133
+ scan_response: Chip.BleBeacon.AdvertiseData
134
+ def __init__(self, bt: _Optional[_Union[Chip.Bluetooth, _Mapping]] = ..., address: _Optional[str] = ..., settings: _Optional[_Union[Chip.BleBeacon.AdvertiseSettings, _Mapping]] = ..., adv_data: _Optional[_Union[Chip.BleBeacon.AdvertiseData, _Mapping]] = ..., scan_response: _Optional[_Union[Chip.BleBeacon.AdvertiseData, _Mapping]] = ...) -> None: ...
135
+ KIND_FIELD_NUMBER: _ClassVar[int]
136
+ ID_FIELD_NUMBER: _ClassVar[int]
137
+ NAME_FIELD_NUMBER: _ClassVar[int]
138
+ MANUFACTURER_FIELD_NUMBER: _ClassVar[int]
139
+ PRODUCT_NAME_FIELD_NUMBER: _ClassVar[int]
140
+ BT_FIELD_NUMBER: _ClassVar[int]
141
+ BLE_BEACON_FIELD_NUMBER: _ClassVar[int]
142
+ UWB_FIELD_NUMBER: _ClassVar[int]
143
+ WIFI_FIELD_NUMBER: _ClassVar[int]
144
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
145
+ kind: _common_pb2.ChipKind
146
+ id: int
147
+ name: str
148
+ manufacturer: str
149
+ product_name: str
150
+ bt: Chip.Bluetooth
151
+ ble_beacon: Chip.BleBeacon
152
+ uwb: Chip.Radio
153
+ wifi: Chip.Radio
154
+ offset: Position
155
+ def __init__(self, kind: _Optional[_Union[_common_pb2.ChipKind, str]] = ..., id: _Optional[int] = ..., name: _Optional[str] = ..., manufacturer: _Optional[str] = ..., product_name: _Optional[str] = ..., bt: _Optional[_Union[Chip.Bluetooth, _Mapping]] = ..., ble_beacon: _Optional[_Union[Chip.BleBeacon, _Mapping]] = ..., uwb: _Optional[_Union[Chip.Radio, _Mapping]] = ..., wifi: _Optional[_Union[Chip.Radio, _Mapping]] = ..., offset: _Optional[_Union[Position, _Mapping]] = ...) -> None: ...
156
+
157
+ class ChipCreate(_message.Message):
158
+ __slots__ = ("kind", "address", "name", "manufacturer", "product_name", "ble_beacon", "bt_properties")
159
+ class BleBeaconCreate(_message.Message):
160
+ __slots__ = ("address", "settings", "adv_data", "scan_response")
161
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
162
+ SETTINGS_FIELD_NUMBER: _ClassVar[int]
163
+ ADV_DATA_FIELD_NUMBER: _ClassVar[int]
164
+ SCAN_RESPONSE_FIELD_NUMBER: _ClassVar[int]
165
+ address: str
166
+ settings: Chip.BleBeacon.AdvertiseSettings
167
+ adv_data: Chip.BleBeacon.AdvertiseData
168
+ scan_response: Chip.BleBeacon.AdvertiseData
169
+ def __init__(self, address: _Optional[str] = ..., settings: _Optional[_Union[Chip.BleBeacon.AdvertiseSettings, _Mapping]] = ..., adv_data: _Optional[_Union[Chip.BleBeacon.AdvertiseData, _Mapping]] = ..., scan_response: _Optional[_Union[Chip.BleBeacon.AdvertiseData, _Mapping]] = ...) -> None: ...
170
+ KIND_FIELD_NUMBER: _ClassVar[int]
171
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
172
+ NAME_FIELD_NUMBER: _ClassVar[int]
173
+ MANUFACTURER_FIELD_NUMBER: _ClassVar[int]
174
+ PRODUCT_NAME_FIELD_NUMBER: _ClassVar[int]
175
+ BLE_BEACON_FIELD_NUMBER: _ClassVar[int]
176
+ BT_PROPERTIES_FIELD_NUMBER: _ClassVar[int]
177
+ kind: _common_pb2.ChipKind
178
+ address: str
179
+ name: str
180
+ manufacturer: str
181
+ product_name: str
182
+ ble_beacon: ChipCreate.BleBeaconCreate
183
+ bt_properties: _configuration_pb2.Controller
184
+ def __init__(self, kind: _Optional[_Union[_common_pb2.ChipKind, str]] = ..., address: _Optional[str] = ..., name: _Optional[str] = ..., manufacturer: _Optional[str] = ..., product_name: _Optional[str] = ..., ble_beacon: _Optional[_Union[ChipCreate.BleBeaconCreate, _Mapping]] = ..., bt_properties: _Optional[_Union[_configuration_pb2.Controller, _Mapping]] = ...) -> None: ...
185
+
186
+ class Device(_message.Message):
187
+ __slots__ = ("id", "name", "visible", "position", "orientation", "chips")
188
+ ID_FIELD_NUMBER: _ClassVar[int]
189
+ NAME_FIELD_NUMBER: _ClassVar[int]
190
+ VISIBLE_FIELD_NUMBER: _ClassVar[int]
191
+ POSITION_FIELD_NUMBER: _ClassVar[int]
192
+ ORIENTATION_FIELD_NUMBER: _ClassVar[int]
193
+ CHIPS_FIELD_NUMBER: _ClassVar[int]
194
+ id: int
195
+ name: str
196
+ visible: bool
197
+ position: Position
198
+ orientation: Orientation
199
+ chips: _containers.RepeatedCompositeFieldContainer[Chip]
200
+ def __init__(self, id: _Optional[int] = ..., name: _Optional[str] = ..., visible: bool = ..., position: _Optional[_Union[Position, _Mapping]] = ..., orientation: _Optional[_Union[Orientation, _Mapping]] = ..., chips: _Optional[_Iterable[_Union[Chip, _Mapping]]] = ...) -> None: ...
201
+
202
+ class DeviceCreate(_message.Message):
203
+ __slots__ = ("name", "position", "orientation", "chips")
204
+ NAME_FIELD_NUMBER: _ClassVar[int]
205
+ POSITION_FIELD_NUMBER: _ClassVar[int]
206
+ ORIENTATION_FIELD_NUMBER: _ClassVar[int]
207
+ CHIPS_FIELD_NUMBER: _ClassVar[int]
208
+ name: str
209
+ position: Position
210
+ orientation: Orientation
211
+ chips: _containers.RepeatedCompositeFieldContainer[ChipCreate]
212
+ def __init__(self, name: _Optional[str] = ..., position: _Optional[_Union[Position, _Mapping]] = ..., orientation: _Optional[_Union[Orientation, _Mapping]] = ..., chips: _Optional[_Iterable[_Union[ChipCreate, _Mapping]]] = ...) -> None: ...
213
+
214
+ class Scene(_message.Message):
215
+ __slots__ = ("devices",)
216
+ DEVICES_FIELD_NUMBER: _ClassVar[int]
217
+ devices: _containers.RepeatedCompositeFieldContainer[Device]
218
+ def __init__(self, devices: _Optional[_Iterable[_Union[Device, _Mapping]]] = ...) -> None: ...
219
+
220
+ class Capture(_message.Message):
221
+ __slots__ = ("id", "chip_kind", "device_name", "state", "size", "records", "timestamp", "valid")
222
+ ID_FIELD_NUMBER: _ClassVar[int]
223
+ CHIP_KIND_FIELD_NUMBER: _ClassVar[int]
224
+ DEVICE_NAME_FIELD_NUMBER: _ClassVar[int]
225
+ STATE_FIELD_NUMBER: _ClassVar[int]
226
+ SIZE_FIELD_NUMBER: _ClassVar[int]
227
+ RECORDS_FIELD_NUMBER: _ClassVar[int]
228
+ TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
229
+ VALID_FIELD_NUMBER: _ClassVar[int]
230
+ id: int
231
+ chip_kind: _common_pb2.ChipKind
232
+ device_name: str
233
+ state: bool
234
+ size: int
235
+ records: int
236
+ timestamp: _timestamp_pb2.Timestamp
237
+ valid: bool
238
+ def __init__(self, id: _Optional[int] = ..., chip_kind: _Optional[_Union[_common_pb2.ChipKind, str]] = ..., device_name: _Optional[str] = ..., state: bool = ..., size: _Optional[int] = ..., records: _Optional[int] = ..., timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., valid: bool = ...) -> None: ...
@@ -0,0 +1,32 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: netsim/packet_streamer.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from bumble.transport.grpc_protobuf.netsim import hci_packet_pb2 as netsim_dot_hci__packet__pb2
16
+ from bumble.transport.grpc_protobuf.netsim import startup_pb2 as netsim_dot_startup__pb2
17
+
18
+
19
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cnetsim/packet_streamer.proto\x12\rnetsim.packet\x1a\x17netsim/hci_packet.proto\x1a\x14netsim/startup.proto\"\x93\x01\n\rPacketRequest\x12\x30\n\x0cinitial_info\x18\x01 \x01(\x0b\x32\x18.netsim.startup.ChipInfoH\x00\x12.\n\nhci_packet\x18\x02 \x01(\x0b\x32\x18.netsim.packet.HCIPacketH\x00\x12\x10\n\x06packet\x18\x03 \x01(\x0cH\x00\x42\x0e\n\x0crequest_type\"t\n\x0ePacketResponse\x12\x0f\n\x05\x65rror\x18\x01 \x01(\tH\x00\x12.\n\nhci_packet\x18\x02 \x01(\x0b\x32\x18.netsim.packet.HCIPacketH\x00\x12\x10\n\x06packet\x18\x03 \x01(\x0cH\x00\x42\x0f\n\rresponse_type2b\n\x0ePacketStreamer\x12P\n\rStreamPackets\x12\x1c.netsim.packet.PacketRequest\x1a\x1d.netsim.packet.PacketResponse(\x01\x30\x01\x62\x06proto3')
20
+
21
+ _globals = globals()
22
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
23
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'netsim.packet_streamer_pb2', _globals)
24
+ if _descriptor._USE_C_DESCRIPTORS == False:
25
+ DESCRIPTOR._options = None
26
+ _globals['_PACKETREQUEST']._serialized_start=95
27
+ _globals['_PACKETREQUEST']._serialized_end=242
28
+ _globals['_PACKETRESPONSE']._serialized_start=244
29
+ _globals['_PACKETRESPONSE']._serialized_end=360
30
+ _globals['_PACKETSTREAMER']._serialized_start=362
31
+ _globals['_PACKETSTREAMER']._serialized_end=460
32
+ # @@protoc_insertion_point(module_scope)
@@ -1,5 +1,5 @@
1
- from . import hci_packet_pb2 as _hci_packet_pb2
2
- from . import startup_pb2 as _startup_pb2
1
+ from bumble.transport.grpc_protobuf.netsim import hci_packet_pb2 as _hci_packet_pb2
2
+ from bumble.transport.grpc_protobuf.netsim import startup_pb2 as _startup_pb2
3
3
  from google.protobuf import descriptor as _descriptor
4
4
  from google.protobuf import message as _message
5
5
  from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union
@@ -7,17 +7,17 @@ from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Opti
7
7
  DESCRIPTOR: _descriptor.FileDescriptor
8
8
 
9
9
  class PacketRequest(_message.Message):
10
- __slots__ = ["hci_packet", "initial_info", "packet"]
11
- HCI_PACKET_FIELD_NUMBER: _ClassVar[int]
10
+ __slots__ = ("initial_info", "hci_packet", "packet")
12
11
  INITIAL_INFO_FIELD_NUMBER: _ClassVar[int]
12
+ HCI_PACKET_FIELD_NUMBER: _ClassVar[int]
13
13
  PACKET_FIELD_NUMBER: _ClassVar[int]
14
- hci_packet: _hci_packet_pb2.HCIPacket
15
14
  initial_info: _startup_pb2.ChipInfo
15
+ hci_packet: _hci_packet_pb2.HCIPacket
16
16
  packet: bytes
17
17
  def __init__(self, initial_info: _Optional[_Union[_startup_pb2.ChipInfo, _Mapping]] = ..., hci_packet: _Optional[_Union[_hci_packet_pb2.HCIPacket, _Mapping]] = ..., packet: _Optional[bytes] = ...) -> None: ...
18
18
 
19
19
  class PacketResponse(_message.Message):
20
- __slots__ = ["error", "hci_packet", "packet"]
20
+ __slots__ = ("error", "hci_packet", "packet")
21
21
  ERROR_FIELD_NUMBER: _ClassVar[int]
22
22
  HCI_PACKET_FIELD_NUMBER: _ClassVar[int]
23
23
  PACKET_FIELD_NUMBER: _ClassVar[int]
@@ -2,7 +2,7 @@
2
2
  """Client and server classes corresponding to protobuf-defined services."""
3
3
  import grpc
4
4
 
5
- from . import packet_streamer_pb2 as packet__streamer__pb2
5
+ from bumble.transport.grpc_protobuf.netsim import packet_streamer_pb2 as netsim_dot_packet__streamer__pb2
6
6
 
7
7
 
8
8
  class PacketStreamerStub(object):
@@ -30,8 +30,8 @@ class PacketStreamerStub(object):
30
30
  """
31
31
  self.StreamPackets = channel.stream_stream(
32
32
  '/netsim.packet.PacketStreamer/StreamPackets',
33
- request_serializer=packet__streamer__pb2.PacketRequest.SerializeToString,
34
- response_deserializer=packet__streamer__pb2.PacketResponse.FromString,
33
+ request_serializer=netsim_dot_packet__streamer__pb2.PacketRequest.SerializeToString,
34
+ response_deserializer=netsim_dot_packet__streamer__pb2.PacketResponse.FromString,
35
35
  )
36
36
 
37
37
 
@@ -64,8 +64,8 @@ def add_PacketStreamerServicer_to_server(servicer, server):
64
64
  rpc_method_handlers = {
65
65
  'StreamPackets': grpc.stream_stream_rpc_method_handler(
66
66
  servicer.StreamPackets,
67
- request_deserializer=packet__streamer__pb2.PacketRequest.FromString,
68
- response_serializer=packet__streamer__pb2.PacketResponse.SerializeToString,
67
+ request_deserializer=netsim_dot_packet__streamer__pb2.PacketRequest.FromString,
68
+ response_serializer=netsim_dot_packet__streamer__pb2.PacketResponse.SerializeToString,
69
69
  ),
70
70
  }
71
71
  generic_handler = grpc.method_handlers_generic_handler(
@@ -103,7 +103,7 @@ class PacketStreamer(object):
103
103
  timeout=None,
104
104
  metadata=None):
105
105
  return grpc.experimental.stream_stream(request_iterator, target, '/netsim.packet.PacketStreamer/StreamPackets',
106
- packet__streamer__pb2.PacketRequest.SerializeToString,
107
- packet__streamer__pb2.PacketResponse.FromString,
106
+ netsim_dot_packet__streamer__pb2.PacketRequest.SerializeToString,
107
+ netsim_dot_packet__streamer__pb2.PacketResponse.FromString,
108
108
  options, channel_credentials,
109
109
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -0,0 +1,41 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: netsim/startup.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from bumble.transport.grpc_protobuf.netsim import common_pb2 as netsim_dot_common__pb2
16
+ from bumble.transport.grpc_protobuf.netsim import model_pb2 as netsim_dot_model__pb2
17
+ from bumble.transport.grpc_protobuf.rootcanal import configuration_pb2 as rootcanal_dot_configuration__pb2
18
+
19
+
20
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14netsim/startup.proto\x12\x0enetsim.startup\x1a\x13netsim/common.proto\x1a\x12netsim/model.proto\x1a\x1drootcanal/configuration.proto\"\xb4\x01\n\x0bStartupInfo\x12\x33\n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\".netsim.startup.StartupInfo.Device\x1ap\n\x06\x44\x65vice\x12\x10\n\x04name\x18\x01 \x01(\tB\x02\x18\x01\x12#\n\x05\x63hips\x18\x02 \x03(\x0b\x32\x14.netsim.startup.Chip\x12/\n\x0b\x64\x65vice_info\x18\x03 \x01(\x0b\x32\x1a.netsim.startup.DeviceInfo\"q\n\x08\x43hipInfo\x12\x10\n\x04name\x18\x01 \x01(\tB\x02\x18\x01\x12\"\n\x04\x63hip\x18\x02 \x01(\x0b\x32\x14.netsim.startup.Chip\x12/\n\x0b\x64\x65vice_info\x18\x03 \x01(\x0b\x32\x1a.netsim.startup.DeviceInfo\"\x7f\n\nDeviceInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04kind\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x13\n\x0bsdk_version\x18\x04 \x01(\t\x12\x10\n\x08\x62uild_id\x18\x05 \x01(\t\x12\x0f\n\x07variant\x18\x06 \x01(\t\x12\x0c\n\x04\x61rch\x18\x07 \x01(\t\"\x9b\x02\n\x04\x43hip\x12%\n\x04kind\x18\x01 \x01(\x0e\x32\x17.netsim.common.ChipKind\x12\n\n\x02id\x18\x02 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x03 \x01(\t\x12\x14\n\x0cproduct_name\x18\x04 \x01(\t\x12\r\n\x05\x66\x64_in\x18\x05 \x01(\x05\x12\x0e\n\x06\x66\x64_out\x18\x06 \x01(\x05\x12\x10\n\x08loopback\x18\x07 \x01(\x08\x12:\n\rbt_properties\x18\x08 \x01(\x0b\x32#.rootcanal.configuration.Controller\x12\x0f\n\x07\x61\x64\x64ress\x18\t \x01(\t\x12+\n\x06offset\x18\n \x01(\x0b\x32\x16.netsim.model.PositionH\x00\x88\x01\x01\x42\t\n\x07_offsetb\x06proto3')
21
+
22
+ _globals = globals()
23
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
24
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'netsim.startup_pb2', _globals)
25
+ if _descriptor._USE_C_DESCRIPTORS == False:
26
+ DESCRIPTOR._options = None
27
+ _globals['_STARTUPINFO_DEVICE'].fields_by_name['name']._options = None
28
+ _globals['_STARTUPINFO_DEVICE'].fields_by_name['name']._serialized_options = b'\030\001'
29
+ _globals['_CHIPINFO'].fields_by_name['name']._options = None
30
+ _globals['_CHIPINFO'].fields_by_name['name']._serialized_options = b'\030\001'
31
+ _globals['_STARTUPINFO']._serialized_start=113
32
+ _globals['_STARTUPINFO']._serialized_end=293
33
+ _globals['_STARTUPINFO_DEVICE']._serialized_start=181
34
+ _globals['_STARTUPINFO_DEVICE']._serialized_end=293
35
+ _globals['_CHIPINFO']._serialized_start=295
36
+ _globals['_CHIPINFO']._serialized_end=408
37
+ _globals['_DEVICEINFO']._serialized_start=410
38
+ _globals['_DEVICEINFO']._serialized_end=537
39
+ _globals['_CHIP']._serialized_start=540
40
+ _globals['_CHIP']._serialized_end=823
41
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,76 @@
1
+ from bumble.transport.grpc_protobuf.netsim import common_pb2 as _common_pb2
2
+ from bumble.transport.grpc_protobuf.netsim import model_pb2 as _model_pb2
3
+ from bumble.transport.grpc_protobuf.rootcanal import configuration_pb2 as _configuration_pb2
4
+ from google.protobuf.internal import containers as _containers
5
+ from google.protobuf import descriptor as _descriptor
6
+ from google.protobuf import message as _message
7
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
8
+
9
+ DESCRIPTOR: _descriptor.FileDescriptor
10
+
11
+ class StartupInfo(_message.Message):
12
+ __slots__ = ("devices",)
13
+ class Device(_message.Message):
14
+ __slots__ = ("name", "chips", "device_info")
15
+ NAME_FIELD_NUMBER: _ClassVar[int]
16
+ CHIPS_FIELD_NUMBER: _ClassVar[int]
17
+ DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
18
+ name: str
19
+ chips: _containers.RepeatedCompositeFieldContainer[Chip]
20
+ device_info: DeviceInfo
21
+ def __init__(self, name: _Optional[str] = ..., chips: _Optional[_Iterable[_Union[Chip, _Mapping]]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ...) -> None: ...
22
+ DEVICES_FIELD_NUMBER: _ClassVar[int]
23
+ devices: _containers.RepeatedCompositeFieldContainer[StartupInfo.Device]
24
+ def __init__(self, devices: _Optional[_Iterable[_Union[StartupInfo.Device, _Mapping]]] = ...) -> None: ...
25
+
26
+ class ChipInfo(_message.Message):
27
+ __slots__ = ("name", "chip", "device_info")
28
+ NAME_FIELD_NUMBER: _ClassVar[int]
29
+ CHIP_FIELD_NUMBER: _ClassVar[int]
30
+ DEVICE_INFO_FIELD_NUMBER: _ClassVar[int]
31
+ name: str
32
+ chip: Chip
33
+ device_info: DeviceInfo
34
+ def __init__(self, name: _Optional[str] = ..., chip: _Optional[_Union[Chip, _Mapping]] = ..., device_info: _Optional[_Union[DeviceInfo, _Mapping]] = ...) -> None: ...
35
+
36
+ class DeviceInfo(_message.Message):
37
+ __slots__ = ("name", "kind", "version", "sdk_version", "build_id", "variant", "arch")
38
+ NAME_FIELD_NUMBER: _ClassVar[int]
39
+ KIND_FIELD_NUMBER: _ClassVar[int]
40
+ VERSION_FIELD_NUMBER: _ClassVar[int]
41
+ SDK_VERSION_FIELD_NUMBER: _ClassVar[int]
42
+ BUILD_ID_FIELD_NUMBER: _ClassVar[int]
43
+ VARIANT_FIELD_NUMBER: _ClassVar[int]
44
+ ARCH_FIELD_NUMBER: _ClassVar[int]
45
+ name: str
46
+ kind: str
47
+ version: str
48
+ sdk_version: str
49
+ build_id: str
50
+ variant: str
51
+ arch: str
52
+ def __init__(self, name: _Optional[str] = ..., kind: _Optional[str] = ..., version: _Optional[str] = ..., sdk_version: _Optional[str] = ..., build_id: _Optional[str] = ..., variant: _Optional[str] = ..., arch: _Optional[str] = ...) -> None: ...
53
+
54
+ class Chip(_message.Message):
55
+ __slots__ = ("kind", "id", "manufacturer", "product_name", "fd_in", "fd_out", "loopback", "bt_properties", "address", "offset")
56
+ KIND_FIELD_NUMBER: _ClassVar[int]
57
+ ID_FIELD_NUMBER: _ClassVar[int]
58
+ MANUFACTURER_FIELD_NUMBER: _ClassVar[int]
59
+ PRODUCT_NAME_FIELD_NUMBER: _ClassVar[int]
60
+ FD_IN_FIELD_NUMBER: _ClassVar[int]
61
+ FD_OUT_FIELD_NUMBER: _ClassVar[int]
62
+ LOOPBACK_FIELD_NUMBER: _ClassVar[int]
63
+ BT_PROPERTIES_FIELD_NUMBER: _ClassVar[int]
64
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
65
+ OFFSET_FIELD_NUMBER: _ClassVar[int]
66
+ kind: _common_pb2.ChipKind
67
+ id: str
68
+ manufacturer: str
69
+ product_name: str
70
+ fd_in: int
71
+ fd_out: int
72
+ loopback: bool
73
+ bt_properties: _configuration_pb2.Controller
74
+ address: str
75
+ offset: _model_pb2.Position
76
+ def __init__(self, kind: _Optional[_Union[_common_pb2.ChipKind, str]] = ..., id: _Optional[str] = ..., manufacturer: _Optional[str] = ..., product_name: _Optional[str] = ..., fd_in: _Optional[int] = ..., fd_out: _Optional[int] = ..., loopback: bool = ..., bt_properties: _Optional[_Union[_configuration_pb2.Controller, _Mapping]] = ..., address: _Optional[str] = ..., offset: _Optional[_Union[_model_pb2.Position, _Mapping]] = ...) -> None: ...
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
File without changes
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: rootcanal/configuration.proto
4
+ # Protobuf Python Version: 4.25.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1drootcanal/configuration.proto\x12\x17rootcanal.configuration\"\xbc\x01\n\x12\x43ontrollerFeatures\x12\x1f\n\x17le_extended_advertising\x18\x01 \x01(\x08\x12\x1f\n\x17le_periodic_advertising\x18\x02 \x01(\x08\x12\x12\n\nll_privacy\x18\x03 \x01(\x08\x12\x11\n\tle_2m_phy\x18\x04 \x01(\x08\x12\x14\n\x0cle_coded_phy\x18\x05 \x01(\x08\x12\'\n\x1fle_connected_isochronous_stream\x18\x06 \x01(\x08\"\x8d\x01\n\x10\x43ontrollerQuirks\x12\x30\n(send_acl_data_before_connection_complete\x18\x01 \x01(\x08\x12\"\n\x1ahas_default_random_address\x18\x02 \x01(\x08\x12#\n\x1bhardware_error_before_reset\x18\x03 \x01(\x08\".\n\x0eVendorFeatures\x12\x0b\n\x03\x63sr\x18\x01 \x01(\x08\x12\x0f\n\x07\x61ndroid\x18\x02 \x01(\x08\"\x8a\x02\n\nController\x12\x39\n\x06preset\x18\x01 \x01(\x0e\x32).rootcanal.configuration.ControllerPreset\x12=\n\x08\x66\x65\x61tures\x18\x02 \x01(\x0b\x32+.rootcanal.configuration.ControllerFeatures\x12\x39\n\x06quirks\x18\x03 \x01(\x0b\x32).rootcanal.configuration.ControllerQuirks\x12\x0e\n\x06strict\x18\x04 \x01(\x08\x12\x37\n\x06vendor\x18\x05 \x01(\x0b\x32\'.rootcanal.configuration.VendorFeatures\"Y\n\tTcpServer\x12\x10\n\x08tcp_port\x18\x01 \x02(\x05\x12:\n\rconfiguration\x18\x02 \x01(\x0b\x32#.rootcanal.configuration.Controller\"G\n\rConfiguration\x12\x36\n\ntcp_server\x18\x01 \x03(\x0b\x32\".rootcanal.configuration.TcpServer*H\n\x10\x43ontrollerPreset\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0f\n\x0bLAIRD_BL654\x10\x01\x12\x16\n\x12\x43SR_RCK_PTS_DONGLE\x10\x02\x42\x02H\x02')
18
+
19
+ _globals = globals()
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'rootcanal.configuration_pb2', _globals)
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+ _globals['DESCRIPTOR']._options = None
24
+ _globals['DESCRIPTOR']._serialized_options = b'H\002'
25
+ _globals['_CONTROLLERPRESET']._serialized_start=874
26
+ _globals['_CONTROLLERPRESET']._serialized_end=946
27
+ _globals['_CONTROLLERFEATURES']._serialized_start=59
28
+ _globals['_CONTROLLERFEATURES']._serialized_end=247
29
+ _globals['_CONTROLLERQUIRKS']._serialized_start=250
30
+ _globals['_CONTROLLERQUIRKS']._serialized_end=391
31
+ _globals['_VENDORFEATURES']._serialized_start=393
32
+ _globals['_VENDORFEATURES']._serialized_end=439
33
+ _globals['_CONTROLLER']._serialized_start=442
34
+ _globals['_CONTROLLER']._serialized_end=708
35
+ _globals['_TCPSERVER']._serialized_start=710
36
+ _globals['_TCPSERVER']._serialized_end=799
37
+ _globals['_CONFIGURATION']._serialized_start=801
38
+ _globals['_CONFIGURATION']._serialized_end=872
39
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,78 @@
1
+ from google.protobuf.internal import containers as _containers
2
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
3
+ from google.protobuf import descriptor as _descriptor
4
+ from google.protobuf import message as _message
5
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
6
+
7
+ DESCRIPTOR: _descriptor.FileDescriptor
8
+
9
+ class ControllerPreset(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
10
+ __slots__ = ()
11
+ DEFAULT: _ClassVar[ControllerPreset]
12
+ LAIRD_BL654: _ClassVar[ControllerPreset]
13
+ CSR_RCK_PTS_DONGLE: _ClassVar[ControllerPreset]
14
+ DEFAULT: ControllerPreset
15
+ LAIRD_BL654: ControllerPreset
16
+ CSR_RCK_PTS_DONGLE: ControllerPreset
17
+
18
+ class ControllerFeatures(_message.Message):
19
+ __slots__ = ("le_extended_advertising", "le_periodic_advertising", "ll_privacy", "le_2m_phy", "le_coded_phy", "le_connected_isochronous_stream")
20
+ LE_EXTENDED_ADVERTISING_FIELD_NUMBER: _ClassVar[int]
21
+ LE_PERIODIC_ADVERTISING_FIELD_NUMBER: _ClassVar[int]
22
+ LL_PRIVACY_FIELD_NUMBER: _ClassVar[int]
23
+ LE_2M_PHY_FIELD_NUMBER: _ClassVar[int]
24
+ LE_CODED_PHY_FIELD_NUMBER: _ClassVar[int]
25
+ LE_CONNECTED_ISOCHRONOUS_STREAM_FIELD_NUMBER: _ClassVar[int]
26
+ le_extended_advertising: bool
27
+ le_periodic_advertising: bool
28
+ ll_privacy: bool
29
+ le_2m_phy: bool
30
+ le_coded_phy: bool
31
+ le_connected_isochronous_stream: bool
32
+ def __init__(self, le_extended_advertising: bool = ..., le_periodic_advertising: bool = ..., ll_privacy: bool = ..., le_2m_phy: bool = ..., le_coded_phy: bool = ..., le_connected_isochronous_stream: bool = ...) -> None: ...
33
+
34
+ class ControllerQuirks(_message.Message):
35
+ __slots__ = ("send_acl_data_before_connection_complete", "has_default_random_address", "hardware_error_before_reset")
36
+ SEND_ACL_DATA_BEFORE_CONNECTION_COMPLETE_FIELD_NUMBER: _ClassVar[int]
37
+ HAS_DEFAULT_RANDOM_ADDRESS_FIELD_NUMBER: _ClassVar[int]
38
+ HARDWARE_ERROR_BEFORE_RESET_FIELD_NUMBER: _ClassVar[int]
39
+ send_acl_data_before_connection_complete: bool
40
+ has_default_random_address: bool
41
+ hardware_error_before_reset: bool
42
+ def __init__(self, send_acl_data_before_connection_complete: bool = ..., has_default_random_address: bool = ..., hardware_error_before_reset: bool = ...) -> None: ...
43
+
44
+ class VendorFeatures(_message.Message):
45
+ __slots__ = ("csr", "android")
46
+ CSR_FIELD_NUMBER: _ClassVar[int]
47
+ ANDROID_FIELD_NUMBER: _ClassVar[int]
48
+ csr: bool
49
+ android: bool
50
+ def __init__(self, csr: bool = ..., android: bool = ...) -> None: ...
51
+
52
+ class Controller(_message.Message):
53
+ __slots__ = ("preset", "features", "quirks", "strict", "vendor")
54
+ PRESET_FIELD_NUMBER: _ClassVar[int]
55
+ FEATURES_FIELD_NUMBER: _ClassVar[int]
56
+ QUIRKS_FIELD_NUMBER: _ClassVar[int]
57
+ STRICT_FIELD_NUMBER: _ClassVar[int]
58
+ VENDOR_FIELD_NUMBER: _ClassVar[int]
59
+ preset: ControllerPreset
60
+ features: ControllerFeatures
61
+ quirks: ControllerQuirks
62
+ strict: bool
63
+ vendor: VendorFeatures
64
+ def __init__(self, preset: _Optional[_Union[ControllerPreset, str]] = ..., features: _Optional[_Union[ControllerFeatures, _Mapping]] = ..., quirks: _Optional[_Union[ControllerQuirks, _Mapping]] = ..., strict: bool = ..., vendor: _Optional[_Union[VendorFeatures, _Mapping]] = ...) -> None: ...
65
+
66
+ class TcpServer(_message.Message):
67
+ __slots__ = ("tcp_port", "configuration")
68
+ TCP_PORT_FIELD_NUMBER: _ClassVar[int]
69
+ CONFIGURATION_FIELD_NUMBER: _ClassVar[int]
70
+ tcp_port: int
71
+ configuration: Controller
72
+ def __init__(self, tcp_port: _Optional[int] = ..., configuration: _Optional[_Union[Controller, _Mapping]] = ...) -> None: ...
73
+
74
+ class Configuration(_message.Message):
75
+ __slots__ = ("tcp_server",)
76
+ TCP_SERVER_FIELD_NUMBER: _ClassVar[int]
77
+ tcp_server: _containers.RepeatedCompositeFieldContainer[TcpServer]
78
+ def __init__(self, tcp_server: _Optional[_Iterable[_Union[TcpServer, _Mapping]]] = ...) -> None: ...
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bumble
3
- Version: 0.0.200
3
+ Version: 0.0.201
4
4
  Summary: Bluetooth Stack for Apps, Emulation, Test and Experimentation
5
5
  Home-page: https://github.com/google/bumble
6
6
  Author: Google
@@ -1,8 +1,8 @@
1
1
  bumble/__init__.py,sha256=Q8jkz6rgl95IMAeInQVt_2GLoJl3DcEP2cxtrQ-ho5c,110
2
- bumble/_version.py,sha256=QkvzoUjUmzIu-0WPLCIoPkyy_n8BoMLliGVrvjz6i7A,415
2
+ bumble/_version.py,sha256=hc4syiO9GdDB7IANWoNKzXpgMbnaNzyfU3UJ-aEo69M,415
3
3
  bumble/a2dp.py,sha256=_dCq-qyG5OglDVlaOFwAgFe_ugvHuEdEYL-kWFf6sWQ,31775
4
4
  bumble/at.py,sha256=Giu2VUSJKH-jIh10lOfumiqy-FyO99Ra6nJ7UiWQ0H8,3114
5
- bumble/att.py,sha256=S-ha1Xn2YHf8k_c6JCXDv1QwiGJAJvgpHVLVxo1kkPQ,32755
5
+ bumble/att.py,sha256=jFUcIDP3JYYdazWAVynGy0pcgNOzsldRzoBhhOkLCRI,32767
6
6
  bumble/avc.py,sha256=OZz5_DYenPeg2PcNM3dpgV5PUs4D7FBSNOcSqsuRJ2w,16329
7
7
  bumble/avctp.py,sha256=yHAjJRjLGtR0Q-iWcLS7cJRz5Jr2YiRmZd6LZV4Xjt4,9935
8
8
  bumble/avdtp.py,sha256=2ki_BE4SHiu3Sx9oHCknfjF-bBcgPB9TsyF5upciUYI,76773
@@ -108,7 +108,7 @@ bumble/tools/rtk_fw_download.py,sha256=KEPG-rDrdPGKBzZ78P4s3udLRYT3p7vesGhXvJTWT
108
108
  bumble/tools/rtk_util.py,sha256=TwZhupHQrQYsYHLdRGyzXKd24pwCk8kkzqK1Rj2guco,5087
109
109
  bumble/transport/__init__.py,sha256=Z01fvuKpqAbhJd0wYcGhW09W2tycM71ck80XoZ8a87Q,7012
110
110
  bumble/transport/android_emulator.py,sha256=6HR2cEqdU0XbOldwxCtQuXtvwOUYhRfHkPz0TRt3mbo,4382
111
- bumble/transport/android_netsim.py,sha256=bQ1XSNloAsqanyEQMmcTpZX6csiZNdowoYDh-JskDZY,16447
111
+ bumble/transport/android_netsim.py,sha256=P-keFdM9-iU_HQQYirYX-yEJtEM_gItzi9srNzWRQiI,17196
112
112
  bumble/transport/common.py,sha256=bJWYH-vRJJl0nWwlAjGTHrRQFdZayKkH7YoGor5abH8,16659
113
113
  bumble/transport/file.py,sha256=eVM2V6Nk2nDAFdE7Rt01ZI3JdTovsH9OEU1gKYPJjpE,2010
114
114
  bumble/transport/hci_socket.py,sha256=EdgWi3-O5yvYcH4R4BkPtG79pnUo7GQtXWawuUHDoDQ,6331
@@ -125,9 +125,6 @@ bumble/transport/vhci.py,sha256=iI2WpighnvIP5zeyJUFSbjEdmCo24CWMdICamIcyJck,2250
125
125
  bumble/transport/ws_client.py,sha256=9gqm5jlVT_H6LfwsQwPpky07CINhgOK96ef53SMAxms,1757
126
126
  bumble/transport/ws_server.py,sha256=goe4xx7OnZiJy1a00Bg0CXM8uJhsGXbsijMYq2n62bI,3328
127
127
  bumble/transport/grpc_protobuf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- bumble/transport/grpc_protobuf/common_pb2.py,sha256=ayV7r0mOrBnjY8E3Qk0_-7OMcrngS-V7v3rHz6ECUqE,1028
129
- bumble/transport/grpc_protobuf/common_pb2.pyi,sha256=d3CZ1ng27btmrOT_dpd1uWk5zgv2M5O09EcCsmgbo8I,370
130
- bumble/transport/grpc_protobuf/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
131
128
  bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.py,sha256=NFz7pja_rxMEyU3fI-SgHLghTw4KeN1gXUjT4uglrEQ,7959
132
129
  bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2.pyi,sha256=O0qhb2L_oAekmSnqCElidwIg4PZ3XjAyQ4oEy4ycD-A,8385
133
130
  bumble/transport/grpc_protobuf/emulated_bluetooth_device_pb2_grpc.py,sha256=Lwj8ACC0cw7ooxQHZ2EEdz10Iz5_xlwlGiTiMgx1GKA,9402
@@ -143,23 +140,34 @@ bumble/transport/grpc_protobuf/emulated_bluetooth_vhci_pb2_grpc.py,sha256=F9XHiG
143
140
  bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.py,sha256=MSMHN-d9Do5L4pehTjg5RkOWo5vM73khrsIp5IYFOH8,1693
144
141
  bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2.pyi,sha256=V2Gyi0xj9oeSiGXfRrtzrXoXVia4bJw8UQ8qaVxHlns,1637
145
142
  bumble/transport/grpc_protobuf/grpc_endpoint_description_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
146
- bumble/transport/grpc_protobuf/hci_packet_pb2.py,sha256=2iu4-Y-wTRWyUq-FdRIY_G2N6ueuds-bjON5ARRd_zs,1618
147
- bumble/transport/grpc_protobuf/hci_packet_pb2.pyi,sha256=kfaEKa9aGG2xWfOolcq1Bamlo38J3NEtp9p3UKcjoEQ,953
148
- bumble/transport/grpc_protobuf/hci_packet_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
149
- bumble/transport/grpc_protobuf/packet_streamer_pb2.py,sha256=t9g3Qja1pEzYxMm_634bapfN4mEPaYj96ZUi03jtHEY,1812
150
- bumble/transport/grpc_protobuf/packet_streamer_pb2.pyi,sha256=ssqdKvXqqU6U0Z7IqVEaOOaKvrX4SnrzuLc-vlPGllo,1335
151
- bumble/transport/grpc_protobuf/packet_streamer_pb2_grpc.py,sha256=k4RDFvE5Y4QgGLieClI2S34BiPyveDNVQca1euiyaNY,4376
152
- bumble/transport/grpc_protobuf/startup_pb2.py,sha256=viPPlvFuRE1HoM3zg3Ayy5wfNnuSSAX80MNqtKVqv-o,1854
153
- bumble/transport/grpc_protobuf/startup_pb2.pyi,sha256=8bDHVKJ_PIZuPvXRVK7tJCPOY8E8ZKW-5xzqbRLEJcw,2140
154
- bumble/transport/grpc_protobuf/startup_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
143
+ bumble/transport/grpc_protobuf/netsim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
+ bumble/transport/grpc_protobuf/netsim/common_pb2.py,sha256=0bZrftCSlobRYOfH_jyT4gcphgKvxyUTqdFfwflZ_Fw,1164
145
+ bumble/transport/grpc_protobuf/netsim/common_pb2.pyi,sha256=6ird5I38ZhvxIq3F4pQkFNxKH3y7NakFqJAljK7zfc8,570
146
+ bumble/transport/grpc_protobuf/netsim/common_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
147
+ bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.py,sha256=O4FFyygF2m6amM8FTiOOjX1PzM4vW_tlJYpgJOiwQRk,1763
148
+ bumble/transport/grpc_protobuf/netsim/hci_packet_pb2.pyi,sha256=Aji68Irnex6tfpOWi4cnn0a2cKyE3VJPfbqkFQtgtDI,1248
149
+ bumble/transport/grpc_protobuf/netsim/hci_packet_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
150
+ bumble/transport/grpc_protobuf/netsim/model_pb2.py,sha256=P8el_xXW9iq0vVAgvIoZdxlVbX19ZRqQ5IVxVlNlYq8,8343
151
+ bumble/transport/grpc_protobuf/netsim/model_pb2.pyi,sha256=0BRRDzvXA9zZevSdsnoHbpNcBh0CctdiSE6PAlrmoI4,13190
152
+ bumble/transport/grpc_protobuf/netsim/model_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
153
+ bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.py,sha256=-Jyos1CazqEg3awlRBINe2ZVS5ASRoKwlwM9hKtZLC8,2067
154
+ bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2.pyi,sha256=b9H9ESnHXW9Ue9zRfgvGH9uRdOUYZ7soH6L2gc-HHM8,1407
155
+ bumble/transport/grpc_protobuf/netsim/packet_streamer_pb2_grpc.py,sha256=6r10Iby_Ma3XPTgxAO7AyZHMzkAp4luCJ7sWJJvQdJs,4489
156
+ bumble/transport/grpc_protobuf/netsim/startup_pb2.py,sha256=O2z4j3uP_IM_BdJ1vkpk5KCatIePJ4HOQ7nA-nRjH88,3425
157
+ bumble/transport/grpc_protobuf/netsim/startup_pb2.pyi,sha256=jMIOpCKFw2SZSJ7bFZBdvcdTGlPygGVvdhBrz1QWUUc,3862
158
+ bumble/transport/grpc_protobuf/netsim/startup_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
159
+ bumble/transport/grpc_protobuf/rootcanal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.py,sha256=q7_0A9E9m1HT4lNhOKjF0LDiz1_MW_1ZmKqkGScel-8,3159
161
+ bumble/transport/grpc_protobuf/rootcanal/configuration_pb2.pyi,sha256=W8j1bXHBrkPGKvuYQ8n6saVS1w-TsUw2Wt24gyFHoaU,3939
162
+ bumble/transport/grpc_protobuf/rootcanal/configuration_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXHDCNMhZD2VXqocC9l_gk,159
155
163
  bumble/vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
164
  bumble/vendor/android/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
165
  bumble/vendor/android/hci.py,sha256=GZrkhaWmcMt1JpnRhv0NoySGkf2H4lNUV2f_omRZW0I,10741
158
166
  bumble/vendor/zephyr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
167
  bumble/vendor/zephyr/hci.py,sha256=d83bC0TvT947eN4roFjLkQefWtHOoNsr4xib2ctSkvA,3195
160
- bumble-0.0.200.dist-info/LICENSE,sha256=FvaYh4NRWIGgS_OwoBs5gFgkCmAghZ-DYnIGBZPuw-s,12142
161
- bumble-0.0.200.dist-info/METADATA,sha256=JusrKVEENpezz89ImgV1FiIA5pBG9OoZK6Ic2ass0ac,5673
162
- bumble-0.0.200.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
163
- bumble-0.0.200.dist-info/entry_points.txt,sha256=2TAnDAHiYVEo9Gnugk29QIsHpCgRgnPqBszLSgIX2T0,984
164
- bumble-0.0.200.dist-info/top_level.txt,sha256=tV6JJKaHPYMFiJYiBYFW24PCcfLxTJZdlu6BmH3Cb00,7
165
- bumble-0.0.200.dist-info/RECORD,,
168
+ bumble-0.0.201.dist-info/LICENSE,sha256=FvaYh4NRWIGgS_OwoBs5gFgkCmAghZ-DYnIGBZPuw-s,12142
169
+ bumble-0.0.201.dist-info/METADATA,sha256=pyz0Jl2iwL7S-5PbYkfC-nfla3lyy7off2EAJhPVH18,5673
170
+ bumble-0.0.201.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
171
+ bumble-0.0.201.dist-info/entry_points.txt,sha256=2TAnDAHiYVEo9Gnugk29QIsHpCgRgnPqBszLSgIX2T0,984
172
+ bumble-0.0.201.dist-info/top_level.txt,sha256=tV6JJKaHPYMFiJYiBYFW24PCcfLxTJZdlu6BmH3Cb00,7
173
+ bumble-0.0.201.dist-info/RECORD,,
@@ -1,28 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: hci_packet.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
- from google.protobuf import descriptor as _descriptor
7
- from google.protobuf import descriptor_pool as _descriptor_pool
8
- from google.protobuf import symbol_database as _symbol_database
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
-
15
-
16
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10hci_packet.proto\x12\rnetsim.packet\"\xb2\x01\n\tHCIPacket\x12\x38\n\x0bpacket_type\x18\x01 \x01(\x0e\x32#.netsim.packet.HCIPacket.PacketType\x12\x0e\n\x06packet\x18\x02 \x01(\x0c\"[\n\nPacketType\x12\x1a\n\x16HCI_PACKET_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x43OMMAND\x10\x01\x12\x07\n\x03\x41\x43L\x10\x02\x12\x07\n\x03SCO\x10\x03\x12\t\n\x05\x45VENT\x10\x04\x12\x07\n\x03ISO\x10\x05\x42J\n\x1f\x63om.android.emulation.bluetoothP\x01\xf8\x01\x01\xa2\x02\x03\x41\x45\x42\xaa\x02\x1b\x41ndroid.Emulation.Bluetoothb\x06proto3')
17
-
18
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
19
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'hci_packet_pb2', globals())
20
- if _descriptor._USE_C_DESCRIPTORS == False:
21
-
22
- DESCRIPTOR._options = None
23
- DESCRIPTOR._serialized_options = b'\n\037com.android.emulation.bluetoothP\001\370\001\001\242\002\003AEB\252\002\033Android.Emulation.Bluetooth'
24
- _HCIPACKET._serialized_start=36
25
- _HCIPACKET._serialized_end=214
26
- _HCIPACKET_PACKETTYPE._serialized_start=123
27
- _HCIPACKET_PACKETTYPE._serialized_end=214
28
- # @@protoc_insertion_point(module_scope)
@@ -1,31 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: packet_streamer.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
- from google.protobuf import descriptor as _descriptor
7
- from google.protobuf import descriptor_pool as _descriptor_pool
8
- from google.protobuf import symbol_database as _symbol_database
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
- from . import hci_packet_pb2 as hci__packet__pb2
15
- from . import startup_pb2 as startup__pb2
16
-
17
-
18
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x15packet_streamer.proto\x12\rnetsim.packet\x1a\x10hci_packet.proto\x1a\rstartup.proto\"\x93\x01\n\rPacketRequest\x12\x30\n\x0cinitial_info\x18\x01 \x01(\x0b\x32\x18.netsim.startup.ChipInfoH\x00\x12.\n\nhci_packet\x18\x02 \x01(\x0b\x32\x18.netsim.packet.HCIPacketH\x00\x12\x10\n\x06packet\x18\x03 \x01(\x0cH\x00\x42\x0e\n\x0crequest_type\"t\n\x0ePacketResponse\x12\x0f\n\x05\x65rror\x18\x01 \x01(\tH\x00\x12.\n\nhci_packet\x18\x02 \x01(\x0b\x32\x18.netsim.packet.HCIPacketH\x00\x12\x10\n\x06packet\x18\x03 \x01(\x0cH\x00\x42\x0f\n\rresponse_type2b\n\x0ePacketStreamer\x12P\n\rStreamPackets\x12\x1c.netsim.packet.PacketRequest\x1a\x1d.netsim.packet.PacketResponse(\x01\x30\x01\x62\x06proto3')
19
-
20
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'packet_streamer_pb2', globals())
22
- if _descriptor._USE_C_DESCRIPTORS == False:
23
-
24
- DESCRIPTOR._options = None
25
- _PACKETREQUEST._serialized_start=74
26
- _PACKETREQUEST._serialized_end=221
27
- _PACKETRESPONSE._serialized_start=223
28
- _PACKETRESPONSE._serialized_end=339
29
- _PACKETSTREAMER._serialized_start=341
30
- _PACKETSTREAMER._serialized_end=439
31
- # @@protoc_insertion_point(module_scope)
@@ -1,32 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: startup.proto
4
- """Generated protocol buffer code."""
5
- from google.protobuf.internal import builder as _builder
6
- from google.protobuf import descriptor as _descriptor
7
- from google.protobuf import descriptor_pool as _descriptor_pool
8
- from google.protobuf import symbol_database as _symbol_database
9
- # @@protoc_insertion_point(imports)
10
-
11
- _sym_db = _symbol_database.Default()
12
-
13
-
14
- from . import common_pb2 as common__pb2
15
-
16
-
17
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\rstartup.proto\x12\x0enetsim.startup\x1a\x0c\x63ommon.proto\"\x7f\n\x0bStartupInfo\x12\x33\n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\".netsim.startup.StartupInfo.Device\x1a;\n\x06\x44\x65vice\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05\x63hips\x18\x02 \x03(\x0b\x32\x14.netsim.startup.Chip\"<\n\x08\x43hipInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\"\n\x04\x63hip\x18\x02 \x01(\x0b\x32\x14.netsim.startup.Chip\"\x96\x01\n\x04\x43hip\x12%\n\x04kind\x18\x01 \x01(\x0e\x32\x17.netsim.common.ChipKind\x12\n\n\x02id\x18\x02 \x01(\t\x12\x14\n\x0cmanufacturer\x18\x03 \x01(\t\x12\x14\n\x0cproduct_name\x18\x04 \x01(\t\x12\r\n\x05\x66\x64_in\x18\x05 \x01(\x05\x12\x0e\n\x06\x66\x64_out\x18\x06 \x01(\x05\x12\x10\n\x08loopback\x18\x07 \x01(\x08\x62\x06proto3')
18
-
19
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
20
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'startup_pb2', globals())
21
- if _descriptor._USE_C_DESCRIPTORS == False:
22
-
23
- DESCRIPTOR._options = None
24
- _STARTUPINFO._serialized_start=47
25
- _STARTUPINFO._serialized_end=174
26
- _STARTUPINFO_DEVICE._serialized_start=115
27
- _STARTUPINFO_DEVICE._serialized_end=174
28
- _CHIPINFO._serialized_start=176
29
- _CHIPINFO._serialized_end=236
30
- _CHIP._serialized_start=239
31
- _CHIP._serialized_end=389
32
- # @@protoc_insertion_point(module_scope)
@@ -1,46 +0,0 @@
1
- from . import common_pb2 as _common_pb2
2
- from google.protobuf.internal import containers as _containers
3
- from google.protobuf import descriptor as _descriptor
4
- from google.protobuf import message as _message
5
- from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
6
-
7
- DESCRIPTOR: _descriptor.FileDescriptor
8
-
9
- class Chip(_message.Message):
10
- __slots__ = ["fd_in", "fd_out", "id", "kind", "loopback", "manufacturer", "product_name"]
11
- FD_IN_FIELD_NUMBER: _ClassVar[int]
12
- FD_OUT_FIELD_NUMBER: _ClassVar[int]
13
- ID_FIELD_NUMBER: _ClassVar[int]
14
- KIND_FIELD_NUMBER: _ClassVar[int]
15
- LOOPBACK_FIELD_NUMBER: _ClassVar[int]
16
- MANUFACTURER_FIELD_NUMBER: _ClassVar[int]
17
- PRODUCT_NAME_FIELD_NUMBER: _ClassVar[int]
18
- fd_in: int
19
- fd_out: int
20
- id: str
21
- kind: _common_pb2.ChipKind
22
- loopback: bool
23
- manufacturer: str
24
- product_name: str
25
- def __init__(self, kind: _Optional[_Union[_common_pb2.ChipKind, str]] = ..., id: _Optional[str] = ..., manufacturer: _Optional[str] = ..., product_name: _Optional[str] = ..., fd_in: _Optional[int] = ..., fd_out: _Optional[int] = ..., loopback: bool = ...) -> None: ...
26
-
27
- class ChipInfo(_message.Message):
28
- __slots__ = ["chip", "name"]
29
- CHIP_FIELD_NUMBER: _ClassVar[int]
30
- NAME_FIELD_NUMBER: _ClassVar[int]
31
- chip: Chip
32
- name: str
33
- def __init__(self, name: _Optional[str] = ..., chip: _Optional[_Union[Chip, _Mapping]] = ...) -> None: ...
34
-
35
- class StartupInfo(_message.Message):
36
- __slots__ = ["devices"]
37
- class Device(_message.Message):
38
- __slots__ = ["chips", "name"]
39
- CHIPS_FIELD_NUMBER: _ClassVar[int]
40
- NAME_FIELD_NUMBER: _ClassVar[int]
41
- chips: _containers.RepeatedCompositeFieldContainer[Chip]
42
- name: str
43
- def __init__(self, name: _Optional[str] = ..., chips: _Optional[_Iterable[_Union[Chip, _Mapping]]] = ...) -> None: ...
44
- DEVICES_FIELD_NUMBER: _ClassVar[int]
45
- devices: _containers.RepeatedCompositeFieldContainer[StartupInfo.Device]
46
- def __init__(self, devices: _Optional[_Iterable[_Union[StartupInfo.Device, _Mapping]]] = ...) -> None: ...