wirepod-vector-sdk-audio 0.9.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.
Files changed (71) hide show
  1. anki_vector/__init__.py +43 -0
  2. anki_vector/animation.py +272 -0
  3. anki_vector/annotate.py +590 -0
  4. anki_vector/audio.py +212 -0
  5. anki_vector/audio_stream.py +335 -0
  6. anki_vector/behavior.py +1135 -0
  7. anki_vector/camera.py +670 -0
  8. anki_vector/camera_viewer/__init__.py +121 -0
  9. anki_vector/color.py +88 -0
  10. anki_vector/configure/__main__.py +331 -0
  11. anki_vector/connection.py +838 -0
  12. anki_vector/events.py +420 -0
  13. anki_vector/exceptions.py +185 -0
  14. anki_vector/faces.py +819 -0
  15. anki_vector/lights.py +210 -0
  16. anki_vector/mdns.py +131 -0
  17. anki_vector/messaging/__init__.py +45 -0
  18. anki_vector/messaging/alexa_pb2.py +36 -0
  19. anki_vector/messaging/alexa_pb2_grpc.py +3 -0
  20. anki_vector/messaging/behavior_pb2.py +40 -0
  21. anki_vector/messaging/behavior_pb2_grpc.py +3 -0
  22. anki_vector/messaging/client.py +33 -0
  23. anki_vector/messaging/cube_pb2.py +113 -0
  24. anki_vector/messaging/cube_pb2_grpc.py +3 -0
  25. anki_vector/messaging/extensions_pb2.py +25 -0
  26. anki_vector/messaging/extensions_pb2_grpc.py +3 -0
  27. anki_vector/messaging/external_interface_pb2.py +169 -0
  28. anki_vector/messaging/external_interface_pb2_grpc.py +1267 -0
  29. anki_vector/messaging/messages_pb2.py +431 -0
  30. anki_vector/messaging/messages_pb2_grpc.py +3 -0
  31. anki_vector/messaging/nav_map_pb2.py +33 -0
  32. anki_vector/messaging/nav_map_pb2_grpc.py +3 -0
  33. anki_vector/messaging/protocol.py +33 -0
  34. anki_vector/messaging/response_status_pb2.py +27 -0
  35. anki_vector/messaging/response_status_pb2_grpc.py +3 -0
  36. anki_vector/messaging/settings_pb2.py +72 -0
  37. anki_vector/messaging/settings_pb2_grpc.py +3 -0
  38. anki_vector/messaging/shared_pb2.py +54 -0
  39. anki_vector/messaging/shared_pb2_grpc.py +3 -0
  40. anki_vector/motors.py +127 -0
  41. anki_vector/nav_map.py +409 -0
  42. anki_vector/objects.py +1782 -0
  43. anki_vector/opengl/__init__.py +103 -0
  44. anki_vector/opengl/assets/LICENSE.txt +21 -0
  45. anki_vector/opengl/assets/cube.jpg +0 -0
  46. anki_vector/opengl/assets/cube.mtl +9 -0
  47. anki_vector/opengl/assets/cube.obj +1000 -0
  48. anki_vector/opengl/assets/vector.mtl +67 -0
  49. anki_vector/opengl/assets/vector.obj +13220 -0
  50. anki_vector/opengl/opengl.py +864 -0
  51. anki_vector/opengl/opengl_vector.py +620 -0
  52. anki_vector/opengl/opengl_viewer.py +689 -0
  53. anki_vector/photos.py +145 -0
  54. anki_vector/proximity.py +176 -0
  55. anki_vector/reserve_control/__main__.py +36 -0
  56. anki_vector/robot.py +930 -0
  57. anki_vector/screen.py +201 -0
  58. anki_vector/status.py +322 -0
  59. anki_vector/touch.py +119 -0
  60. anki_vector/user_intent.py +186 -0
  61. anki_vector/util.py +1132 -0
  62. anki_vector/version.py +15 -0
  63. anki_vector/viewer.py +403 -0
  64. anki_vector/vision.py +202 -0
  65. anki_vector/world.py +899 -0
  66. wirepod_vector_sdk_audio-0.9.0.dist-info/METADATA +80 -0
  67. wirepod_vector_sdk_audio-0.9.0.dist-info/RECORD +71 -0
  68. wirepod_vector_sdk_audio-0.9.0.dist-info/WHEEL +5 -0
  69. wirepod_vector_sdk_audio-0.9.0.dist-info/licenses/LICENSE.txt +180 -0
  70. wirepod_vector_sdk_audio-0.9.0.dist-info/top_level.txt +1 -0
  71. wirepod_vector_sdk_audio-0.9.0.dist-info/zip-safe +1 -0
