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 +84 -0
- loop_sdk/gen/__init__.py +0 -0
- loop_sdk/gen/__init__.pyi +1 -0
- loop_sdk/gen/v1/__init__.py +0 -0
- loop_sdk/gen/v1/__init__.pyi +1 -0
- loop_sdk/gen/v1/source_ingest_pb2.py +132 -0
- loop_sdk/gen/v1/source_ingest_pb2.pyi +466 -0
- loop_sdk/gen/v1/source_ingest_pb2_grpc.py +288 -0
- loop_sdk/source/__init__.py +0 -0
- loop_sdk/source/client.py +123 -0
- loop_sdk/source/consumer.py +54 -0
- loop_sdk/source/domain/__init__.py +0 -0
- loop_sdk/source/domain/config.py +61 -0
- loop_sdk/source/domain/frame.py +108 -0
- loop_sdk/source/domain/schema.py +193 -0
- loop_sdk/source/domain/source_exception.py +48 -0
- loop_sdk/source/domain/source_kind.py +18 -0
- loop_sdk/source/domain/stats.py +22 -0
- loop_sdk/source/outbound/__init__.py +0 -0
- loop_sdk/source/outbound/frame_queue.py +85 -0
- loop_sdk/source/outbound/grpc_source_client.py +360 -0
- loop_sdk/source/outbound/grpc_source_reader.py +82 -0
- loop_sdk/source/outbound/proto_mapping.py +239 -0
- loop_sdk/source/port/__init__.py +0 -0
- loop_sdk/source/port/source_client.py +49 -0
- loop_sdk/source/port/source_reader.py +34 -0
- loop_sdk/source/robot_step_sender.py +410 -0
- loop_sdk/source/service/__init__.py +0 -0
- loop_sdk/source/service/producer_session.py +81 -0
- loop_sdk/source/setup/__init__.py +0 -0
- loop_sdk/source/setup/config.py +30 -0
- loop_sdk-0.1.0.dist-info/METADATA +9 -0
- loop_sdk-0.1.0.dist-info/RECORD +34 -0
- loop_sdk-0.1.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,466 @@
|
|
|
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 collections.abc import Iterable as _Iterable, Mapping as _Mapping
|
|
6
|
+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
|
|
7
|
+
|
|
8
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
9
|
+
|
|
10
|
+
class StreamState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
11
|
+
__slots__ = ()
|
|
12
|
+
STREAM_STATE_UNSPECIFIED: _ClassVar[StreamState]
|
|
13
|
+
STREAM_STATE_STARTED: _ClassVar[StreamState]
|
|
14
|
+
STREAM_STATE_STOPPED: _ClassVar[StreamState]
|
|
15
|
+
STREAM_STATE_FAILED: _ClassVar[StreamState]
|
|
16
|
+
|
|
17
|
+
class ChannelRole(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
18
|
+
__slots__ = ()
|
|
19
|
+
CHANNEL_ROLE_UNSPECIFIED: _ClassVar[ChannelRole]
|
|
20
|
+
CHANNEL_ROLE_CORE: _ClassVar[ChannelRole]
|
|
21
|
+
CHANNEL_ROLE_AUX: _ClassVar[ChannelRole]
|
|
22
|
+
|
|
23
|
+
class RobotRotationType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
24
|
+
__slots__ = ()
|
|
25
|
+
ROBOT_ROTATION_TYPE_UNSPECIFIED: _ClassVar[RobotRotationType]
|
|
26
|
+
ROBOT_ROTATION_TYPE_QUATERNION: _ClassVar[RobotRotationType]
|
|
27
|
+
ROBOT_ROTATION_TYPE_EULER: _ClassVar[RobotRotationType]
|
|
28
|
+
ROBOT_ROTATION_TYPE_ROTATION_6D: _ClassVar[RobotRotationType]
|
|
29
|
+
|
|
30
|
+
class RtspTransport(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
31
|
+
__slots__ = ()
|
|
32
|
+
RTSP_TRANSPORT_UNSPECIFIED: _ClassVar[RtspTransport]
|
|
33
|
+
RTSP_TRANSPORT_TCP: _ClassVar[RtspTransport]
|
|
34
|
+
RTSP_TRANSPORT_UDP: _ClassVar[RtspTransport]
|
|
35
|
+
|
|
36
|
+
class CameraPixelFormat(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
|
|
37
|
+
__slots__ = ()
|
|
38
|
+
CAMERA_PIXEL_FORMAT_UNSPECIFIED: _ClassVar[CameraPixelFormat]
|
|
39
|
+
CAMERA_PIXEL_FORMAT_MJPEG: _ClassVar[CameraPixelFormat]
|
|
40
|
+
CAMERA_PIXEL_FORMAT_YUYV: _ClassVar[CameraPixelFormat]
|
|
41
|
+
CAMERA_PIXEL_FORMAT_UYVY: _ClassVar[CameraPixelFormat]
|
|
42
|
+
CAMERA_PIXEL_FORMAT_RGB24: _ClassVar[CameraPixelFormat]
|
|
43
|
+
CAMERA_PIXEL_FORMAT_BGR24: _ClassVar[CameraPixelFormat]
|
|
44
|
+
CAMERA_PIXEL_FORMAT_H264: _ClassVar[CameraPixelFormat]
|
|
45
|
+
CAMERA_PIXEL_FORMAT_UNKNOWN: _ClassVar[CameraPixelFormat]
|
|
46
|
+
STREAM_STATE_UNSPECIFIED: StreamState
|
|
47
|
+
STREAM_STATE_STARTED: StreamState
|
|
48
|
+
STREAM_STATE_STOPPED: StreamState
|
|
49
|
+
STREAM_STATE_FAILED: StreamState
|
|
50
|
+
CHANNEL_ROLE_UNSPECIFIED: ChannelRole
|
|
51
|
+
CHANNEL_ROLE_CORE: ChannelRole
|
|
52
|
+
CHANNEL_ROLE_AUX: ChannelRole
|
|
53
|
+
ROBOT_ROTATION_TYPE_UNSPECIFIED: RobotRotationType
|
|
54
|
+
ROBOT_ROTATION_TYPE_QUATERNION: RobotRotationType
|
|
55
|
+
ROBOT_ROTATION_TYPE_EULER: RobotRotationType
|
|
56
|
+
ROBOT_ROTATION_TYPE_ROTATION_6D: RobotRotationType
|
|
57
|
+
RTSP_TRANSPORT_UNSPECIFIED: RtspTransport
|
|
58
|
+
RTSP_TRANSPORT_TCP: RtspTransport
|
|
59
|
+
RTSP_TRANSPORT_UDP: RtspTransport
|
|
60
|
+
CAMERA_PIXEL_FORMAT_UNSPECIFIED: CameraPixelFormat
|
|
61
|
+
CAMERA_PIXEL_FORMAT_MJPEG: CameraPixelFormat
|
|
62
|
+
CAMERA_PIXEL_FORMAT_YUYV: CameraPixelFormat
|
|
63
|
+
CAMERA_PIXEL_FORMAT_UYVY: CameraPixelFormat
|
|
64
|
+
CAMERA_PIXEL_FORMAT_RGB24: CameraPixelFormat
|
|
65
|
+
CAMERA_PIXEL_FORMAT_BGR24: CameraPixelFormat
|
|
66
|
+
CAMERA_PIXEL_FORMAT_H264: CameraPixelFormat
|
|
67
|
+
CAMERA_PIXEL_FORMAT_UNKNOWN: CameraPixelFormat
|
|
68
|
+
|
|
69
|
+
class ClientEvent(_message.Message):
|
|
70
|
+
__slots__ = ("client_id", "command_id", "ready", "source_discovered", "scan_completed", "stream_state_changed", "heartbeat", "error")
|
|
71
|
+
CLIENT_ID_FIELD_NUMBER: _ClassVar[int]
|
|
72
|
+
COMMAND_ID_FIELD_NUMBER: _ClassVar[int]
|
|
73
|
+
READY_FIELD_NUMBER: _ClassVar[int]
|
|
74
|
+
SOURCE_DISCOVERED_FIELD_NUMBER: _ClassVar[int]
|
|
75
|
+
SCAN_COMPLETED_FIELD_NUMBER: _ClassVar[int]
|
|
76
|
+
STREAM_STATE_CHANGED_FIELD_NUMBER: _ClassVar[int]
|
|
77
|
+
HEARTBEAT_FIELD_NUMBER: _ClassVar[int]
|
|
78
|
+
ERROR_FIELD_NUMBER: _ClassVar[int]
|
|
79
|
+
client_id: str
|
|
80
|
+
command_id: str
|
|
81
|
+
ready: ClientReady
|
|
82
|
+
source_discovered: SourceDiscovered
|
|
83
|
+
scan_completed: ScanCompleted
|
|
84
|
+
stream_state_changed: StreamStateChanged
|
|
85
|
+
heartbeat: Heartbeat
|
|
86
|
+
error: ClientError
|
|
87
|
+
def __init__(self, client_id: _Optional[str] = ..., command_id: _Optional[str] = ..., ready: _Optional[_Union[ClientReady, _Mapping]] = ..., source_discovered: _Optional[_Union[SourceDiscovered, _Mapping]] = ..., scan_completed: _Optional[_Union[ScanCompleted, _Mapping]] = ..., stream_state_changed: _Optional[_Union[StreamStateChanged, _Mapping]] = ..., heartbeat: _Optional[_Union[Heartbeat, _Mapping]] = ..., error: _Optional[_Union[ClientError, _Mapping]] = ...) -> None: ...
|
|
88
|
+
|
|
89
|
+
class RecorderCommand(_message.Message):
|
|
90
|
+
__slots__ = ("command_id", "describe", "open", "close", "shutdown")
|
|
91
|
+
COMMAND_ID_FIELD_NUMBER: _ClassVar[int]
|
|
92
|
+
DESCRIBE_FIELD_NUMBER: _ClassVar[int]
|
|
93
|
+
OPEN_FIELD_NUMBER: _ClassVar[int]
|
|
94
|
+
CLOSE_FIELD_NUMBER: _ClassVar[int]
|
|
95
|
+
SHUTDOWN_FIELD_NUMBER: _ClassVar[int]
|
|
96
|
+
command_id: str
|
|
97
|
+
describe: Describe
|
|
98
|
+
open: OpenCommand
|
|
99
|
+
close: Close
|
|
100
|
+
shutdown: Shutdown
|
|
101
|
+
def __init__(self, command_id: _Optional[str] = ..., describe: _Optional[_Union[Describe, _Mapping]] = ..., open: _Optional[_Union[OpenCommand, _Mapping]] = ..., close: _Optional[_Union[Close, _Mapping]] = ..., shutdown: _Optional[_Union[Shutdown, _Mapping]] = ...) -> None: ...
|
|
102
|
+
|
|
103
|
+
class ClientReady(_message.Message):
|
|
104
|
+
__slots__ = ("version",)
|
|
105
|
+
VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
106
|
+
version: str
|
|
107
|
+
def __init__(self, version: _Optional[str] = ...) -> None: ...
|
|
108
|
+
|
|
109
|
+
class Describe(_message.Message):
|
|
110
|
+
__slots__ = ()
|
|
111
|
+
def __init__(self) -> None: ...
|
|
112
|
+
|
|
113
|
+
class OpenCommand(_message.Message):
|
|
114
|
+
__slots__ = ("session_id", "start_us", "source_ids", "tactile", "robot", "marker", "camera")
|
|
115
|
+
SESSION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
116
|
+
START_US_FIELD_NUMBER: _ClassVar[int]
|
|
117
|
+
SOURCE_IDS_FIELD_NUMBER: _ClassVar[int]
|
|
118
|
+
TACTILE_FIELD_NUMBER: _ClassVar[int]
|
|
119
|
+
ROBOT_FIELD_NUMBER: _ClassVar[int]
|
|
120
|
+
MARKER_FIELD_NUMBER: _ClassVar[int]
|
|
121
|
+
CAMERA_FIELD_NUMBER: _ClassVar[int]
|
|
122
|
+
session_id: str
|
|
123
|
+
start_us: int
|
|
124
|
+
source_ids: _containers.RepeatedScalarFieldContainer[str]
|
|
125
|
+
tactile: TactileOpenParams
|
|
126
|
+
robot: RobotOpenParams
|
|
127
|
+
marker: MarkerOpenParams
|
|
128
|
+
camera: CameraOpenParams
|
|
129
|
+
def __init__(self, session_id: _Optional[str] = ..., start_us: _Optional[int] = ..., source_ids: _Optional[_Iterable[str]] = ..., tactile: _Optional[_Union[TactileOpenParams, _Mapping]] = ..., robot: _Optional[_Union[RobotOpenParams, _Mapping]] = ..., marker: _Optional[_Union[MarkerOpenParams, _Mapping]] = ..., camera: _Optional[_Union[CameraOpenParams, _Mapping]] = ...) -> None: ...
|
|
130
|
+
|
|
131
|
+
class Close(_message.Message):
|
|
132
|
+
__slots__ = ("session_id", "stop_us", "source_ids")
|
|
133
|
+
SESSION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
134
|
+
STOP_US_FIELD_NUMBER: _ClassVar[int]
|
|
135
|
+
SOURCE_IDS_FIELD_NUMBER: _ClassVar[int]
|
|
136
|
+
session_id: str
|
|
137
|
+
stop_us: int
|
|
138
|
+
source_ids: _containers.RepeatedScalarFieldContainer[str]
|
|
139
|
+
def __init__(self, session_id: _Optional[str] = ..., stop_us: _Optional[int] = ..., source_ids: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
140
|
+
|
|
141
|
+
class Shutdown(_message.Message):
|
|
142
|
+
__slots__ = ("reason",)
|
|
143
|
+
REASON_FIELD_NUMBER: _ClassVar[int]
|
|
144
|
+
reason: str
|
|
145
|
+
def __init__(self, reason: _Optional[str] = ...) -> None: ...
|
|
146
|
+
|
|
147
|
+
class ScanCompleted(_message.Message):
|
|
148
|
+
__slots__ = ("discovered_count", "errors")
|
|
149
|
+
DISCOVERED_COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
150
|
+
ERRORS_FIELD_NUMBER: _ClassVar[int]
|
|
151
|
+
discovered_count: int
|
|
152
|
+
errors: _containers.RepeatedCompositeFieldContainer[ClientError]
|
|
153
|
+
def __init__(self, discovered_count: _Optional[int] = ..., errors: _Optional[_Iterable[_Union[ClientError, _Mapping]]] = ...) -> None: ...
|
|
154
|
+
|
|
155
|
+
class Heartbeat(_message.Message):
|
|
156
|
+
__slots__ = ("monotonic_us",)
|
|
157
|
+
MONOTONIC_US_FIELD_NUMBER: _ClassVar[int]
|
|
158
|
+
monotonic_us: int
|
|
159
|
+
def __init__(self, monotonic_us: _Optional[int] = ...) -> None: ...
|
|
160
|
+
|
|
161
|
+
class ClientError(_message.Message):
|
|
162
|
+
__slots__ = ("code", "message", "source_id")
|
|
163
|
+
CODE_FIELD_NUMBER: _ClassVar[int]
|
|
164
|
+
MESSAGE_FIELD_NUMBER: _ClassVar[int]
|
|
165
|
+
SOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
166
|
+
code: str
|
|
167
|
+
message: str
|
|
168
|
+
source_id: str
|
|
169
|
+
def __init__(self, code: _Optional[str] = ..., message: _Optional[str] = ..., source_id: _Optional[str] = ...) -> None: ...
|
|
170
|
+
|
|
171
|
+
class StreamStateChanged(_message.Message):
|
|
172
|
+
__slots__ = ("session_id", "source_id", "state", "detail", "robot")
|
|
173
|
+
SESSION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
174
|
+
SOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
175
|
+
STATE_FIELD_NUMBER: _ClassVar[int]
|
|
176
|
+
DETAIL_FIELD_NUMBER: _ClassVar[int]
|
|
177
|
+
ROBOT_FIELD_NUMBER: _ClassVar[int]
|
|
178
|
+
session_id: str
|
|
179
|
+
source_id: str
|
|
180
|
+
state: StreamState
|
|
181
|
+
detail: str
|
|
182
|
+
robot: RobotConfig
|
|
183
|
+
def __init__(self, session_id: _Optional[str] = ..., source_id: _Optional[str] = ..., state: _Optional[_Union[StreamState, str]] = ..., detail: _Optional[str] = ..., robot: _Optional[_Union[RobotConfig, _Mapping]] = ...) -> None: ...
|
|
184
|
+
|
|
185
|
+
class SourceDiscovered(_message.Message):
|
|
186
|
+
__slots__ = ("source_id", "name", "path", "tactile", "robot", "marker", "camera")
|
|
187
|
+
SOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
188
|
+
NAME_FIELD_NUMBER: _ClassVar[int]
|
|
189
|
+
PATH_FIELD_NUMBER: _ClassVar[int]
|
|
190
|
+
TACTILE_FIELD_NUMBER: _ClassVar[int]
|
|
191
|
+
ROBOT_FIELD_NUMBER: _ClassVar[int]
|
|
192
|
+
MARKER_FIELD_NUMBER: _ClassVar[int]
|
|
193
|
+
CAMERA_FIELD_NUMBER: _ClassVar[int]
|
|
194
|
+
source_id: str
|
|
195
|
+
name: str
|
|
196
|
+
path: str
|
|
197
|
+
tactile: TactileSourceDescriptor
|
|
198
|
+
robot: RobotSourceDescriptor
|
|
199
|
+
marker: MarkerSourceDescriptor
|
|
200
|
+
camera: CameraSourceDescriptor
|
|
201
|
+
def __init__(self, source_id: _Optional[str] = ..., name: _Optional[str] = ..., path: _Optional[str] = ..., tactile: _Optional[_Union[TactileSourceDescriptor, _Mapping]] = ..., robot: _Optional[_Union[RobotSourceDescriptor, _Mapping]] = ..., marker: _Optional[_Union[MarkerSourceDescriptor, _Mapping]] = ..., camera: _Optional[_Union[CameraSourceDescriptor, _Mapping]] = ...) -> None: ...
|
|
202
|
+
|
|
203
|
+
class TactileSourceDescriptor(_message.Message):
|
|
204
|
+
__slots__ = ("channels",)
|
|
205
|
+
CHANNELS_FIELD_NUMBER: _ClassVar[int]
|
|
206
|
+
channels: _containers.RepeatedCompositeFieldContainer[TactileChannelDescriptor]
|
|
207
|
+
def __init__(self, channels: _Optional[_Iterable[_Union[TactileChannelDescriptor, _Mapping]]] = ...) -> None: ...
|
|
208
|
+
|
|
209
|
+
class TactileChannelDescriptor(_message.Message):
|
|
210
|
+
__slots__ = ("key", "label", "sample_format", "sample_count")
|
|
211
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
212
|
+
LABEL_FIELD_NUMBER: _ClassVar[int]
|
|
213
|
+
SAMPLE_FORMAT_FIELD_NUMBER: _ClassVar[int]
|
|
214
|
+
SAMPLE_COUNT_FIELD_NUMBER: _ClassVar[int]
|
|
215
|
+
key: str
|
|
216
|
+
label: str
|
|
217
|
+
sample_format: str
|
|
218
|
+
sample_count: int
|
|
219
|
+
def __init__(self, key: _Optional[str] = ..., label: _Optional[str] = ..., sample_format: _Optional[str] = ..., sample_count: _Optional[int] = ...) -> None: ...
|
|
220
|
+
|
|
221
|
+
class RobotSourceDescriptor(_message.Message):
|
|
222
|
+
__slots__ = ("channels", "available_options")
|
|
223
|
+
CHANNELS_FIELD_NUMBER: _ClassVar[int]
|
|
224
|
+
AVAILABLE_OPTIONS_FIELD_NUMBER: _ClassVar[int]
|
|
225
|
+
channels: _containers.RepeatedCompositeFieldContainer[RobotChannelDescriptor]
|
|
226
|
+
available_options: RobotConfigOptions
|
|
227
|
+
def __init__(self, channels: _Optional[_Iterable[_Union[RobotChannelDescriptor, _Mapping]]] = ..., available_options: _Optional[_Union[RobotConfigOptions, _Mapping]] = ...) -> None: ...
|
|
228
|
+
|
|
229
|
+
class RobotChannelDescriptor(_message.Message):
|
|
230
|
+
__slots__ = ("key", "label", "role", "unit", "rot_type", "group", "range")
|
|
231
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
232
|
+
LABEL_FIELD_NUMBER: _ClassVar[int]
|
|
233
|
+
ROLE_FIELD_NUMBER: _ClassVar[int]
|
|
234
|
+
UNIT_FIELD_NUMBER: _ClassVar[int]
|
|
235
|
+
ROT_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
236
|
+
GROUP_FIELD_NUMBER: _ClassVar[int]
|
|
237
|
+
RANGE_FIELD_NUMBER: _ClassVar[int]
|
|
238
|
+
key: str
|
|
239
|
+
label: str
|
|
240
|
+
role: ChannelRole
|
|
241
|
+
unit: str
|
|
242
|
+
rot_type: RobotRotationType
|
|
243
|
+
group: str
|
|
244
|
+
range: _containers.RepeatedScalarFieldContainer[float]
|
|
245
|
+
def __init__(self, key: _Optional[str] = ..., label: _Optional[str] = ..., role: _Optional[_Union[ChannelRole, str]] = ..., unit: _Optional[str] = ..., rot_type: _Optional[_Union[RobotRotationType, str]] = ..., group: _Optional[str] = ..., range: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
246
|
+
|
|
247
|
+
class MarkerSourceDescriptor(_message.Message):
|
|
248
|
+
__slots__ = ()
|
|
249
|
+
def __init__(self) -> None: ...
|
|
250
|
+
|
|
251
|
+
class CameraSourceDescriptor(_message.Message):
|
|
252
|
+
__slots__ = ("rtsp", "available_settings")
|
|
253
|
+
RTSP_FIELD_NUMBER: _ClassVar[int]
|
|
254
|
+
AVAILABLE_SETTINGS_FIELD_NUMBER: _ClassVar[int]
|
|
255
|
+
rtsp: RtspCameraEndpoint
|
|
256
|
+
available_settings: _containers.RepeatedCompositeFieldContainer[CameraSetting]
|
|
257
|
+
def __init__(self, rtsp: _Optional[_Union[RtspCameraEndpoint, _Mapping]] = ..., available_settings: _Optional[_Iterable[_Union[CameraSetting, _Mapping]]] = ...) -> None: ...
|
|
258
|
+
|
|
259
|
+
class RtspCameraEndpoint(_message.Message):
|
|
260
|
+
__slots__ = ("uri", "transport")
|
|
261
|
+
URI_FIELD_NUMBER: _ClassVar[int]
|
|
262
|
+
TRANSPORT_FIELD_NUMBER: _ClassVar[int]
|
|
263
|
+
uri: str
|
|
264
|
+
transport: RtspTransport
|
|
265
|
+
def __init__(self, uri: _Optional[str] = ..., transport: _Optional[_Union[RtspTransport, str]] = ...) -> None: ...
|
|
266
|
+
|
|
267
|
+
class CameraSetting(_message.Message):
|
|
268
|
+
__slots__ = ("resolution", "fps", "pixel_format", "horizontal_flip", "vertical_flip")
|
|
269
|
+
RESOLUTION_FIELD_NUMBER: _ClassVar[int]
|
|
270
|
+
FPS_FIELD_NUMBER: _ClassVar[int]
|
|
271
|
+
PIXEL_FORMAT_FIELD_NUMBER: _ClassVar[int]
|
|
272
|
+
HORIZONTAL_FLIP_FIELD_NUMBER: _ClassVar[int]
|
|
273
|
+
VERTICAL_FLIP_FIELD_NUMBER: _ClassVar[int]
|
|
274
|
+
resolution: CameraResolution
|
|
275
|
+
fps: float
|
|
276
|
+
pixel_format: CameraPixelFormat
|
|
277
|
+
horizontal_flip: bool
|
|
278
|
+
vertical_flip: bool
|
|
279
|
+
def __init__(self, resolution: _Optional[_Union[CameraResolution, _Mapping]] = ..., fps: _Optional[float] = ..., pixel_format: _Optional[_Union[CameraPixelFormat, str]] = ..., horizontal_flip: _Optional[bool] = ..., vertical_flip: _Optional[bool] = ...) -> None: ...
|
|
280
|
+
|
|
281
|
+
class CameraResolution(_message.Message):
|
|
282
|
+
__slots__ = ("width", "height")
|
|
283
|
+
WIDTH_FIELD_NUMBER: _ClassVar[int]
|
|
284
|
+
HEIGHT_FIELD_NUMBER: _ClassVar[int]
|
|
285
|
+
width: int
|
|
286
|
+
height: int
|
|
287
|
+
def __init__(self, width: _Optional[int] = ..., height: _Optional[int] = ...) -> None: ...
|
|
288
|
+
|
|
289
|
+
class RobotConfig(_message.Message):
|
|
290
|
+
__slots__ = ("control_hz", "action_space", "gripper_type", "finger_type", "robot_type", "robot_firmware_version", "teleoperation_version")
|
|
291
|
+
CONTROL_HZ_FIELD_NUMBER: _ClassVar[int]
|
|
292
|
+
ACTION_SPACE_FIELD_NUMBER: _ClassVar[int]
|
|
293
|
+
GRIPPER_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
294
|
+
FINGER_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
295
|
+
ROBOT_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
296
|
+
ROBOT_FIRMWARE_VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
297
|
+
TELEOPERATION_VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
298
|
+
control_hz: int
|
|
299
|
+
action_space: str
|
|
300
|
+
gripper_type: str
|
|
301
|
+
finger_type: str
|
|
302
|
+
robot_type: str
|
|
303
|
+
robot_firmware_version: str
|
|
304
|
+
teleoperation_version: str
|
|
305
|
+
def __init__(self, control_hz: _Optional[int] = ..., action_space: _Optional[str] = ..., gripper_type: _Optional[str] = ..., finger_type: _Optional[str] = ..., robot_type: _Optional[str] = ..., robot_firmware_version: _Optional[str] = ..., teleoperation_version: _Optional[str] = ...) -> None: ...
|
|
306
|
+
|
|
307
|
+
class RobotConfigOptions(_message.Message):
|
|
308
|
+
__slots__ = ("control_hz", "action_space", "gripper_type", "finger_type", "robot_type", "robot_firmware_version", "teleoperation_version")
|
|
309
|
+
CONTROL_HZ_FIELD_NUMBER: _ClassVar[int]
|
|
310
|
+
ACTION_SPACE_FIELD_NUMBER: _ClassVar[int]
|
|
311
|
+
GRIPPER_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
312
|
+
FINGER_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
313
|
+
ROBOT_TYPE_FIELD_NUMBER: _ClassVar[int]
|
|
314
|
+
ROBOT_FIRMWARE_VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
315
|
+
TELEOPERATION_VERSION_FIELD_NUMBER: _ClassVar[int]
|
|
316
|
+
control_hz: _containers.RepeatedScalarFieldContainer[int]
|
|
317
|
+
action_space: _containers.RepeatedScalarFieldContainer[str]
|
|
318
|
+
gripper_type: _containers.RepeatedScalarFieldContainer[str]
|
|
319
|
+
finger_type: _containers.RepeatedScalarFieldContainer[str]
|
|
320
|
+
robot_type: _containers.RepeatedScalarFieldContainer[str]
|
|
321
|
+
robot_firmware_version: _containers.RepeatedScalarFieldContainer[str]
|
|
322
|
+
teleoperation_version: _containers.RepeatedScalarFieldContainer[str]
|
|
323
|
+
def __init__(self, control_hz: _Optional[_Iterable[int]] = ..., action_space: _Optional[_Iterable[str]] = ..., gripper_type: _Optional[_Iterable[str]] = ..., finger_type: _Optional[_Iterable[str]] = ..., robot_type: _Optional[_Iterable[str]] = ..., robot_firmware_version: _Optional[_Iterable[str]] = ..., teleoperation_version: _Optional[_Iterable[str]] = ...) -> None: ...
|
|
324
|
+
|
|
325
|
+
class TactileOpenParams(_message.Message):
|
|
326
|
+
__slots__ = ()
|
|
327
|
+
def __init__(self) -> None: ...
|
|
328
|
+
|
|
329
|
+
class RobotOpenParams(_message.Message):
|
|
330
|
+
__slots__ = ("requested_config",)
|
|
331
|
+
REQUESTED_CONFIG_FIELD_NUMBER: _ClassVar[int]
|
|
332
|
+
requested_config: RobotConfig
|
|
333
|
+
def __init__(self, requested_config: _Optional[_Union[RobotConfig, _Mapping]] = ...) -> None: ...
|
|
334
|
+
|
|
335
|
+
class MarkerOpenParams(_message.Message):
|
|
336
|
+
__slots__ = ()
|
|
337
|
+
def __init__(self) -> None: ...
|
|
338
|
+
|
|
339
|
+
class CameraOpenParams(_message.Message):
|
|
340
|
+
__slots__ = ("requested_setting",)
|
|
341
|
+
REQUESTED_SETTING_FIELD_NUMBER: _ClassVar[int]
|
|
342
|
+
requested_setting: CameraSetting
|
|
343
|
+
def __init__(self, requested_setting: _Optional[_Union[CameraSetting, _Mapping]] = ...) -> None: ...
|
|
344
|
+
|
|
345
|
+
class SampleBatch(_message.Message):
|
|
346
|
+
__slots__ = ("session_id", "source_id", "samples")
|
|
347
|
+
SESSION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
348
|
+
SOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
349
|
+
SAMPLES_FIELD_NUMBER: _ClassVar[int]
|
|
350
|
+
session_id: str
|
|
351
|
+
source_id: str
|
|
352
|
+
samples: _containers.RepeatedCompositeFieldContainer[Sample]
|
|
353
|
+
def __init__(self, session_id: _Optional[str] = ..., source_id: _Optional[str] = ..., samples: _Optional[_Iterable[_Union[Sample, _Mapping]]] = ...) -> None: ...
|
|
354
|
+
|
|
355
|
+
class Sample(_message.Message):
|
|
356
|
+
__slots__ = ("timestamp_us", "sequence", "tactile", "robot", "marker", "policy_action")
|
|
357
|
+
TIMESTAMP_US_FIELD_NUMBER: _ClassVar[int]
|
|
358
|
+
SEQUENCE_FIELD_NUMBER: _ClassVar[int]
|
|
359
|
+
TACTILE_FIELD_NUMBER: _ClassVar[int]
|
|
360
|
+
ROBOT_FIELD_NUMBER: _ClassVar[int]
|
|
361
|
+
MARKER_FIELD_NUMBER: _ClassVar[int]
|
|
362
|
+
POLICY_ACTION_FIELD_NUMBER: _ClassVar[int]
|
|
363
|
+
timestamp_us: int
|
|
364
|
+
sequence: int
|
|
365
|
+
tactile: TactilePayload
|
|
366
|
+
robot: RobotPayload
|
|
367
|
+
marker: MarkerPayload
|
|
368
|
+
policy_action: PolicyActionPayload
|
|
369
|
+
def __init__(self, timestamp_us: _Optional[int] = ..., sequence: _Optional[int] = ..., tactile: _Optional[_Union[TactilePayload, _Mapping]] = ..., robot: _Optional[_Union[RobotPayload, _Mapping]] = ..., marker: _Optional[_Union[MarkerPayload, _Mapping]] = ..., policy_action: _Optional[_Union[PolicyActionPayload, _Mapping]] = ...) -> None: ...
|
|
370
|
+
|
|
371
|
+
class TactilePayload(_message.Message):
|
|
372
|
+
__slots__ = ("channels",)
|
|
373
|
+
CHANNELS_FIELD_NUMBER: _ClassVar[int]
|
|
374
|
+
channels: _containers.RepeatedCompositeFieldContainer[TactileChannelSample]
|
|
375
|
+
def __init__(self, channels: _Optional[_Iterable[_Union[TactileChannelSample, _Mapping]]] = ...) -> None: ...
|
|
376
|
+
|
|
377
|
+
class TactileChannelSample(_message.Message):
|
|
378
|
+
__slots__ = ("key", "raw", "values_i16")
|
|
379
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
380
|
+
RAW_FIELD_NUMBER: _ClassVar[int]
|
|
381
|
+
VALUES_I16_FIELD_NUMBER: _ClassVar[int]
|
|
382
|
+
key: str
|
|
383
|
+
raw: bytes
|
|
384
|
+
values_i16: _containers.RepeatedScalarFieldContainer[int]
|
|
385
|
+
def __init__(self, key: _Optional[str] = ..., raw: _Optional[bytes] = ..., values_i16: _Optional[_Iterable[int]] = ...) -> None: ...
|
|
386
|
+
|
|
387
|
+
class RobotPayload(_message.Message):
|
|
388
|
+
__slots__ = ("state",)
|
|
389
|
+
class StateEntry(_message.Message):
|
|
390
|
+
__slots__ = ("key", "value")
|
|
391
|
+
KEY_FIELD_NUMBER: _ClassVar[int]
|
|
392
|
+
VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
393
|
+
key: str
|
|
394
|
+
value: RobotValue
|
|
395
|
+
def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[RobotValue, _Mapping]] = ...) -> None: ...
|
|
396
|
+
STATE_FIELD_NUMBER: _ClassVar[int]
|
|
397
|
+
state: _containers.MessageMap[str, RobotValue]
|
|
398
|
+
def __init__(self, state: _Optional[_Mapping[str, RobotValue]] = ...) -> None: ...
|
|
399
|
+
|
|
400
|
+
class RobotValue(_message.Message):
|
|
401
|
+
__slots__ = ("scalar", "array", "int_value", "bool_value", "string_value")
|
|
402
|
+
SCALAR_FIELD_NUMBER: _ClassVar[int]
|
|
403
|
+
ARRAY_FIELD_NUMBER: _ClassVar[int]
|
|
404
|
+
INT_VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
405
|
+
BOOL_VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
406
|
+
STRING_VALUE_FIELD_NUMBER: _ClassVar[int]
|
|
407
|
+
scalar: float
|
|
408
|
+
array: DoubleArray
|
|
409
|
+
int_value: int
|
|
410
|
+
bool_value: bool
|
|
411
|
+
string_value: str
|
|
412
|
+
def __init__(self, scalar: _Optional[float] = ..., array: _Optional[_Union[DoubleArray, _Mapping]] = ..., int_value: _Optional[int] = ..., bool_value: _Optional[bool] = ..., string_value: _Optional[str] = ...) -> None: ...
|
|
413
|
+
|
|
414
|
+
class DoubleArray(_message.Message):
|
|
415
|
+
__slots__ = ("values",)
|
|
416
|
+
VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
417
|
+
values: _containers.RepeatedScalarFieldContainer[float]
|
|
418
|
+
def __init__(self, values: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
419
|
+
|
|
420
|
+
class PolicyActionPayload(_message.Message):
|
|
421
|
+
__slots__ = ("actions", "input_sample_set_source_id", "input_sample_set_sequence")
|
|
422
|
+
ACTIONS_FIELD_NUMBER: _ClassVar[int]
|
|
423
|
+
INPUT_SAMPLE_SET_SOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
424
|
+
INPUT_SAMPLE_SET_SEQUENCE_FIELD_NUMBER: _ClassVar[int]
|
|
425
|
+
actions: _containers.RepeatedCompositeFieldContainer[PolicyActionVector]
|
|
426
|
+
input_sample_set_source_id: str
|
|
427
|
+
input_sample_set_sequence: int
|
|
428
|
+
def __init__(self, actions: _Optional[_Iterable[_Union[PolicyActionVector, _Mapping]]] = ..., input_sample_set_source_id: _Optional[str] = ..., input_sample_set_sequence: _Optional[int] = ...) -> None: ...
|
|
429
|
+
|
|
430
|
+
class PolicyActionVector(_message.Message):
|
|
431
|
+
__slots__ = ("values",)
|
|
432
|
+
VALUES_FIELD_NUMBER: _ClassVar[int]
|
|
433
|
+
values: _containers.RepeatedScalarFieldContainer[float]
|
|
434
|
+
def __init__(self, values: _Optional[_Iterable[float]] = ...) -> None: ...
|
|
435
|
+
|
|
436
|
+
class MarkerPayload(_message.Message):
|
|
437
|
+
__slots__ = ("label", "category")
|
|
438
|
+
LABEL_FIELD_NUMBER: _ClassVar[int]
|
|
439
|
+
CATEGORY_FIELD_NUMBER: _ClassVar[int]
|
|
440
|
+
label: str
|
|
441
|
+
category: str
|
|
442
|
+
def __init__(self, label: _Optional[str] = ..., category: _Optional[str] = ...) -> None: ...
|
|
443
|
+
|
|
444
|
+
class StreamSamplesResponse(_message.Message):
|
|
445
|
+
__slots__ = ("session_id", "accepted_samples")
|
|
446
|
+
SESSION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
447
|
+
ACCEPTED_SAMPLES_FIELD_NUMBER: _ClassVar[int]
|
|
448
|
+
session_id: str
|
|
449
|
+
accepted_samples: int
|
|
450
|
+
def __init__(self, session_id: _Optional[str] = ..., accepted_samples: _Optional[int] = ...) -> None: ...
|
|
451
|
+
|
|
452
|
+
class SubscribeRequest(_message.Message):
|
|
453
|
+
__slots__ = ("source_id", "session_id")
|
|
454
|
+
SOURCE_ID_FIELD_NUMBER: _ClassVar[int]
|
|
455
|
+
SESSION_ID_FIELD_NUMBER: _ClassVar[int]
|
|
456
|
+
source_id: str
|
|
457
|
+
session_id: str
|
|
458
|
+
def __init__(self, source_id: _Optional[str] = ..., session_id: _Optional[str] = ...) -> None: ...
|
|
459
|
+
|
|
460
|
+
class SubscribeEvent(_message.Message):
|
|
461
|
+
__slots__ = ("sample", "state")
|
|
462
|
+
SAMPLE_FIELD_NUMBER: _ClassVar[int]
|
|
463
|
+
STATE_FIELD_NUMBER: _ClassVar[int]
|
|
464
|
+
sample: Sample
|
|
465
|
+
state: StreamStateChanged
|
|
466
|
+
def __init__(self, sample: _Optional[_Union[Sample, _Mapping]] = ..., state: _Optional[_Union[StreamStateChanged, _Mapping]] = ...) -> None: ...
|