loop-sdk 0.1.0__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.
loop_sdk/__init__.py ADDED
@@ -0,0 +1,84 @@
1
+ """loop-sdk — customer-side client for the Loop Source Bus.
2
+
3
+ Two layers:
4
+
5
+ * **High level (start here):** ``RobotStepSender`` — connect, declare a channel
6
+ layout once, send one named-reading dict per tick, disconnect. One class, four
7
+ calls; it also handles robot config negotiation for you. Most control loops
8
+ want only this.
9
+ * **Low level (shared core):** ``SourceProducer`` / ``SourceConsumer`` and the
10
+ ``source.*`` domain types — the gRPC handshake, streaming, reconnection, and
11
+ schema primitives the high-level sender is built on. Reach for these for a
12
+ non-robot source kind or fuller control of the stream.
13
+ """
14
+
15
+ from __future__ import annotations
16
+
17
+ from loop_sdk.source.client import SourceProducer
18
+ from loop_sdk.source.consumer import SourceConsumer
19
+ from loop_sdk.source.domain.config import (
20
+ OnSelectRobotConfig,
21
+ RobotConfig,
22
+ RobotConfigOptions,
23
+ )
24
+ from loop_sdk.source.domain.frame import (
25
+ MarkerFrame,
26
+ PolicyActionFrame,
27
+ RobotFrame,
28
+ RobotStateValue,
29
+ TactileChannelValue,
30
+ TactileFrame,
31
+ )
32
+ from loop_sdk.source.domain.schema import (
33
+ ChannelRole,
34
+ ChannelSpec,
35
+ MarkerStreamSchema,
36
+ RobotStreamSchema,
37
+ RotationType,
38
+ SourceSchema,
39
+ TactileChannelSpec,
40
+ TactileStreamSchema,
41
+ )
42
+ from loop_sdk.source.domain.source_exception import (
43
+ NotConnectedError,
44
+ SchemaMismatchError,
45
+ SourceError,
46
+ SubscriptionFailedError,
47
+ UnknownSourceError,
48
+ )
49
+ from loop_sdk.source.domain.source_kind import SourceKind
50
+ from loop_sdk.source.domain.stats import SendStats
51
+ from loop_sdk.source.robot_step_sender import RobotStepSender, flatten_step
52
+ from loop_sdk.source.setup.config import SourceConfig
53
+
54
+ __all__ = (
55
+ "ChannelRole",
56
+ "ChannelSpec",
57
+ "MarkerFrame",
58
+ "MarkerStreamSchema",
59
+ "NotConnectedError",
60
+ "OnSelectRobotConfig",
61
+ "PolicyActionFrame",
62
+ "RobotConfig",
63
+ "RobotConfigOptions",
64
+ "RobotFrame",
65
+ "RobotStateValue",
66
+ "RobotStepSender",
67
+ "RobotStreamSchema",
68
+ "RotationType",
69
+ "SchemaMismatchError",
70
+ "SendStats",
71
+ "SourceConfig",
72
+ "SourceConsumer",
73
+ "SourceError",
74
+ "SourceKind",
75
+ "SourceProducer",
76
+ "SourceSchema",
77
+ "SubscriptionFailedError",
78
+ "TactileChannelSpec",
79
+ "TactileChannelValue",
80
+ "TactileFrame",
81
+ "TactileStreamSchema",
82
+ "UnknownSourceError",
83
+ "flatten_step",
84
+ )
File without changes
@@ -0,0 +1 @@
1
+ from . import v1
File without changes
@@ -0,0 +1 @@
1
+ from . import source_ingest_pb2
@@ -0,0 +1,132 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: v1/source_ingest.proto
5
+ # Protobuf Python Version: 6.33.5
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 33,
16
+ 5,
17
+ '',
18
+ 'v1/source_ingest.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16v1/source_ingest.proto\x12\x19loop.foundation.source.v1\"\xc7\x03\n\x0b\x43lientEvent\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x12\n\ncommand_id\x18\x02 \x01(\t\x12\x37\n\x05ready\x18\n \x01(\x0b\x32&.loop.foundation.source.v1.ClientReadyH\x00\x12H\n\x11source_discovered\x18\x0b \x01(\x0b\x32+.loop.foundation.source.v1.SourceDiscoveredH\x00\x12\x42\n\x0escan_completed\x18\x0c \x01(\x0b\x32(.loop.foundation.source.v1.ScanCompletedH\x00\x12M\n\x14stream_state_changed\x18\r \x01(\x0b\x32-.loop.foundation.source.v1.StreamStateChangedH\x00\x12\x39\n\theartbeat\x18\x0e \x01(\x0b\x32$.loop.foundation.source.v1.HeartbeatH\x00\x12\x37\n\x05\x65rror\x18\x0f \x01(\x0b\x32&.loop.foundation.source.v1.ClientErrorH\x00\x42\x07\n\x05\x65vent\"\x8d\x02\n\x0fRecorderCommand\x12\x12\n\ncommand_id\x18\x01 \x01(\t\x12\x37\n\x08\x64\x65scribe\x18\n \x01(\x0b\x32#.loop.foundation.source.v1.DescribeH\x00\x12\x36\n\x04open\x18\x0b \x01(\x0b\x32&.loop.foundation.source.v1.OpenCommandH\x00\x12\x31\n\x05\x63lose\x18\x0c \x01(\x0b\x32 .loop.foundation.source.v1.CloseH\x00\x12\x37\n\x08shutdown\x18\r \x01(\x0b\x32#.loop.foundation.source.v1.ShutdownH\x00\x42\t\n\x07\x63ommand\"\x1e\n\x0b\x43lientReady\x12\x0f\n\x07version\x18\x01 \x01(\t\"\n\n\x08\x44\x65scribe\"\xcd\x02\n\x0bOpenCommand\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x10\n\x08start_us\x18\x02 \x01(\x03\x12\x12\n\nsource_ids\x18\x03 \x03(\t\x12?\n\x07tactile\x18\n \x01(\x0b\x32,.loop.foundation.source.v1.TactileOpenParamsH\x00\x12;\n\x05robot\x18\x0b \x01(\x0b\x32*.loop.foundation.source.v1.RobotOpenParamsH\x00\x12=\n\x06marker\x18\x0c \x01(\x0b\x32+.loop.foundation.source.v1.MarkerOpenParamsH\x00\x12=\n\x06\x63\x61mera\x18\r \x01(\x0b\x32+.loop.foundation.source.v1.CameraOpenParamsH\x00\x42\x08\n\x06params\"@\n\x05\x43lose\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0f\n\x07stop_us\x18\x02 \x01(\x03\x12\x12\n\nsource_ids\x18\x03 \x03(\t\"\x1a\n\x08Shutdown\x12\x0e\n\x06reason\x18\x01 \x01(\t\"a\n\rScanCompleted\x12\x18\n\x10\x64iscovered_count\x18\x01 \x01(\x05\x12\x36\n\x06\x65rrors\x18\x02 \x03(\x0b\x32&.loop.foundation.source.v1.ClientError\"!\n\tHeartbeat\x12\x14\n\x0cmonotonic_us\x18\x01 \x01(\x03\"?\n\x0b\x43lientError\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x11\n\tsource_id\x18\x03 \x01(\t\"\xc6\x01\n\x12StreamStateChanged\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x11\n\tsource_id\x18\x02 \x01(\t\x12\x35\n\x05state\x18\x03 \x01(\x0e\x32&.loop.foundation.source.v1.StreamState\x12\x0e\n\x06\x64\x65tail\x18\x04 \x01(\t\x12\x37\n\x05robot\x18\x05 \x01(\x0b\x32&.loop.foundation.source.v1.RobotConfigH\x00\x42\t\n\x07\x61pplied\"\xe3\x02\n\x10SourceDiscovered\x12\x11\n\tsource_id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x45\n\x07tactile\x18\n \x01(\x0b\x32\x32.loop.foundation.source.v1.TactileSourceDescriptorH\x00\x12\x41\n\x05robot\x18\x0b \x01(\x0b\x32\x30.loop.foundation.source.v1.RobotSourceDescriptorH\x00\x12\x43\n\x06marker\x18\x0c \x01(\x0b\x32\x31.loop.foundation.source.v1.MarkerSourceDescriptorH\x00\x12\x43\n\x06\x63\x61mera\x18\r \x01(\x0b\x32\x31.loop.foundation.source.v1.CameraSourceDescriptorH\x00\x42\x0c\n\ndescriptor\"`\n\x17TactileSourceDescriptor\x12\x45\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x33.loop.foundation.source.v1.TactileChannelDescriptor\"c\n\x18TactileChannelDescriptor\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x15\n\rsample_format\x18\x03 \x01(\t\x12\x14\n\x0csample_count\x18\x04 \x01(\x05\"\xa6\x01\n\x15RobotSourceDescriptor\x12\x43\n\x08\x63hannels\x18\x01 \x03(\x0b\x32\x31.loop.foundation.source.v1.RobotChannelDescriptor\x12H\n\x11\x61vailable_options\x18\x02 \x01(\x0b\x32-.loop.foundation.source.v1.RobotConfigOptions\"\xd6\x01\n\x16RobotChannelDescriptor\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\t\x12\x34\n\x04role\x18\x03 \x01(\x0e\x32&.loop.foundation.source.v1.ChannelRole\x12\x0c\n\x04unit\x18\x04 \x01(\t\x12>\n\x08rot_type\x18\x05 \x01(\x0e\x32,.loop.foundation.source.v1.RobotRotationType\x12\r\n\x05group\x18\x06 \x01(\t\x12\r\n\x05range\x18\x07 \x03(\x01\"\x18\n\x16MarkerSourceDescriptor\"\x9b\x01\n\x16\x43\x61meraSourceDescriptor\x12;\n\x04rtsp\x18\x01 \x01(\x0b\x32-.loop.foundation.source.v1.RtspCameraEndpoint\x12\x44\n\x12\x61vailable_settings\x18\x02 \x03(\x0b\x32(.loop.foundation.source.v1.CameraSetting\"^\n\x12RtspCameraEndpoint\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12;\n\ttransport\x18\x02 \x01(\x0e\x32(.loop.foundation.source.v1.RtspTransport\"\xd1\x01\n\rCameraSetting\x12?\n\nresolution\x18\x01 \x01(\x0b\x32+.loop.foundation.source.v1.CameraResolution\x12\x0b\n\x03\x66ps\x18\x02 \x01(\x01\x12\x42\n\x0cpixel_format\x18\x03 \x01(\x0e\x32,.loop.foundation.source.v1.CameraPixelFormat\x12\x17\n\x0fhorizontal_flip\x18\x04 \x01(\x08\x12\x15\n\rvertical_flip\x18\x05 \x01(\x08\"1\n\x10\x43\x61meraResolution\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\"\xe2\x02\n\x0bRobotConfig\x12\x12\n\ncontrol_hz\x18\x01 \x01(\x05\x12\x14\n\x0c\x61\x63tion_space\x18\x02 \x01(\t\x12\x19\n\x0cgripper_type\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x66inger_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nrobot_type\x18\x05 \x01(\tH\x02\x88\x01\x01\x12#\n\x16robot_firmware_version\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\"\n\x15teleoperation_version\x18\t \x01(\tH\x04\x88\x01\x01\x42\x0f\n\r_gripper_typeB\x0e\n\x0c_finger_typeB\r\n\x0b_robot_typeB\x19\n\x17_robot_firmware_versionB\x18\n\x16_teleoperation_versionJ\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\x14robot_server_versionR\x0brci_version\"\xeb\x01\n\x12RobotConfigOptions\x12\x12\n\ncontrol_hz\x18\x01 \x03(\x05\x12\x14\n\x0c\x61\x63tion_space\x18\x02 \x03(\t\x12\x14\n\x0cgripper_type\x18\x03 \x03(\t\x12\x13\n\x0b\x66inger_type\x18\x04 \x03(\t\x12\x12\n\nrobot_type\x18\x05 \x03(\t\x12\x1e\n\x16robot_firmware_version\x18\x06 \x03(\t\x12\x1d\n\x15teleoperation_version\x18\t \x03(\tJ\x04\x08\x07\x10\x08J\x04\x08\x08\x10\tR\x14robot_server_versionR\x0brci_version\"\x13\n\x11TactileOpenParams\"S\n\x0fRobotOpenParams\x12@\n\x10requested_config\x18\x01 \x01(\x0b\x32&.loop.foundation.source.v1.RobotConfig\"\x12\n\x10MarkerOpenParams\"W\n\x10\x43\x61meraOpenParams\x12\x43\n\x11requested_setting\x18\x01 \x01(\x0b\x32(.loop.foundation.source.v1.CameraSetting\"h\n\x0bSampleBatch\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x11\n\tsource_id\x18\x02 \x01(\t\x12\x32\n\x07samples\x18\x03 \x03(\x0b\x32!.loop.foundation.source.v1.Sample\"\xb8\x02\n\x06Sample\x12\x14\n\x0ctimestamp_us\x18\x01 \x01(\x03\x12\x10\n\x08sequence\x18\x02 \x01(\x04\x12<\n\x07tactile\x18\n \x01(\x0b\x32).loop.foundation.source.v1.TactilePayloadH\x00\x12\x38\n\x05robot\x18\x0b \x01(\x0b\x32\'.loop.foundation.source.v1.RobotPayloadH\x00\x12:\n\x06marker\x18\x0c \x01(\x0b\x32(.loop.foundation.source.v1.MarkerPayloadH\x00\x12G\n\rpolicy_action\x18\r \x01(\x0b\x32..loop.foundation.source.v1.PolicyActionPayloadH\x00\x42\t\n\x07payload\"S\n\x0eTactilePayload\x12\x41\n\x08\x63hannels\x18\x01 \x03(\x0b\x32/.loop.foundation.source.v1.TactileChannelSample\"D\n\x14TactileChannelSample\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x0b\n\x03raw\x18\x02 \x01(\x0c\x12\x12\n\nvalues_i16\x18\x03 \x03(\x05\"\xb4\x01\n\x0cRobotPayload\x12\x41\n\x05state\x18\x02 \x03(\x0b\x32\x32.loop.foundation.source.v1.RobotPayload.StateEntry\x1aS\n\nStateEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32%.loop.foundation.source.v1.RobotValue:\x02\x38\x01J\x04\x08\x01\x10\x02R\x06values\"\xa3\x01\n\nRobotValue\x12\x10\n\x06scalar\x18\x01 \x01(\x01H\x00\x12\x37\n\x05\x61rray\x18\x02 \x01(\x0b\x32&.loop.foundation.source.v1.DoubleArrayH\x00\x12\x13\n\tint_value\x18\x03 \x01(\x03H\x00\x12\x14\n\nbool_value\x18\x04 \x01(\x08H\x00\x12\x16\n\x0cstring_value\x18\x05 \x01(\tH\x00\x42\x07\n\x05value\"\x1d\n\x0b\x44oubleArray\x12\x0e\n\x06values\x18\x01 \x03(\x01\"\xe3\x01\n\x13PolicyActionPayload\x12>\n\x07\x61\x63tions\x18\x01 \x03(\x0b\x32-.loop.foundation.source.v1.PolicyActionVector\x12\'\n\x1ainput_sample_set_source_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x19input_sample_set_sequence\x18\x03 \x01(\x03H\x01\x88\x01\x01\x42\x1d\n\x1b_input_sample_set_source_idB\x1c\n\x1a_input_sample_set_sequence\"$\n\x12PolicyActionVector\x12\x0e\n\x06values\x18\x01 \x03(\x01\"0\n\rMarkerPayload\x12\r\n\x05label\x18\x01 \x01(\t\x12\x10\n\x08\x63\x61tegory\x18\x02 \x01(\t\"E\n\x15StreamSamplesResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x18\n\x10\x61\x63\x63\x65pted_samples\x18\x02 \x01(\x04\"9\n\x10SubscribeRequest\x12\x11\n\tsource_id\x18\x01 \x01(\t\x12\x12\n\nsession_id\x18\x02 \x01(\t\"\x8e\x01\n\x0eSubscribeEvent\x12\x33\n\x06sample\x18\x01 \x01(\x0b\x32!.loop.foundation.source.v1.SampleH\x00\x12>\n\x05state\x18\x02 \x01(\x0b\x32-.loop.foundation.source.v1.StreamStateChangedH\x00\x42\x07\n\x05\x65vent*x\n\x0bStreamState\x12\x1c\n\x18STREAM_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14STREAM_STATE_STARTED\x10\x01\x12\x18\n\x14STREAM_STATE_STOPPED\x10\x02\x12\x17\n\x13STREAM_STATE_FAILED\x10\x03*X\n\x0b\x43hannelRole\x12\x1c\n\x18\x43HANNEL_ROLE_UNSPECIFIED\x10\x00\x12\x15\n\x11\x43HANNEL_ROLE_CORE\x10\x01\x12\x14\n\x10\x43HANNEL_ROLE_AUX\x10\x02*\xa0\x01\n\x11RobotRotationType\x12#\n\x1fROBOT_ROTATION_TYPE_UNSPECIFIED\x10\x00\x12\"\n\x1eROBOT_ROTATION_TYPE_QUATERNION\x10\x01\x12\x1d\n\x19ROBOT_ROTATION_TYPE_EULER\x10\x02\x12#\n\x1fROBOT_ROTATION_TYPE_ROTATION_6D\x10\x03*_\n\rRtspTransport\x12\x1e\n\x1aRTSP_TRANSPORT_UNSPECIFIED\x10\x00\x12\x16\n\x12RTSP_TRANSPORT_TCP\x10\x01\x12\x16\n\x12RTSP_TRANSPORT_UDP\x10\x02*\x90\x02\n\x11\x43\x61meraPixelFormat\x12#\n\x1f\x43\x41MERA_PIXEL_FORMAT_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x43\x41MERA_PIXEL_FORMAT_MJPEG\x10\x01\x12\x1c\n\x18\x43\x41MERA_PIXEL_FORMAT_YUYV\x10\x02\x12\x1c\n\x18\x43\x41MERA_PIXEL_FORMAT_UYVY\x10\x03\x12\x1d\n\x19\x43\x41MERA_PIXEL_FORMAT_RGB24\x10\x04\x12\x1d\n\x19\x43\x41MERA_PIXEL_FORMAT_BGR24\x10\x05\x12\x1c\n\x18\x43\x41MERA_PIXEL_FORMAT_H264\x10\x06\x12\x1f\n\x1b\x43\x41MERA_PIXEL_FORMAT_UNKNOWN\x10\x07\x32\xe5\x01\n\x13SourceIngestService\x12\x61\n\x07\x43onnect\x12&.loop.foundation.source.v1.ClientEvent\x1a*.loop.foundation.source.v1.RecorderCommand(\x01\x30\x01\x12k\n\rStreamSamples\x12&.loop.foundation.source.v1.SampleBatch\x1a\x30.loop.foundation.source.v1.StreamSamplesResponse(\x01\x32z\n\x11SourceReadService\x12\x65\n\tSubscribe\x12+.loop.foundation.source.v1.SubscribeRequest\x1a).loop.foundation.source.v1.SubscribeEvent0\x01\x62\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'v1.source_ingest_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ DESCRIPTOR._loaded_options = None
34
+ _globals['_ROBOTPAYLOAD_STATEENTRY']._loaded_options = None
35
+ _globals['_ROBOTPAYLOAD_STATEENTRY']._serialized_options = b'8\001'
36
+ _globals['_STREAMSTATE']._serialized_start=5502
37
+ _globals['_STREAMSTATE']._serialized_end=5622
38
+ _globals['_CHANNELROLE']._serialized_start=5624
39
+ _globals['_CHANNELROLE']._serialized_end=5712
40
+ _globals['_ROBOTROTATIONTYPE']._serialized_start=5715
41
+ _globals['_ROBOTROTATIONTYPE']._serialized_end=5875
42
+ _globals['_RTSPTRANSPORT']._serialized_start=5877
43
+ _globals['_RTSPTRANSPORT']._serialized_end=5972
44
+ _globals['_CAMERAPIXELFORMAT']._serialized_start=5975
45
+ _globals['_CAMERAPIXELFORMAT']._serialized_end=6247
46
+ _globals['_CLIENTEVENT']._serialized_start=54
47
+ _globals['_CLIENTEVENT']._serialized_end=509
48
+ _globals['_RECORDERCOMMAND']._serialized_start=512
49
+ _globals['_RECORDERCOMMAND']._serialized_end=781
50
+ _globals['_CLIENTREADY']._serialized_start=783
51
+ _globals['_CLIENTREADY']._serialized_end=813
52
+ _globals['_DESCRIBE']._serialized_start=815
53
+ _globals['_DESCRIBE']._serialized_end=825
54
+ _globals['_OPENCOMMAND']._serialized_start=828
55
+ _globals['_OPENCOMMAND']._serialized_end=1161
56
+ _globals['_CLOSE']._serialized_start=1163
57
+ _globals['_CLOSE']._serialized_end=1227
58
+ _globals['_SHUTDOWN']._serialized_start=1229
59
+ _globals['_SHUTDOWN']._serialized_end=1255
60
+ _globals['_SCANCOMPLETED']._serialized_start=1257
61
+ _globals['_SCANCOMPLETED']._serialized_end=1354
62
+ _globals['_HEARTBEAT']._serialized_start=1356
63
+ _globals['_HEARTBEAT']._serialized_end=1389
64
+ _globals['_CLIENTERROR']._serialized_start=1391
65
+ _globals['_CLIENTERROR']._serialized_end=1454
66
+ _globals['_STREAMSTATECHANGED']._serialized_start=1457
67
+ _globals['_STREAMSTATECHANGED']._serialized_end=1655
68
+ _globals['_SOURCEDISCOVERED']._serialized_start=1658
69
+ _globals['_SOURCEDISCOVERED']._serialized_end=2013
70
+ _globals['_TACTILESOURCEDESCRIPTOR']._serialized_start=2015
71
+ _globals['_TACTILESOURCEDESCRIPTOR']._serialized_end=2111
72
+ _globals['_TACTILECHANNELDESCRIPTOR']._serialized_start=2113
73
+ _globals['_TACTILECHANNELDESCRIPTOR']._serialized_end=2212
74
+ _globals['_ROBOTSOURCEDESCRIPTOR']._serialized_start=2215
75
+ _globals['_ROBOTSOURCEDESCRIPTOR']._serialized_end=2381
76
+ _globals['_ROBOTCHANNELDESCRIPTOR']._serialized_start=2384
77
+ _globals['_ROBOTCHANNELDESCRIPTOR']._serialized_end=2598
78
+ _globals['_MARKERSOURCEDESCRIPTOR']._serialized_start=2600
79
+ _globals['_MARKERSOURCEDESCRIPTOR']._serialized_end=2624
80
+ _globals['_CAMERASOURCEDESCRIPTOR']._serialized_start=2627
81
+ _globals['_CAMERASOURCEDESCRIPTOR']._serialized_end=2782
82
+ _globals['_RTSPCAMERAENDPOINT']._serialized_start=2784
83
+ _globals['_RTSPCAMERAENDPOINT']._serialized_end=2878
84
+ _globals['_CAMERASETTING']._serialized_start=2881
85
+ _globals['_CAMERASETTING']._serialized_end=3090
86
+ _globals['_CAMERARESOLUTION']._serialized_start=3092
87
+ _globals['_CAMERARESOLUTION']._serialized_end=3141
88
+ _globals['_ROBOTCONFIG']._serialized_start=3144
89
+ _globals['_ROBOTCONFIG']._serialized_end=3498
90
+ _globals['_ROBOTCONFIGOPTIONS']._serialized_start=3501
91
+ _globals['_ROBOTCONFIGOPTIONS']._serialized_end=3736
92
+ _globals['_TACTILEOPENPARAMS']._serialized_start=3738
93
+ _globals['_TACTILEOPENPARAMS']._serialized_end=3757
94
+ _globals['_ROBOTOPENPARAMS']._serialized_start=3759
95
+ _globals['_ROBOTOPENPARAMS']._serialized_end=3842
96
+ _globals['_MARKEROPENPARAMS']._serialized_start=3844
97
+ _globals['_MARKEROPENPARAMS']._serialized_end=3862
98
+ _globals['_CAMERAOPENPARAMS']._serialized_start=3864
99
+ _globals['_CAMERAOPENPARAMS']._serialized_end=3951
100
+ _globals['_SAMPLEBATCH']._serialized_start=3953
101
+ _globals['_SAMPLEBATCH']._serialized_end=4057
102
+ _globals['_SAMPLE']._serialized_start=4060
103
+ _globals['_SAMPLE']._serialized_end=4372
104
+ _globals['_TACTILEPAYLOAD']._serialized_start=4374
105
+ _globals['_TACTILEPAYLOAD']._serialized_end=4457
106
+ _globals['_TACTILECHANNELSAMPLE']._serialized_start=4459
107
+ _globals['_TACTILECHANNELSAMPLE']._serialized_end=4527
108
+ _globals['_ROBOTPAYLOAD']._serialized_start=4530
109
+ _globals['_ROBOTPAYLOAD']._serialized_end=4710
110
+ _globals['_ROBOTPAYLOAD_STATEENTRY']._serialized_start=4613
111
+ _globals['_ROBOTPAYLOAD_STATEENTRY']._serialized_end=4696
112
+ _globals['_ROBOTVALUE']._serialized_start=4713
113
+ _globals['_ROBOTVALUE']._serialized_end=4876
114
+ _globals['_DOUBLEARRAY']._serialized_start=4878
115
+ _globals['_DOUBLEARRAY']._serialized_end=4907
116
+ _globals['_POLICYACTIONPAYLOAD']._serialized_start=4910
117
+ _globals['_POLICYACTIONPAYLOAD']._serialized_end=5137
118
+ _globals['_POLICYACTIONVECTOR']._serialized_start=5139
119
+ _globals['_POLICYACTIONVECTOR']._serialized_end=5175
120
+ _globals['_MARKERPAYLOAD']._serialized_start=5177
121
+ _globals['_MARKERPAYLOAD']._serialized_end=5225
122
+ _globals['_STREAMSAMPLESRESPONSE']._serialized_start=5227
123
+ _globals['_STREAMSAMPLESRESPONSE']._serialized_end=5296
124
+ _globals['_SUBSCRIBEREQUEST']._serialized_start=5298
125
+ _globals['_SUBSCRIBEREQUEST']._serialized_end=5355
126
+ _globals['_SUBSCRIBEEVENT']._serialized_start=5358
127
+ _globals['_SUBSCRIBEEVENT']._serialized_end=5500
128
+ _globals['_SOURCEINGESTSERVICE']._serialized_start=6250
129
+ _globals['_SOURCEINGESTSERVICE']._serialized_end=6479
130
+ _globals['_SOURCEREADSERVICE']._serialized_start=6481
131
+ _globals['_SOURCEREADSERVICE']._serialized_end=6603
132
+ # @@protoc_insertion_point(module_scope)