anki_vector/lights.py ADDED
@@ -0,0 +1,210 @@
1
+ # Copyright (c) 2018 Anki, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License in the file LICENSE.txt or at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ """Helper routines for dealing with Vector's Cube lights and colors."""
16
+
17
+ # __all__ should order by constants, event classes, other classes, functions.
18
+ __all__ = ['MAX_COLOR_PROFILE', 'WHITE_BALANCED_CUBE_PROFILE',
19
+ 'blue_light', 'cyan_light', 'green_light', 'magenta_light', 'off_light',
20
+ 'red_light', 'white_light', 'yellow_light',
21
+ 'Color', 'ColorProfile', 'Light', 'package_request_params']
22
+
23
+ from .color import Color, green, red, blue, cyan, magenta, yellow, white, off
24
+
25
+
26
+ class ColorProfile:
27
+ """Applies transforms to make Vector's Cube lights and colors appear as
28
+ intended, by limiting maximum channel intensity.
29
+
30
+ :param red_multiplier: Scaling value for the brightness of red Lights
31
+ :param green_multiplier: Scaling value for the brightness of green Lights
32
+ :param blue_multiplier: Scaling value for the brightness of blue Lights
33
+ """
34
+
35
+ def __init__(self, red_multiplier: float, green_multiplier: float, blue_multiplier: float):
36
+ self._red_multiplier = red_multiplier
37
+ self._green_multiplier = green_multiplier
38
+ self._blue_multiplier = blue_multiplier
39
+
40
+ # TODO Needs docs, param types, sample code
41
+ def augment_color(self, original_color):
42
+ rgb = [
43
+ (original_color.int_color >> 24) & 0xff,
44
+ (original_color.int_color >> 16) & 0xff,
45
+ (original_color.int_color >> 8) & 0xff
46
+ ]
47
+
48
+ rgb[0] = int(self._red_multiplier * rgb[0])
49
+ rgb[1] = int(self._green_multiplier * rgb[1])
50
+ rgb[2] = int(self._blue_multiplier * rgb[2])
51
+
52
+ result_int_code = (rgb[0] << 24) | (rgb[1] << 16) | (rgb[2] << 8) | 0xff
53
+ return Color(result_int_code)
54
+
55
+ # TODO Needs example code, more descriptive docs
56
+ @property
57
+ def red_multiplier(self):
58
+ """float: The multiplier used on the red channel."""
59
+ return self._red_multiplier
60
+
61
+ # TODO Needs example code, more descriptive docs
62
+ @property
63
+ def green_multiplier(self):
64
+ """float: The multiplier used on the red channel."""
65
+ return self._green_multiplier
66
+
67
+ # TODO Needs example code, more descriptive docs
68
+ @property
69
+ def blue_multiplier(self):
70
+ """float: The multiplier used on the red channel."""
71
+ return self._blue_multiplier
72
+
73
+
74
+ #: :class:`ColorProfile`: Color profile to get the maximum possible brightness out of each LED.
75
+ MAX_COLOR_PROFILE = ColorProfile(red_multiplier=1.0,
76
+ green_multiplier=1.0,
77
+ blue_multiplier=1.0)
78
+
79
+ #: :class:`ColorProfile`: Color profile balanced so that a max color value more closely resembles pure white.
80
+ # TODO: Balance this more carefully once robots with proper color pipe
81
+ # hardware becomes available
82
+ WHITE_BALANCED_CUBE_PROFILE = ColorProfile(red_multiplier=1.0,
83
+ green_multiplier=0.95,
84
+ blue_multiplier=0.7)
85
+
86
+
87
+ class Light:
88
+ """Lights are used with Vector's Cube.
89
+
90
+ Lights may either be "on" or "off", though in practice any colors may be
91
+ assigned to either state (including no color/light).
92
+ """
93
+
94
+ def __init__(self,
95
+ on_color: Color = off,
96
+ off_color: Color = off,
97
+ on_period_ms: int = 250,
98
+ off_period_ms: int = 0,
99
+ transition_on_period_ms: int = 0,
100
+ transition_off_period_ms: int = 0):
101
+ self._on_color = on_color
102
+ self._off_color = off_color
103
+ self._on_period_ms = on_period_ms
104
+ self._off_period_ms = off_period_ms
105
+ self._transition_on_period_ms = transition_on_period_ms
106
+ self._transition_off_period_ms = transition_off_period_ms
107
+
108
+ @property
109
+ def on_color(self) -> Color:
110
+ """The color shown when the light is on."""
111
+ return self._on_color
112
+
113
+ @on_color.setter
114
+ def on_color(self, color):
115
+ if not isinstance(color, Color):
116
+ raise TypeError("Must specify a Color")
117
+ self._on_color = color
118
+
119
+ @property
120
+ def off_color(self) -> Color:
121
+ """The color shown when the light is off."""
122
+ return self._off_color
123
+
124
+ @off_color.setter
125
+ def off_color(self, color):
126
+ if not isinstance(color, Color):
127
+ raise TypeError("Must specify a Color")
128
+ self._off_color = color
129
+
130
+ @property
131
+ def on_period_ms(self) -> int:
132
+ """The number of milliseconds the light should be "on" for for each cycle."""
133
+ return self._on_period_ms
134
+
135
+ @on_period_ms.setter
136
+ def on_period_ms(self, ms):
137
+ if not 0 < ms < 2**32:
138
+ raise ValueError("Invalid value")
139
+ self._on_period_ms = ms
140
+
141
+ @property
142
+ def off_period_ms(self) -> int:
143
+ """The number of milliseconds the light should be "off" for for each cycle."""
144
+ return self._off_period_ms
145
+
146
+ @off_period_ms.setter
147
+ def off_period_ms(self, ms):
148
+ if not 0 < ms < 2**32:
149
+ raise ValueError("Invalid value")
150
+ self._off_period_ms = ms
151
+
152
+ @property
153
+ def transition_on_period_ms(self) -> int:
154
+ """The number of milliseconds to take to transition the light to the on color."""
155
+ return self._transition_on_period_ms
156
+
157
+ @transition_on_period_ms.setter
158
+ def transition_on_period_ms(self, ms):
159
+ if not 0 < ms < 2**32:
160
+ raise ValueError("Invalid value")
161
+ self._transition_on_period_ms = ms
162
+
163
+ @property
164
+ def transition_off_period_ms(self) -> int:
165
+ """The number of milliseconds to take to transition the light to the off color."""
166
+ return self._transition_off_period_ms
167
+
168
+ @transition_off_period_ms.setter
169
+ def transition_off_period_ms(self, ms):
170
+ if not 0 < ms < 2**32:
171
+ raise ValueError("Invalid value")
172
+ self._transition_off_period_ms = ms
173
+
174
+
175
+ # TODO needs docs, param types. Should this be private? Maybe a more descriptive name?
176
+ def package_request_params(lights, color_profile):
177
+ merged_params = {}
178
+ for light in lights:
179
+ for attr_name in vars(light):
180
+ attr_name = attr_name[1:]
181
+ attr_val = getattr(light, attr_name)
182
+ if isinstance(attr_val, Color):
183
+ attr_val = color_profile.augment_color(attr_val).int_color
184
+ merged_params.setdefault(attr_name, []).append(attr_val)
185
+ return merged_params
186
+
187
+
188
+ #: :class:`Light`: A steady green colored LED light.
189
+ green_light = Light(on_color=green)
190
+
191
+ #: :class:`Light`: A steady red colored LED light.
192
+ red_light = Light(on_color=red)
193
+
194
+ #: :class:`Light`: A steady blue colored LED light.
195
+ blue_light = Light(on_color=blue)
196
+
197
+ #: :class:`Light`: A steady cyan colored LED light.
198
+ cyan_light = Light(on_color=cyan)
199
+
200
+ #: :class:`Light`: A steady magenta colored LED light.
201
+ magenta_light = Light(on_color=magenta)
202
+
203
+ #: :class:`Light`: A steady yellow colored LED light.
204
+ yellow_light = Light(on_color=yellow)
205
+
206
+ #: :class:`Light`: A steady white colored LED light.
207
+ white_light = Light(on_color=white)
208
+
209
+ #: :class:`Light`: A steady off (non-illuminated LED light).
210
+ off_light = Light(on_color=off)
anki_vector/mdns.py ADDED
@@ -0,0 +1,131 @@
1
+ # Copyright (c) 2019 Anki, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License in the file LICENSE.txt or at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ """
16
+ This contains the :class:`VectorMdns` class for discovering Vector (without already knowing
17
+ the IP address) on a LAN (Local Area Network) over mDNS.
18
+
19
+ mDNS (multicast DNS) is a protocol for sending UDP packets containing a DNS query to all
20
+ devices on your Local Area Network. If a device knows how to answer the DNS query, it
21
+ will respond by multicasting a UDP packet containing the relevant DNS records.
22
+ """
23
+ from threading import Condition
24
+ import sys
25
+
26
+
27
+ class VectorMdns: # pylint: disable=too-few-public-methods
28
+ """`VectorMdns` provides a static method for discovering a Vector on the same LAN as
29
+ the SDK program and retrieving its IP address.
30
+ """
31
+
32
+ @staticmethod
33
+ def find_vector(name: str, timeout=5):
34
+ """
35
+ :param name: A name like `"Vector-A1B2"`. If :code:`None`, will search for any Vector.
36
+ :param timeout: The discovery will timeout in :code:`timeout` seconds. Default value is :code:`5`.
37
+ :returns: **dict** or **None** -- if Vector found, **dict** contains keys `"name"` and `"ipv4"`
38
+
39
+ .. testcode::
40
+
41
+ import anki_vector
42
+ vector_mdns = anki_vector.mdns.VectorMdns.find_vector("Vector-A1B2")
43
+
44
+ if vector_mdns is not None:
45
+ print(vector_mdns['ipv4'])
46
+ else:
47
+ print("No Vector found on your local network!")
48
+ """
49
+
50
+ # synchronously search for Vector for up to 5 seconds
51
+ vector_name = name # should be like 'Vector-V3C7'
52
+ return VectorMdns._start_mdns_listener(vector_name, timeout)
53
+
54
+ @staticmethod
55
+ def _start_mdns_listener(name, timeout):
56
+ try:
57
+ from zeroconf import ServiceBrowser, Zeroconf
58
+ except ImportError:
59
+ sys.exit("Cannot import from Zeroconf: Do `pip3 install --user zeroconf` to install")
60
+
61
+ # create a Condition object and acquire the underlying lock
62
+ cond = Condition()
63
+ cond.acquire()
64
+
65
+ # instantiate zeroconf and our MdnsListner object for listening to events
66
+ zeroconf = Zeroconf()
67
+ vector_fullname = None
68
+
69
+ if name is not None:
70
+ vector_fullname = name + ".local."
71
+
72
+ listener = _MdnsListener(vector_fullname, cond)
73
+
74
+ # browse for the _ankivector TCP MDNS service, sending events to our listener
75
+ ServiceBrowser(zeroconf, "_ankivector._tcp.local.", listener)
76
+
77
+ # block until 'timeout' seconds or until we discover vector
78
+ cond.wait(timeout)
79
+
80
+ # close zeroconf
81
+ zeroconf.close()
82
+
83
+ # return an IPv4 string (or None)
84
+ if listener.ipv4 is None:
85
+ return None
86
+
87
+ return {'ipv4': listener.ipv4, 'name': listener.name}
88
+
89
+
90
+ class _MdnsListener:
91
+ """_MdnsListener is an internal helper class which listens for mDNS messages.
92
+
93
+ :param name_filter: A String to filter the mDNS responses by name (e.g., `"Vector-A1B2"`).
94
+ :param condition: A Condition object to be used for signaling to caller when robot has been discovered.
95
+ """
96
+
97
+ def __init__(self, name_filter: str, condition):
98
+ self.name_filter = name_filter
99
+ self.cond = condition
100
+ self.ipv4 = None
101
+ self.name = ""
102
+
103
+ @staticmethod
104
+ def _bytes_to_str_ipv4(ip_bytes):
105
+ return str(ip_bytes[0]) + "." + \
106
+ str(ip_bytes[1]) + "." + \
107
+ str(ip_bytes[2]) + "." + \
108
+ str(ip_bytes[3])
109
+
110
+ def remove_service(self, zeroconf, mdns_type, name):
111
+ # detect service removal
112
+ pass
113
+
114
+ def add_service(self, zeroconf, mdns_type, name):
115
+ # detect service
116
+ info = zeroconf.get_service_info(mdns_type, name)
117
+
118
+ if (self.name_filter is None) or (info.server.lower() == self.name_filter.lower()):
119
+ # found a match for our filter or there is no filter
120
+ self.cond.acquire()
121
+ self.ipv4 = _MdnsListener._bytes_to_str_ipv4(info.addresses[0]) # info.addresses[0] is IPv4 (DNS record type 'A')
122
+ self.name = info.server
123
+
124
+ # cause anything waiting for this condition to end waiting
125
+ # and release so the other thread can continue
126
+ self.cond.notify()
127
+ self.cond.release()
128
+
129
+ def update_service(self, zeroconf, mdns_type, name):
130
+ # detect service update
131
+ pass
@@ -0,0 +1,45 @@
1
+ # Copyright (c) 2018 Anki, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License in the file LICENSE.txt or at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ """
16
+ Protobuf and gRPC messages exposed to the Vector Python SDK.
17
+
18
+ .. warning::
19
+
20
+ This package is provided to understand the messages passed between the SDK and Vector,
21
+ and it should not be necessary for writing code that uses the SDK.
22
+
23
+ .. code-block::
24
+ python
25
+
26
+ from anki_vector.messaging import client, protocol
27
+
28
+ async def send_version_request(interface: client.ExternalInterfaceStub, client_version, min_host_version):
29
+ \"\"\"This function needs to be executed and awaited in the same event loop
30
+ as the interface is created.
31
+ \"\"\"
32
+ # Create a protocol version request message
33
+ version = protocol.ProtocolVersionRequest(client_version=client_version,
34
+ min_host_version=min_host_version)
35
+
36
+ # Send the protocol version to the external interface and await the result
37
+ protocol_version = await interface.ProtocolVersion(version)
38
+
39
+ For information about individual messages and their parameters, see :doc:`the protobuf documentation </proto>`.
40
+ """
41
+
42
+ from . import protocol
43
+ from . import client
44
+
45
+ __all__ = ['protocol', 'client']
@@ -0,0 +1,36 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: anki_vector/messaging/alexa.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 anki_vector.messaging import response_status_pb2 as anki__vector_dot_messaging_dot_response__status__pb2
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!anki_vector/messaging/alexa.proto\x12\x1e\x41nki.Vector.external_interface\x1a+anki_vector/messaging/response_status.proto\"\x17\n\x15\x41lexaAuthStateRequest\"\xab\x01\n\x16\x41lexaAuthStateResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x42\n\nauth_state\x18\x02 \x01(\x0e\x32..Anki.Vector.external_interface.AlexaAuthState\x12\r\n\x05\x65xtra\x18\x03 \x01(\t\"#\n\x11\x41lexaOptInRequest\x12\x0e\n\x06opt_in\x18\x01 \x01(\x08\"T\n\x12\x41lexaOptInResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"c\n\x0e\x41lexaAuthEvent\x12\x42\n\nauth_state\x18\x01 \x01(\x0e\x32..Anki.Vector.external_interface.AlexaAuthState\x12\r\n\x05\x65xtra\x18\x02 \x01(\t*\xa2\x01\n\x0e\x41lexaAuthState\x12\x16\n\x12\x41LEXA_AUTH_INVALID\x10\x00\x12\x1c\n\x18\x41LEXA_AUTH_UNINITIALIZED\x10\x01\x12\x1e\n\x1a\x41LEXA_AUTH_REQUESTING_AUTH\x10\x02\x12\x1f\n\x1b\x41LEXA_AUTH_WAITING_FOR_CODE\x10\x03\x12\x19\n\x15\x41LEXA_AUTH_AUTHORIZED\x10\x04\x62\x06proto3')
18
+
19
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
20
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'anki_vector.messaging.alexa_pb2', globals())
21
+ if _descriptor._USE_C_DESCRIPTORS == False:
22
+
23
+ DESCRIPTOR._options = None
24
+ _ALEXAAUTHSTATE._serialized_start=538
25
+ _ALEXAAUTHSTATE._serialized_end=700
26
+ _ALEXAAUTHSTATEREQUEST._serialized_start=114
27
+ _ALEXAAUTHSTATEREQUEST._serialized_end=137
28
+ _ALEXAAUTHSTATERESPONSE._serialized_start=140
29
+ _ALEXAAUTHSTATERESPONSE._serialized_end=311
30
+ _ALEXAOPTINREQUEST._serialized_start=313
31
+ _ALEXAOPTINREQUEST._serialized_end=348
32
+ _ALEXAOPTINRESPONSE._serialized_start=350
33
+ _ALEXAOPTINRESPONSE._serialized_end=434
34
+ _ALEXAAUTHEVENT._serialized_start=436
35
+ _ALEXAAUTHEVENT._serialized_end=535
36
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,3 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ import grpc
3
+
@@ -0,0 +1,40 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: anki_vector/messaging/behavior.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 anki_vector.messaging import messages_pb2 as anki__vector_dot_messaging_dot_messages__pb2
15
+
16
+
17
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n$anki_vector/messaging/behavior.proto\x12\x1e\x41nki.Vector.external_interface\x1a$anki_vector/messaging/messages.proto\"\x10\n\x0e\x43ontrolRelease\"\xae\x01\n\x0e\x43ontrolRequest\x12I\n\x08priority\x18\x01 \x01(\x0e\x32\x37.Anki.Vector.external_interface.ControlRequest.Priority\"Q\n\x08Priority\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x16\n\x12OVERRIDE_BEHAVIORS\x10\n\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x14\x12\x13\n\x0fRESERVE_CONTROL\x10\x1e\"\xbe\x01\n\x16\x42\x65haviorControlRequest\x12I\n\x0f\x63ontrol_release\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ControlReleaseH\x00\x12I\n\x0f\x63ontrol_request\x18\x02 \x01(\x0b\x32..Anki.Vector.external_interface.ControlRequestH\x00\x42\x0e\n\x0crequest_type\"\x18\n\x16\x43ontrolGrantedResponse\"\x15\n\x13\x43ontrolLostResponse\"\x1d\n\x1bReservedControlLostResponse\"\x82\x03\n\x17\x42\x65haviorControlResponse\x12Z\n\x18\x63ontrol_granted_response\x18\x01 \x01(\x0b\x32\x36.Anki.Vector.external_interface.ControlGrantedResponseH\x00\x12Q\n\x12\x63ontrol_lost_event\x18\x02 \x01(\x0b\x32\x33.Anki.Vector.external_interface.ControlLostResponseH\x00\x12\x43\n\nkeep_alive\x18\x03 \x01(\x0b\x32-.Anki.Vector.external_interface.KeepAlivePingH\x00\x12\x62\n\x1breserved_control_lost_event\x18\x04 \x01(\x0b\x32;.Anki.Vector.external_interface.ReservedControlLostResponseH\x00\x42\x0f\n\rresponse_typeb\x06proto3')
18
+
19
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
20
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'anki_vector.messaging.behavior_pb2', globals())
21
+ if _descriptor._USE_C_DESCRIPTORS == False:
22
+
23
+ DESCRIPTOR._options = None
24
+ _CONTROLRELEASE._serialized_start=110
25
+ _CONTROLRELEASE._serialized_end=126
26
+ _CONTROLREQUEST._serialized_start=129
27
+ _CONTROLREQUEST._serialized_end=303
28
+ _CONTROLREQUEST_PRIORITY._serialized_start=222
29
+ _CONTROLREQUEST_PRIORITY._serialized_end=303
30
+ _BEHAVIORCONTROLREQUEST._serialized_start=306
31
+ _BEHAVIORCONTROLREQUEST._serialized_end=496
32
+ _CONTROLGRANTEDRESPONSE._serialized_start=498
33
+ _CONTROLGRANTEDRESPONSE._serialized_end=522
34
+ _CONTROLLOSTRESPONSE._serialized_start=524
35
+ _CONTROLLOSTRESPONSE._serialized_end=545
36
+ _RESERVEDCONTROLLOSTRESPONSE._serialized_start=547
37
+ _RESERVEDCONTROLLOSTRESPONSE._serialized_end=576
38
+ _BEHAVIORCONTROLRESPONSE._serialized_start=579
39
+ _BEHAVIORCONTROLRESPONSE._serialized_end=965
40
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,3 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ import grpc
3
+
@@ -0,0 +1,33 @@
1
+ # Copyright (c) 2018 Anki, Inc.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License in the file LICENSE.txt or at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # pylint: skip-file
16
+
17
+ """
18
+ Protobuf messages exposed to the Vector Python SDK.
19
+ """
20
+ import sys
21
+ import inspect
22
+
23
+ from .alexa_pb2_grpc import *
24
+ from .behavior_pb2_grpc import *
25
+ from .cube_pb2_grpc import *
26
+ from .messages_pb2_grpc import *
27
+ from .nav_map_pb2_grpc import *
28
+ from .response_status_pb2_grpc import *
29
+ from .settings_pb2_grpc import *
30
+ from .shared_pb2_grpc import *
31
+ from .external_interface_pb2_grpc import *
32
+
33
+ __all__ = [obj.__name__ for _, obj in inspect.getmembers(sys.modules[__name__]) if inspect.isclass(obj)]
@@ -0,0 +1,113 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: anki_vector/messaging/cube.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 anki_vector.messaging import messages_pb2 as anki__vector_dot_messaging_dot_messages__pb2
15
+ from anki_vector.messaging import response_status_pb2 as anki__vector_dot_messaging_dot_response__status__pb2
16
+
17
+
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n anki_vector/messaging/cube.proto\x12\x1e\x41nki.Vector.external_interface\x1a$anki_vector/messaging/messages.proto\x1a+anki_vector/messaging/response_status.proto\"\x14\n\x12\x43onnectCubeRequest\"\x8d\x01\n\x13\x43onnectCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x11\n\tobject_id\x18\x03 \x01(\r\x12\x12\n\nfactory_id\x18\x04 \x01(\t\"\x17\n\x15\x43ubesAvailableRequest\"m\n\x16\x43ubesAvailableResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x13\n\x0b\x66\x61\x63tory_ids\x18\x02 \x03(\t\"\x17\n\x15\x44isconnectCubeRequest\"X\n\x16\x44isconnectCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\x18\n\x16\x46lashCubeLightsRequest\"Y\n\x17\x46lashCubeLightsResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\x1c\n\x1a\x46orgetPreferredCubeRequest\"]\n\x1b\x46orgetPreferredCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"-\n\x17SetPreferredCubeRequest\x12\x12\n\nfactory_id\x18\x01 \x01(\t\"Z\n\x18SetPreferredCubeResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\xb0\x03\n\x14SetCubeLightsRequest\x12\x11\n\tobject_id\x18\x01 \x01(\r\x12\x10\n\x08on_color\x18\x02 \x03(\r\x12\x11\n\toff_color\x18\x03 \x03(\r\x12\x14\n\x0con_period_ms\x18\x04 \x03(\r\x12\x15\n\roff_period_ms\x18\x05 \x03(\r\x12\x1f\n\x17transition_on_period_ms\x18\x06 \x03(\r\x12 \n\x18transition_off_period_ms\x18\x07 \x03(\r\x12\x0e\n\x06offset\x18\x08 \x03(\x05\x12\x15\n\rrelative_to_x\x18\t \x01(\x02\x12\x15\n\rrelative_to_y\x18\n \x01(\x02\x12\x0e\n\x06rotate\x18\x0b \x01(\x08\x12\\\n\rmake_relative\x18\x0c \x01(\x0e\x32\x45.Anki.Vector.external_interface.SetCubeLightsRequest.MakeRelativeMode\"D\n\x10MakeRelativeMode\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03OFF\x10\x01\x12\r\n\tBY_CORNER\x10\x02\x12\x0b\n\x07\x42Y_SIDE\x10\x03\"W\n\x15SetCubeLightsResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"%\n\x0fObjectAvailable\x12\x12\n\nfactory_id\x18\x01 \x01(\t\"\x92\x01\n\x15ObjectConnectionState\x12\x11\n\tobject_id\x18\x01 \x01(\r\x12\x12\n\nfactory_id\x18\x02 \x01(\t\x12?\n\x0bobject_type\x18\x03 \x01(\x0e\x32*.Anki.Vector.external_interface.ObjectType\x12\x11\n\tconnected\x18\x04 \x01(\x08\"3\n\x0bObjectMoved\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\";\n\x13ObjectStoppedMoving\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\"t\n\x13ObjectUpAxisChanged\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\x12\x37\n\x07up_axis\x18\x03 \x01(\x0e\x32&.Anki.Vector.external_interface.UpAxis\"4\n\x0cObjectTapped\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12\x11\n\tobject_id\x18\x02 \x01(\r\"\xf0\x02\n\x13RobotObservedObject\x12\x11\n\ttimestamp\x18\x01 \x01(\r\x12G\n\robject_family\x18\x02 \x01(\x0e\x32,.Anki.Vector.external_interface.ObjectFamilyB\x02\x18\x01\x12?\n\x0bobject_type\x18\x03 \x01(\x0e\x32*.Anki.Vector.external_interface.ObjectType\x12\x11\n\tobject_id\x18\x04 \x01(\x05\x12:\n\x08img_rect\x18\x05 \x01(\x0b\x32(.Anki.Vector.external_interface.CladRect\x12\x38\n\x04pose\x18\x06 \x01(\x0b\x32*.Anki.Vector.external_interface.PoseStruct\x12 \n\x18top_face_orientation_rad\x18\x07 \x01(\x02\x12\x11\n\tis_active\x18\x08 \x01(\r\"\x14\n\x12\x43ubeConnectionLost\"d\n\x1a\x44\x65leteCustomObjectsRequest\x12\x46\n\x04mode\x18\x01 \x01(\x0e\x32\x38.Anki.Vector.external_interface.CustomObjectDeletionMode\"]\n\x1b\x44\x65leteCustomObjectsResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\"\x93\x01\n\x1e\x43reateFixedCustomObjectRequest\x12\x38\n\x04pose\x18\x01 \x01(\x0b\x32*.Anki.Vector.external_interface.PoseStruct\x12\x11\n\tx_size_mm\x18\x02 \x01(\x02\x12\x11\n\ty_size_mm\x18\x03 \x01(\x02\x12\x11\n\tz_size_mm\x18\x04 \x01(\x02\"t\n\x1f\x43reateFixedCustomObjectResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x11\n\tobject_id\x18\x02 \x01(\r\"\xba\x04\n\x13\x43ustomBoxDefinition\x12H\n\x0cmarker_front\x18\x01 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12G\n\x0bmarker_back\x18\x02 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x46\n\nmarker_top\x18\x03 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12I\n\rmarker_bottom\x18\x04 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12G\n\x0bmarker_left\x18\x05 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12H\n\x0cmarker_right\x18\x06 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x11\n\tx_size_mm\x18\x07 \x01(\x02\x12\x11\n\ty_size_mm\x18\x08 \x01(\x02\x12\x11\n\tz_size_mm\x18\t \x01(\x02\x12\x17\n\x0fmarker_width_mm\x18\n \x01(\x02\x12\x18\n\x10marker_height_mm\x18\x0b \x01(\x02\"\x9e\x01\n\x14\x43ustomCubeDefinition\x12\x42\n\x06marker\x18\x01 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x0f\n\x07size_mm\x18\x02 \x01(\x02\x12\x17\n\x0fmarker_width_mm\x18\x03 \x01(\x02\x12\x18\n\x10marker_height_mm\x18\x04 \x01(\x02\"\xb2\x01\n\x14\x43ustomWallDefinition\x12\x42\n\x06marker\x18\x01 \x01(\x0e\x32\x32.Anki.Vector.external_interface.CustomObjectMarker\x12\x10\n\x08width_mm\x18\x02 \x01(\x02\x12\x11\n\theight_mm\x18\x03 \x01(\x02\x12\x17\n\x0fmarker_width_mm\x18\x04 \x01(\x02\x12\x18\n\x10marker_height_mm\x18\x05 \x01(\x02\"\xf0\x02\n\x19\x44\x65\x66ineCustomObjectRequest\x12?\n\x0b\x63ustom_type\x18\x01 \x01(\x0e\x32*.Anki.Vector.external_interface.CustomType\x12\x11\n\tis_unique\x18\x02 \x01(\x08\x12I\n\ncustom_box\x18\x03 \x01(\x0b\x32\x33.Anki.Vector.external_interface.CustomBoxDefinitionH\x00\x12K\n\x0b\x63ustom_cube\x18\x04 \x01(\x0b\x32\x34.Anki.Vector.external_interface.CustomCubeDefinitionH\x00\x12K\n\x0b\x63ustom_wall\x18\x05 \x01(\x0b\x32\x34.Anki.Vector.external_interface.CustomWallDefinitionH\x00\x42\x1a\n\x18\x63ustom_object_definition\"m\n\x1a\x44\x65\x66ineCustomObjectResponse\x12>\n\x06status\x18\x01 \x01(\x0b\x32..Anki.Vector.external_interface.ResponseStatus\x12\x0f\n\x07success\x18\x02 \x01(\x08\"\xac\x05\n\x0bObjectEvent\x12K\n\x10object_available\x18\x01 \x01(\x0b\x32/.Anki.Vector.external_interface.ObjectAvailableH\x00\x12X\n\x17object_connection_state\x18\x02 \x01(\x0b\x32\x35.Anki.Vector.external_interface.ObjectConnectionStateH\x00\x12\x43\n\x0cobject_moved\x18\x03 \x01(\x0b\x32+.Anki.Vector.external_interface.ObjectMovedH\x00\x12T\n\x15object_stopped_moving\x18\x04 \x01(\x0b\x32\x33.Anki.Vector.external_interface.ObjectStoppedMovingH\x00\x12U\n\x16object_up_axis_changed\x18\x05 \x01(\x0b\x32\x33.Anki.Vector.external_interface.ObjectUpAxisChangedH\x00\x12\x45\n\robject_tapped\x18\x06 \x01(\x0b\x32,.Anki.Vector.external_interface.ObjectTappedH\x00\x12T\n\x15robot_observed_object\x18\x07 \x01(\x0b\x32\x33.Anki.Vector.external_interface.RobotObservedObjectH\x00\x12R\n\x14\x63ube_connection_lost\x18\x08 \x01(\x0b\x32\x32.Anki.Vector.external_interface.CubeConnectionLostH\x00\x42\x13\n\x11object_event_type*{\n\nObjectType\x12\x12\n\x0eINVALID_OBJECT\x10\x00\x12\x12\n\x0eUNKNOWN_OBJECT\x10\x01\x12\x14\n\x10\x42LOCK_LIGHTCUBE1\x10\x02\x12\x11\n\rCHARGER_BASIC\x10\x06\x12\x1c\n\x18\x46IRST_CUSTOM_OBJECT_TYPE\x10\x0f*\xd0\x03\n\nCustomType\x12\x17\n\x13INVALID_CUSTOM_TYPE\x10\x00\x12\x12\n\x0e\x43USTOM_TYPE_00\x10\x01\x12\x12\n\x0e\x43USTOM_TYPE_01\x10\x02\x12\x12\n\x0e\x43USTOM_TYPE_02\x10\x03\x12\x12\n\x0e\x43USTOM_TYPE_03\x10\x04\x12\x12\n\x0e\x43USTOM_TYPE_04\x10\x05\x12\x12\n\x0e\x43USTOM_TYPE_05\x10\x06\x12\x12\n\x0e\x43USTOM_TYPE_06\x10\x07\x12\x12\n\x0e\x43USTOM_TYPE_07\x10\x08\x12\x12\n\x0e\x43USTOM_TYPE_08\x10\t\x12\x12\n\x0e\x43USTOM_TYPE_09\x10\n\x12\x12\n\x0e\x43USTOM_TYPE_10\x10\x0b\x12\x12\n\x0e\x43USTOM_TYPE_11\x10\x0c\x12\x12\n\x0e\x43USTOM_TYPE_12\x10\r\x12\x12\n\x0e\x43USTOM_TYPE_13\x10\x0e\x12\x12\n\x0e\x43USTOM_TYPE_14\x10\x0f\x12\x12\n\x0e\x43USTOM_TYPE_15\x10\x10\x12\x12\n\x0e\x43USTOM_TYPE_16\x10\x11\x12\x12\n\x0e\x43USTOM_TYPE_17\x10\x12\x12\x12\n\x0e\x43USTOM_TYPE_18\x10\x13\x12\x12\n\x0e\x43USTOM_TYPE_19\x10\x14\x12\x15\n\x11\x43USTOM_TYPE_COUNT\x10\x14\x1a\x02\x10\x01*\x8e\x01\n\x0cObjectFamily\x12\x12\n\x0eINVALID_FAMILY\x10\x00\x12\x12\n\x0eUNKNOWN_FAMILY\x10\x01\x12\t\n\x05\x42LOCK\x10\x02\x12\x0e\n\nLIGHT_CUBE\x10\x03\x12\x0b\n\x07\x43HARGER\x10\x04\x12\x11\n\rCUSTOM_OBJECT\x10\x07\x12\x17\n\x13OBJECT_FAMILY_COUNT\x10\x07\x1a\x02\x10\x01*\x88\x01\n\x06UpAxis\x12\x10\n\x0cINVALID_AXIS\x10\x00\x12\x0e\n\nX_NEGATIVE\x10\x01\x12\x0e\n\nX_POSITIVE\x10\x02\x12\x0e\n\nY_NEGATIVE\x10\x03\x12\x0e\n\nY_POSITIVE\x10\x04\x12\x0e\n\nZ_NEGATIVE\x10\x05\x12\x0e\n\nZ_POSITIVE\x10\x06\x12\x0c\n\x08NUM_AXES\x10\x07*P\n\x0fObjectConstants\x12\x19\n\x15OBJECT_CONSTANTS_NULL\x10\x00\x12\"\n\x1e\x46IXED_CUSTOM_WALL_THICKNESS_MM\x10\n*\xac\x04\n\x12\x43ustomObjectMarker\x12\x19\n\x15\x43USTOM_MARKER_UNKNOWN\x10\x00\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_2\x10\x01\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_3\x10\x02\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_4\x10\x03\x12\x1b\n\x17\x43USTOM_MARKER_CIRCLES_5\x10\x04\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_2\x10\x05\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_3\x10\x06\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_4\x10\x07\x12\x1c\n\x18\x43USTOM_MARKER_DIAMONDS_5\x10\x08\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_2\x10\t\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_3\x10\n\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_4\x10\x0b\x12\x1c\n\x18\x43USTOM_MARKER_HEXAGONS_5\x10\x0c\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_2\x10\r\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_3\x10\x0e\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_4\x10\x0f\x12\x1d\n\x19\x43USTOM_MARKER_TRIANGLES_5\x10\x10\x12\x17\n\x13\x43USTOM_MARKER_COUNT\x10\x10\x1a\x02\x10\x01*\xa4\x01\n\x18\x43ustomObjectDeletionMode\x12\x19\n\x15\x44\x45LETION_MASK_UNKNOWN\x10\x00\x12&\n\"DELETION_MASK_FIXED_CUSTOM_OBJECTS\x10\x01\x12\'\n#DELETION_MASK_CUSTOM_MARKER_OBJECTS\x10\x02\x12\x1c\n\x18\x44\x45LETION_MASK_ARCHETYPES\x10\x03\x62\x06proto3')
19
+
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'anki_vector.messaging.cube_pb2', globals())
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+
24
+ DESCRIPTOR._options = None
25
+ _CUSTOMTYPE._options = None
26
+ _CUSTOMTYPE._serialized_options = b'\020\001'
27
+ _OBJECTFAMILY._options = None
28
+ _OBJECTFAMILY._serialized_options = b'\020\001'
29
+ _CUSTOMOBJECTMARKER._options = None
30
+ _CUSTOMOBJECTMARKER._serialized_options = b'\020\001'
31
+ _ROBOTOBSERVEDOBJECT.fields_by_name['object_family']._options = None
32
+ _ROBOTOBSERVEDOBJECT.fields_by_name['object_family']._serialized_options = b'\030\001'
33
+ _OBJECTTYPE._serialized_start=4889
34
+ _OBJECTTYPE._serialized_end=5012
35
+ _CUSTOMTYPE._serialized_start=5015
36
+ _CUSTOMTYPE._serialized_end=5479
37
+ _OBJECTFAMILY._serialized_start=5482
38
+ _OBJECTFAMILY._serialized_end=5624
39
+ _UPAXIS._serialized_start=5627
40
+ _UPAXIS._serialized_end=5763
41
+ _OBJECTCONSTANTS._serialized_start=5765
42
+ _OBJECTCONSTANTS._serialized_end=5845
43
+ _CUSTOMOBJECTMARKER._serialized_start=5848
44
+ _CUSTOMOBJECTMARKER._serialized_end=6404
45
+ _CUSTOMOBJECTDELETIONMODE._serialized_start=6407
46
+ _CUSTOMOBJECTDELETIONMODE._serialized_end=6571
47
+ _CONNECTCUBEREQUEST._serialized_start=151
48
+ _CONNECTCUBEREQUEST._serialized_end=171
49
+ _CONNECTCUBERESPONSE._serialized_start=174
50
+ _CONNECTCUBERESPONSE._serialized_end=315
51
+ _CUBESAVAILABLEREQUEST._serialized_start=317
52
+ _CUBESAVAILABLEREQUEST._serialized_end=340
53
+ _CUBESAVAILABLERESPONSE._serialized_start=342
54
+ _CUBESAVAILABLERESPONSE._serialized_end=451
55
+ _DISCONNECTCUBEREQUEST._serialized_start=453
56
+ _DISCONNECTCUBEREQUEST._serialized_end=476
57
+ _DISCONNECTCUBERESPONSE._serialized_start=478
58
+ _DISCONNECTCUBERESPONSE._serialized_end=566
59
+ _FLASHCUBELIGHTSREQUEST._serialized_start=568
60
+ _FLASHCUBELIGHTSREQUEST._serialized_end=592
61
+ _FLASHCUBELIGHTSRESPONSE._serialized_start=594
62
+ _FLASHCUBELIGHTSRESPONSE._serialized_end=683
63
+ _FORGETPREFERREDCUBEREQUEST._serialized_start=685
64
+ _FORGETPREFERREDCUBEREQUEST._serialized_end=713
65
+ _FORGETPREFERREDCUBERESPONSE._serialized_start=715
66
+ _FORGETPREFERREDCUBERESPONSE._serialized_end=808
67
+ _SETPREFERREDCUBEREQUEST._serialized_start=810
68
+ _SETPREFERREDCUBEREQUEST._serialized_end=855
69
+ _SETPREFERREDCUBERESPONSE._serialized_start=857
70
+ _SETPREFERREDCUBERESPONSE._serialized_end=947
71
+ _SETCUBELIGHTSREQUEST._serialized_start=950
72
+ _SETCUBELIGHTSREQUEST._serialized_end=1382
73
+ _SETCUBELIGHTSREQUEST_MAKERELATIVEMODE._serialized_start=1314
74
+ _SETCUBELIGHTSREQUEST_MAKERELATIVEMODE._serialized_end=1382
75
+ _SETCUBELIGHTSRESPONSE._serialized_start=1384
76
+ _SETCUBELIGHTSRESPONSE._serialized_end=1471
77
+ _OBJECTAVAILABLE._serialized_start=1473
78
+ _OBJECTAVAILABLE._serialized_end=1510
79
+ _OBJECTCONNECTIONSTATE._serialized_start=1513
80
+ _OBJECTCONNECTIONSTATE._serialized_end=1659
81
+ _OBJECTMOVED._serialized_start=1661
82
+ _OBJECTMOVED._serialized_end=1712
83
+ _OBJECTSTOPPEDMOVING._serialized_start=1714
84
+ _OBJECTSTOPPEDMOVING._serialized_end=1773
85
+ _OBJECTUPAXISCHANGED._serialized_start=1775
86
+ _OBJECTUPAXISCHANGED._serialized_end=1891
87
+ _OBJECTTAPPED._serialized_start=1893
88
+ _OBJECTTAPPED._serialized_end=1945
89
+ _ROBOTOBSERVEDOBJECT._serialized_start=1948
90
+ _ROBOTOBSERVEDOBJECT._serialized_end=2316
91
+ _CUBECONNECTIONLOST._serialized_start=2318
92
+ _CUBECONNECTIONLOST._serialized_end=2338
93
+ _DELETECUSTOMOBJECTSREQUEST._serialized_start=2340
94
+ _DELETECUSTOMOBJECTSREQUEST._serialized_end=2440
95
+ _DELETECUSTOMOBJECTSRESPONSE._serialized_start=2442
96
+ _DELETECUSTOMOBJECTSRESPONSE._serialized_end=2535
97
+ _CREATEFIXEDCUSTOMOBJECTREQUEST._serialized_start=2538
98
+ _CREATEFIXEDCUSTOMOBJECTREQUEST._serialized_end=2685
99
+ _CREATEFIXEDCUSTOMOBJECTRESPONSE._serialized_start=2687
100
+ _CREATEFIXEDCUSTOMOBJECTRESPONSE._serialized_end=2803
101
+ _CUSTOMBOXDEFINITION._serialized_start=2806
102
+ _CUSTOMBOXDEFINITION._serialized_end=3376
103
+ _CUSTOMCUBEDEFINITION._serialized_start=3379
104
+ _CUSTOMCUBEDEFINITION._serialized_end=3537
105
+ _CUSTOMWALLDEFINITION._serialized_start=3540
106
+ _CUSTOMWALLDEFINITION._serialized_end=3718
107
+ _DEFINECUSTOMOBJECTREQUEST._serialized_start=3721
108
+ _DEFINECUSTOMOBJECTREQUEST._serialized_end=4089
109
+ _DEFINECUSTOMOBJECTRESPONSE._serialized_start=4091
110
+ _DEFINECUSTOMOBJECTRESPONSE._serialized_end=4200
111
+ _OBJECTEVENT._serialized_start=4203
112
+ _OBJECTEVENT._serialized_end=4887
113
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,3 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ import grpc
3
+