├── .gitignore ├── LICENSE.txt ├── README.md ├── examples └── basic_example.py ├── requirements.txt ├── setup.py └── sslclient ├── __init__.py ├── messages_robocup_ssl_detection_pb2.py ├── messages_robocup_ssl_geometry_legacy_pb2.py ├── messages_robocup_ssl_geometry_pb2.py ├── messages_robocup_ssl_refbox_log_pb2.py ├── messages_robocup_ssl_wrapper_legacy_pb2.py ├── messages_robocup_ssl_wrapper_pb2.py └── sslclient.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .coverage.* 42 | .cache 43 | nosetests.xml 44 | coverage.xml 45 | *,cover 46 | 47 | # Translations 48 | *.mo 49 | *.pot 50 | 51 | # Django stuff: 52 | *.log 53 | 54 | # Sphinx documentation 55 | docs/_build/ 56 | 57 | # PyBuilder 58 | target/ 59 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2018 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Python SSL Vision Client 2 | 3 | [![PyPI version](https://badge.fury.io/py/sslclient.svg)](https://badge.fury.io/py/sslclient) 4 | [![pypi supported versions](https://img.shields.io/pypi/pyversions/sslclient.svg)](https://pypi.python.org/pypi/sslclient) 5 | 6 | Python client for [SSL Vision](https://github.com/RoboCup-SSL/ssl-vision) 7 | 8 | 9 | 10 | ## Installation 11 | 12 | 13 | From source: 14 | 15 | ``` 16 | git clone --recursive https://github.com/Juniorlimaivd/python-ssl-client.git 17 | cd python-ssl-client 18 | python setup.py install 19 | ``` 20 | 21 | From [PyPi](https://pypi.python.org/pypi/sslclient/) directly: 22 | 23 | ``` 24 | pip install sslclient 25 | ``` 26 | 27 | ## Example 28 | 29 | ```Python 30 | import sslclient 31 | 32 | c = sslclient.client(ip='255.255.255.255', port=1234) 33 | 34 | # Bind connection to port and IP for UDP Multicast 35 | c.connect() 36 | 37 | while True: 38 | #received decoded package 39 | data = c.receive() 40 | 41 | if data.HasField('geometry'): 42 | print(data.geometry) 43 | 44 | if data.HasField('detection'): 45 | print(data.detection) 46 | ``` 47 | 48 | The data packet may have detection or geometry data. Consult SSL Vision Docs to know when you will receive each type of package. 49 | 50 | The formats of the geometry and detection data are de followings: 51 | 52 | 53 | ### `Detection Example` 54 | 55 | 56 | ```json 57 | { 58 | "detection": { 59 | "frame_number": 377308, 60 | "t_capture": 13977.820277, 61 | "t_sent": 1505683703.172275, 62 | "camera_id": 1, 63 | "balls": [ 64 | { 65 | "confidence": 0.930344820022583, 66 | "area": 78, 67 | "x": -14.979391098022461, 68 | "y": -12.432811737060547, 69 | "z": 0, 70 | "pixel_x": 276.5769348144531, 71 | "pixel_y": 225.73077392578125 72 | } 73 | "{... other balls ...}" 74 | ], 75 | "robots_yellow": [ 76 | { 77 | "confidence": 0.930344820022583, 78 | "area": 78, 79 | "x": -14.979391098022461, 80 | "y": -12.432811737060547, 81 | "z": 0, 82 | "pixel_x": 276.5769348144531, 83 | "pixel_y": 225.73077392578125 84 | } 85 | "{... other yellow robots ...}" 86 | ], 87 | "robots_blue": [ 88 | { 89 | "confidence": 0.930344820022583, 90 | "area": 78, 91 | "x": -14.979391098022461, 92 | "y": -12.432811737060547, 93 | "z": 0, 94 | "pixel_x": 276.5769348144531, 95 | "pixel_y": 225.73077392578125 96 | } 97 | "{... other blue robots ...}" 98 | ] 99 | } 100 | } 101 | ``` 102 | 103 | 104 | ### `Geometry Example` 105 | 106 | ```json 107 | { 108 | "field": { 109 | "field_length": 1500, 110 | "field_width": 1300, 111 | "goal_width": 100, 112 | "goal_depth": 40, 113 | "boundary_width": 3, 114 | "field_lines": [ 115 | { 116 | "name": "TopTouchLine", 117 | "p1": { 118 | "x": -750, 119 | "y": 650 120 | }, 121 | "p2": { 122 | "x": 750, 123 | "y": 650 124 | }, 125 | "thickness": 10 126 | }, 127 | "{... other field lines ...}" 128 | ], 129 | "field_arcs": [ 130 | { 131 | "name": "CenterCircle", 132 | "center": { 133 | "x": 0, 134 | "y": 0 135 | }, 136 | "radius": 150, 137 | "a1": 10, 138 | "a2": 0, 139 | "thickness": 10 140 | }, 141 | "{... other field arcs ...}" 142 | ] 143 | }, 144 | "calib": [ 145 | { 146 | "camera_id": 0, 147 | "focal_length": 2.1379730701446533, 148 | "principal_point_x": 390, 149 | "principal_point_y": 290, 150 | "distortion": 0, 151 | "q0": -0.0780009999871254, 152 | "q1": -0.9969499707221985, 153 | "q2": 0.0014819999923929572, 154 | "q3": 0.0017130000051110983, 155 | "tx": -621141.125, 156 | "ty": -459652.8125, 157 | "tz": 3500, 158 | "derived_camera_world_tx": -542101.5625, 159 | "derived_camera_world_ty": 550669.6875, 160 | "derived_camera_world_tz": -0.6016282439231873 161 | }, 162 | "{... other cameras ...}" 163 | ] 164 | } 165 | ``` -------------------------------------------------------------------------------- /examples/basic_example.py: -------------------------------------------------------------------------------- 1 | import sslclient 2 | 3 | def main(): 4 | c = sslclient.client() 5 | 6 | c.connect() 7 | 8 | while True: 9 | pkg = c.receive() 10 | print pkg 11 | 12 | if __name__ == '__main__': 13 | main() 14 | 15 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | protobuf 2 | wheel -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | CLIENT_VERSION = "1.1.2" 4 | PACKAGE_NAME = "sslclient" 5 | 6 | with open("README.md", "r") as fh: 7 | long_description = fh.read() 8 | 9 | EXTRAS = {} 10 | REQUIRES = [] 11 | 12 | with open('requirements.txt') as f: 13 | for line in f: 14 | line, _, _ = line.partition('#') 15 | line = line.strip() 16 | if ';' in line: 17 | requirement, _, specifier = line.partition(';') 18 | for_specifier = EXTRAS.setdefault(':{}'.format(specifier), []) 19 | for_specifier.append(requirement) 20 | else: 21 | REQUIRES.append(line) 22 | 23 | setuptools.setup( 24 | name="sslclient", 25 | version="1.1.2", 26 | author="Junior Lima", 27 | author_email="junior.lima.ivd.2@gmail.com", 28 | description="SSLVision client API in python", 29 | long_description=long_description, 30 | long_description_content_type="text/markdown", 31 | url="https://github.com/juniorlimaivd/python-ssl-vision", 32 | packages=setuptools.find_packages(exclude=('tests', 'examples')), 33 | install_requires=REQUIRES, 34 | classifiers=[ 35 | "Programming Language :: Python", 36 | "Programming Language :: Python :: 2", 37 | "Programming Language :: Python :: 2.7", 38 | "License :: OSI Approved :: MIT License", 39 | "Operating System :: OS Independent", 40 | ], 41 | ) 42 | 43 | -------------------------------------------------------------------------------- /sslclient/__init__.py: -------------------------------------------------------------------------------- 1 | __project__ = 'sslclient' 2 | 3 | __version__ = "0.0.1" 4 | 5 | from .sslclient import SSLClient as client 6 | 7 | -------------------------------------------------------------------------------- /sslclient/messages_robocup_ssl_detection_pb2.py: -------------------------------------------------------------------------------- 1 | # Generated by the protocol buffer compiler. DO NOT EDIT! 2 | # source: messages_robocup_ssl_detection.proto 3 | 4 | import sys 5 | _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | from google.protobuf import descriptor_pb2 11 | # @@protoc_insertion_point(imports) 12 | 13 | _sym_db = _symbol_database.Default() 14 | 15 | 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='messages_robocup_ssl_detection.proto', 20 | package='', 21 | serialized_pb=_b('\n$messages_robocup_ssl_detection.proto\"x\n\x11SSL_DetectionBall\x12\x12\n\nconfidence\x18\x01 \x02(\x02\x12\x0c\n\x04\x61rea\x18\x02 \x01(\r\x12\t\n\x01x\x18\x03 \x02(\x02\x12\t\n\x01y\x18\x04 \x02(\x02\x12\t\n\x01z\x18\x05 \x01(\x02\x12\x0f\n\x07pixel_x\x18\x06 \x02(\x02\x12\x0f\n\x07pixel_y\x18\x07 \x02(\x02\"\x97\x01\n\x12SSL_DetectionRobot\x12\x12\n\nconfidence\x18\x01 \x02(\x02\x12\x10\n\x08robot_id\x18\x02 \x01(\r\x12\t\n\x01x\x18\x03 \x02(\x02\x12\t\n\x01y\x18\x04 \x02(\x02\x12\x13\n\x0borientation\x18\x05 \x01(\x02\x12\x0f\n\x07pixel_x\x18\x06 \x02(\x02\x12\x0f\n\x07pixel_y\x18\x07 \x02(\x02\x12\x0e\n\x06height\x18\x08 \x01(\x02\"\xd9\x01\n\x12SSL_DetectionFrame\x12\x14\n\x0c\x66rame_number\x18\x01 \x02(\r\x12\x11\n\tt_capture\x18\x02 \x02(\x01\x12\x0e\n\x06t_sent\x18\x03 \x02(\x01\x12\x11\n\tcamera_id\x18\x04 \x02(\r\x12!\n\x05\x62\x61lls\x18\x05 \x03(\x0b\x32\x12.SSL_DetectionBall\x12*\n\rrobots_yellow\x18\x06 \x03(\x0b\x32\x13.SSL_DetectionRobot\x12(\n\x0brobots_blue\x18\x07 \x03(\x0b\x32\x13.SSL_DetectionRobot') 22 | ) 23 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 24 | 25 | 26 | 27 | 28 | _SSL_DETECTIONBALL = _descriptor.Descriptor( 29 | name='SSL_DetectionBall', 30 | full_name='SSL_DetectionBall', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | fields=[ 35 | _descriptor.FieldDescriptor( 36 | name='confidence', full_name='SSL_DetectionBall.confidence', index=0, 37 | number=1, type=2, cpp_type=6, label=2, 38 | has_default_value=False, default_value=0, 39 | message_type=None, enum_type=None, containing_type=None, 40 | is_extension=False, extension_scope=None, 41 | options=None), 42 | _descriptor.FieldDescriptor( 43 | name='area', full_name='SSL_DetectionBall.area', index=1, 44 | number=2, type=13, cpp_type=3, label=1, 45 | has_default_value=False, default_value=0, 46 | message_type=None, enum_type=None, containing_type=None, 47 | is_extension=False, extension_scope=None, 48 | options=None), 49 | _descriptor.FieldDescriptor( 50 | name='x', full_name='SSL_DetectionBall.x', index=2, 51 | number=3, type=2, cpp_type=6, label=2, 52 | has_default_value=False, default_value=0, 53 | message_type=None, enum_type=None, containing_type=None, 54 | is_extension=False, extension_scope=None, 55 | options=None), 56 | _descriptor.FieldDescriptor( 57 | name='y', full_name='SSL_DetectionBall.y', index=3, 58 | number=4, type=2, cpp_type=6, label=2, 59 | has_default_value=False, default_value=0, 60 | message_type=None, enum_type=None, containing_type=None, 61 | is_extension=False, extension_scope=None, 62 | options=None), 63 | _descriptor.FieldDescriptor( 64 | name='z', full_name='SSL_DetectionBall.z', index=4, 65 | number=5, type=2, cpp_type=6, label=1, 66 | has_default_value=False, default_value=0, 67 | message_type=None, enum_type=None, containing_type=None, 68 | is_extension=False, extension_scope=None, 69 | options=None), 70 | _descriptor.FieldDescriptor( 71 | name='pixel_x', full_name='SSL_DetectionBall.pixel_x', index=5, 72 | number=6, type=2, cpp_type=6, label=2, 73 | has_default_value=False, default_value=0, 74 | message_type=None, enum_type=None, containing_type=None, 75 | is_extension=False, extension_scope=None, 76 | options=None), 77 | _descriptor.FieldDescriptor( 78 | name='pixel_y', full_name='SSL_DetectionBall.pixel_y', index=6, 79 | number=7, type=2, cpp_type=6, label=2, 80 | has_default_value=False, default_value=0, 81 | message_type=None, enum_type=None, containing_type=None, 82 | is_extension=False, extension_scope=None, 83 | options=None), 84 | ], 85 | extensions=[ 86 | ], 87 | nested_types=[], 88 | enum_types=[ 89 | ], 90 | options=None, 91 | is_extendable=False, 92 | extension_ranges=[], 93 | oneofs=[ 94 | ], 95 | serialized_start=40, 96 | serialized_end=160, 97 | ) 98 | 99 | 100 | _SSL_DETECTIONROBOT = _descriptor.Descriptor( 101 | name='SSL_DetectionRobot', 102 | full_name='SSL_DetectionRobot', 103 | filename=None, 104 | file=DESCRIPTOR, 105 | containing_type=None, 106 | fields=[ 107 | _descriptor.FieldDescriptor( 108 | name='confidence', full_name='SSL_DetectionRobot.confidence', index=0, 109 | number=1, type=2, cpp_type=6, label=2, 110 | has_default_value=False, default_value=0, 111 | message_type=None, enum_type=None, containing_type=None, 112 | is_extension=False, extension_scope=None, 113 | options=None), 114 | _descriptor.FieldDescriptor( 115 | name='robot_id', full_name='SSL_DetectionRobot.robot_id', index=1, 116 | number=2, type=13, cpp_type=3, label=1, 117 | has_default_value=False, default_value=0, 118 | message_type=None, enum_type=None, containing_type=None, 119 | is_extension=False, extension_scope=None, 120 | options=None), 121 | _descriptor.FieldDescriptor( 122 | name='x', full_name='SSL_DetectionRobot.x', index=2, 123 | number=3, type=2, cpp_type=6, label=2, 124 | has_default_value=False, default_value=0, 125 | message_type=None, enum_type=None, containing_type=None, 126 | is_extension=False, extension_scope=None, 127 | options=None), 128 | _descriptor.FieldDescriptor( 129 | name='y', full_name='SSL_DetectionRobot.y', index=3, 130 | number=4, type=2, cpp_type=6, label=2, 131 | has_default_value=False, default_value=0, 132 | message_type=None, enum_type=None, containing_type=None, 133 | is_extension=False, extension_scope=None, 134 | options=None), 135 | _descriptor.FieldDescriptor( 136 | name='orientation', full_name='SSL_DetectionRobot.orientation', index=4, 137 | number=5, type=2, cpp_type=6, label=1, 138 | has_default_value=False, default_value=0, 139 | message_type=None, enum_type=None, containing_type=None, 140 | is_extension=False, extension_scope=None, 141 | options=None), 142 | _descriptor.FieldDescriptor( 143 | name='pixel_x', full_name='SSL_DetectionRobot.pixel_x', index=5, 144 | number=6, type=2, cpp_type=6, label=2, 145 | has_default_value=False, default_value=0, 146 | message_type=None, enum_type=None, containing_type=None, 147 | is_extension=False, extension_scope=None, 148 | options=None), 149 | _descriptor.FieldDescriptor( 150 | name='pixel_y', full_name='SSL_DetectionRobot.pixel_y', index=6, 151 | number=7, type=2, cpp_type=6, label=2, 152 | has_default_value=False, default_value=0, 153 | message_type=None, enum_type=None, containing_type=None, 154 | is_extension=False, extension_scope=None, 155 | options=None), 156 | _descriptor.FieldDescriptor( 157 | name='height', full_name='SSL_DetectionRobot.height', index=7, 158 | number=8, type=2, cpp_type=6, label=1, 159 | has_default_value=False, default_value=0, 160 | message_type=None, enum_type=None, containing_type=None, 161 | is_extension=False, extension_scope=None, 162 | options=None), 163 | ], 164 | extensions=[ 165 | ], 166 | nested_types=[], 167 | enum_types=[ 168 | ], 169 | options=None, 170 | is_extendable=False, 171 | extension_ranges=[], 172 | oneofs=[ 173 | ], 174 | serialized_start=163, 175 | serialized_end=314, 176 | ) 177 | 178 | 179 | _SSL_DETECTIONFRAME = _descriptor.Descriptor( 180 | name='SSL_DetectionFrame', 181 | full_name='SSL_DetectionFrame', 182 | filename=None, 183 | file=DESCRIPTOR, 184 | containing_type=None, 185 | fields=[ 186 | _descriptor.FieldDescriptor( 187 | name='frame_number', full_name='SSL_DetectionFrame.frame_number', index=0, 188 | number=1, type=13, cpp_type=3, label=2, 189 | has_default_value=False, default_value=0, 190 | message_type=None, enum_type=None, containing_type=None, 191 | is_extension=False, extension_scope=None, 192 | options=None), 193 | _descriptor.FieldDescriptor( 194 | name='t_capture', full_name='SSL_DetectionFrame.t_capture', index=1, 195 | number=2, type=1, cpp_type=5, label=2, 196 | has_default_value=False, default_value=0, 197 | message_type=None, enum_type=None, containing_type=None, 198 | is_extension=False, extension_scope=None, 199 | options=None), 200 | _descriptor.FieldDescriptor( 201 | name='t_sent', full_name='SSL_DetectionFrame.t_sent', index=2, 202 | number=3, type=1, cpp_type=5, label=2, 203 | has_default_value=False, default_value=0, 204 | message_type=None, enum_type=None, containing_type=None, 205 | is_extension=False, extension_scope=None, 206 | options=None), 207 | _descriptor.FieldDescriptor( 208 | name='camera_id', full_name='SSL_DetectionFrame.camera_id', index=3, 209 | number=4, type=13, cpp_type=3, label=2, 210 | has_default_value=False, default_value=0, 211 | message_type=None, enum_type=None, containing_type=None, 212 | is_extension=False, extension_scope=None, 213 | options=None), 214 | _descriptor.FieldDescriptor( 215 | name='balls', full_name='SSL_DetectionFrame.balls', index=4, 216 | number=5, type=11, cpp_type=10, label=3, 217 | has_default_value=False, default_value=[], 218 | message_type=None, enum_type=None, containing_type=None, 219 | is_extension=False, extension_scope=None, 220 | options=None), 221 | _descriptor.FieldDescriptor( 222 | name='robots_yellow', full_name='SSL_DetectionFrame.robots_yellow', index=5, 223 | number=6, type=11, cpp_type=10, label=3, 224 | has_default_value=False, default_value=[], 225 | message_type=None, enum_type=None, containing_type=None, 226 | is_extension=False, extension_scope=None, 227 | options=None), 228 | _descriptor.FieldDescriptor( 229 | name='robots_blue', full_name='SSL_DetectionFrame.robots_blue', index=6, 230 | number=7, type=11, cpp_type=10, label=3, 231 | has_default_value=False, default_value=[], 232 | message_type=None, enum_type=None, containing_type=None, 233 | is_extension=False, extension_scope=None, 234 | options=None), 235 | ], 236 | extensions=[ 237 | ], 238 | nested_types=[], 239 | enum_types=[ 240 | ], 241 | options=None, 242 | is_extendable=False, 243 | extension_ranges=[], 244 | oneofs=[ 245 | ], 246 | serialized_start=317, 247 | serialized_end=534, 248 | ) 249 | 250 | _SSL_DETECTIONFRAME.fields_by_name['balls'].message_type = _SSL_DETECTIONBALL 251 | _SSL_DETECTIONFRAME.fields_by_name['robots_yellow'].message_type = _SSL_DETECTIONROBOT 252 | _SSL_DETECTIONFRAME.fields_by_name['robots_blue'].message_type = _SSL_DETECTIONROBOT 253 | DESCRIPTOR.message_types_by_name['SSL_DetectionBall'] = _SSL_DETECTIONBALL 254 | DESCRIPTOR.message_types_by_name['SSL_DetectionRobot'] = _SSL_DETECTIONROBOT 255 | DESCRIPTOR.message_types_by_name['SSL_DetectionFrame'] = _SSL_DETECTIONFRAME 256 | 257 | SSL_DetectionBall = _reflection.GeneratedProtocolMessageType('SSL_DetectionBall', (_message.Message,), dict( 258 | DESCRIPTOR = _SSL_DETECTIONBALL, 259 | __module__ = 'messages_robocup_ssl_detection_pb2' 260 | # @@protoc_insertion_point(class_scope:SSL_DetectionBall) 261 | )) 262 | _sym_db.RegisterMessage(SSL_DetectionBall) 263 | 264 | SSL_DetectionRobot = _reflection.GeneratedProtocolMessageType('SSL_DetectionRobot', (_message.Message,), dict( 265 | DESCRIPTOR = _SSL_DETECTIONROBOT, 266 | __module__ = 'messages_robocup_ssl_detection_pb2' 267 | # @@protoc_insertion_point(class_scope:SSL_DetectionRobot) 268 | )) 269 | _sym_db.RegisterMessage(SSL_DetectionRobot) 270 | 271 | SSL_DetectionFrame = _reflection.GeneratedProtocolMessageType('SSL_DetectionFrame', (_message.Message,), dict( 272 | DESCRIPTOR = _SSL_DETECTIONFRAME, 273 | __module__ = 'messages_robocup_ssl_detection_pb2' 274 | # @@protoc_insertion_point(class_scope:SSL_DetectionFrame) 275 | )) 276 | _sym_db.RegisterMessage(SSL_DetectionFrame) 277 | 278 | 279 | # @@protoc_insertion_point(module_scope) 280 | -------------------------------------------------------------------------------- /sslclient/messages_robocup_ssl_geometry_legacy_pb2.py: -------------------------------------------------------------------------------- 1 | # Generated by the protocol buffer compiler. DO NOT EDIT! 2 | # source: messages_robocup_ssl_geometry_legacy.proto 3 | 4 | import sys 5 | _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | from google.protobuf import descriptor_pb2 11 | # @@protoc_insertion_point(imports) 12 | 13 | _sym_db = _symbol_database.Default() 14 | 15 | 16 | import messages_robocup_ssl_geometry_pb2 17 | 18 | 19 | DESCRIPTOR = _descriptor.FileDescriptor( 20 | name='messages_robocup_ssl_geometry_legacy.proto', 21 | package='RoboCup2014Legacy.Geometry', 22 | serialized_pb=_b('\n*messages_robocup_ssl_geometry_legacy.proto\x12\x1aRoboCup2014Legacy.Geometry\x1a#messages_robocup_ssl_geometry.proto\"\x8a\x03\n\x15SSL_GeometryFieldSize\x12\x12\n\nline_width\x18\x01 \x02(\x05\x12\x14\n\x0c\x66ield_length\x18\x02 \x02(\x05\x12\x13\n\x0b\x66ield_width\x18\x03 \x02(\x05\x12\x16\n\x0e\x62oundary_width\x18\x04 \x02(\x05\x12\x15\n\rreferee_width\x18\x05 \x02(\x05\x12\x12\n\ngoal_width\x18\x06 \x02(\x05\x12\x12\n\ngoal_depth\x18\x07 \x02(\x05\x12\x17\n\x0fgoal_wall_width\x18\x08 \x02(\x05\x12\x1c\n\x14\x63\x65nter_circle_radius\x18\t \x02(\x05\x12\x16\n\x0e\x64\x65\x66\x65nse_radius\x18\n \x02(\x05\x12\x17\n\x0f\x64\x65\x66\x65nse_stretch\x18\x0b \x02(\x05\x12#\n\x1b\x66ree_kick_from_defense_dist\x18\x0c \x02(\x05\x12)\n!penalty_spot_from_field_line_dist\x18\r \x02(\x05\x12#\n\x1bpenalty_line_from_spot_dist\x18\x0e \x02(\x05\"\x83\x01\n\x10SSL_GeometryData\x12@\n\x05\x66ield\x18\x01 \x02(\x0b\x32\x31.RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize\x12-\n\x05\x63\x61lib\x18\x02 \x03(\x0b\x32\x1e.SSL_GeometryCameraCalibration') 23 | , 24 | dependencies=[messages_robocup_ssl_geometry_pb2.DESCRIPTOR,]) 25 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 26 | 27 | 28 | 29 | 30 | _SSL_GEOMETRYFIELDSIZE = _descriptor.Descriptor( 31 | name='SSL_GeometryFieldSize', 32 | full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | fields=[ 37 | _descriptor.FieldDescriptor( 38 | name='line_width', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.line_width', index=0, 39 | number=1, type=5, cpp_type=1, label=2, 40 | has_default_value=False, default_value=0, 41 | message_type=None, enum_type=None, containing_type=None, 42 | is_extension=False, extension_scope=None, 43 | options=None), 44 | _descriptor.FieldDescriptor( 45 | name='field_length', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.field_length', index=1, 46 | number=2, type=5, cpp_type=1, label=2, 47 | has_default_value=False, default_value=0, 48 | message_type=None, enum_type=None, containing_type=None, 49 | is_extension=False, extension_scope=None, 50 | options=None), 51 | _descriptor.FieldDescriptor( 52 | name='field_width', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.field_width', index=2, 53 | number=3, type=5, cpp_type=1, label=2, 54 | has_default_value=False, default_value=0, 55 | message_type=None, enum_type=None, containing_type=None, 56 | is_extension=False, extension_scope=None, 57 | options=None), 58 | _descriptor.FieldDescriptor( 59 | name='boundary_width', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.boundary_width', index=3, 60 | number=4, type=5, cpp_type=1, label=2, 61 | has_default_value=False, default_value=0, 62 | message_type=None, enum_type=None, containing_type=None, 63 | is_extension=False, extension_scope=None, 64 | options=None), 65 | _descriptor.FieldDescriptor( 66 | name='referee_width', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.referee_width', index=4, 67 | number=5, type=5, cpp_type=1, label=2, 68 | has_default_value=False, default_value=0, 69 | message_type=None, enum_type=None, containing_type=None, 70 | is_extension=False, extension_scope=None, 71 | options=None), 72 | _descriptor.FieldDescriptor( 73 | name='goal_width', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.goal_width', index=5, 74 | number=6, type=5, cpp_type=1, label=2, 75 | has_default_value=False, default_value=0, 76 | message_type=None, enum_type=None, containing_type=None, 77 | is_extension=False, extension_scope=None, 78 | options=None), 79 | _descriptor.FieldDescriptor( 80 | name='goal_depth', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.goal_depth', index=6, 81 | number=7, type=5, cpp_type=1, label=2, 82 | has_default_value=False, default_value=0, 83 | message_type=None, enum_type=None, containing_type=None, 84 | is_extension=False, extension_scope=None, 85 | options=None), 86 | _descriptor.FieldDescriptor( 87 | name='goal_wall_width', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.goal_wall_width', index=7, 88 | number=8, type=5, cpp_type=1, label=2, 89 | has_default_value=False, default_value=0, 90 | message_type=None, enum_type=None, containing_type=None, 91 | is_extension=False, extension_scope=None, 92 | options=None), 93 | _descriptor.FieldDescriptor( 94 | name='center_circle_radius', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.center_circle_radius', index=8, 95 | number=9, type=5, cpp_type=1, label=2, 96 | has_default_value=False, default_value=0, 97 | message_type=None, enum_type=None, containing_type=None, 98 | is_extension=False, extension_scope=None, 99 | options=None), 100 | _descriptor.FieldDescriptor( 101 | name='defense_radius', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.defense_radius', index=9, 102 | number=10, type=5, cpp_type=1, label=2, 103 | has_default_value=False, default_value=0, 104 | message_type=None, enum_type=None, containing_type=None, 105 | is_extension=False, extension_scope=None, 106 | options=None), 107 | _descriptor.FieldDescriptor( 108 | name='defense_stretch', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.defense_stretch', index=10, 109 | number=11, type=5, cpp_type=1, label=2, 110 | has_default_value=False, default_value=0, 111 | message_type=None, enum_type=None, containing_type=None, 112 | is_extension=False, extension_scope=None, 113 | options=None), 114 | _descriptor.FieldDescriptor( 115 | name='free_kick_from_defense_dist', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.free_kick_from_defense_dist', index=11, 116 | number=12, type=5, cpp_type=1, label=2, 117 | has_default_value=False, default_value=0, 118 | message_type=None, enum_type=None, containing_type=None, 119 | is_extension=False, extension_scope=None, 120 | options=None), 121 | _descriptor.FieldDescriptor( 122 | name='penalty_spot_from_field_line_dist', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.penalty_spot_from_field_line_dist', index=12, 123 | number=13, type=5, cpp_type=1, label=2, 124 | has_default_value=False, default_value=0, 125 | message_type=None, enum_type=None, containing_type=None, 126 | is_extension=False, extension_scope=None, 127 | options=None), 128 | _descriptor.FieldDescriptor( 129 | name='penalty_line_from_spot_dist', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize.penalty_line_from_spot_dist', index=13, 130 | number=14, type=5, cpp_type=1, label=2, 131 | has_default_value=False, default_value=0, 132 | message_type=None, enum_type=None, containing_type=None, 133 | is_extension=False, extension_scope=None, 134 | options=None), 135 | ], 136 | extensions=[ 137 | ], 138 | nested_types=[], 139 | enum_types=[ 140 | ], 141 | options=None, 142 | is_extendable=False, 143 | extension_ranges=[], 144 | oneofs=[ 145 | ], 146 | serialized_start=112, 147 | serialized_end=506, 148 | ) 149 | 150 | 151 | _SSL_GEOMETRYDATA = _descriptor.Descriptor( 152 | name='SSL_GeometryData', 153 | full_name='RoboCup2014Legacy.Geometry.SSL_GeometryData', 154 | filename=None, 155 | file=DESCRIPTOR, 156 | containing_type=None, 157 | fields=[ 158 | _descriptor.FieldDescriptor( 159 | name='field', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryData.field', index=0, 160 | number=1, type=11, cpp_type=10, label=2, 161 | has_default_value=False, default_value=None, 162 | message_type=None, enum_type=None, containing_type=None, 163 | is_extension=False, extension_scope=None, 164 | options=None), 165 | _descriptor.FieldDescriptor( 166 | name='calib', full_name='RoboCup2014Legacy.Geometry.SSL_GeometryData.calib', index=1, 167 | number=2, type=11, cpp_type=10, label=3, 168 | has_default_value=False, default_value=[], 169 | message_type=None, enum_type=None, containing_type=None, 170 | is_extension=False, extension_scope=None, 171 | options=None), 172 | ], 173 | extensions=[ 174 | ], 175 | nested_types=[], 176 | enum_types=[ 177 | ], 178 | options=None, 179 | is_extendable=False, 180 | extension_ranges=[], 181 | oneofs=[ 182 | ], 183 | serialized_start=509, 184 | serialized_end=640, 185 | ) 186 | 187 | _SSL_GEOMETRYDATA.fields_by_name['field'].message_type = _SSL_GEOMETRYFIELDSIZE 188 | _SSL_GEOMETRYDATA.fields_by_name['calib'].message_type = messages_robocup_ssl_geometry_pb2._SSL_GEOMETRYCAMERACALIBRATION 189 | DESCRIPTOR.message_types_by_name['SSL_GeometryFieldSize'] = _SSL_GEOMETRYFIELDSIZE 190 | DESCRIPTOR.message_types_by_name['SSL_GeometryData'] = _SSL_GEOMETRYDATA 191 | 192 | SSL_GeometryFieldSize = _reflection.GeneratedProtocolMessageType('SSL_GeometryFieldSize', (_message.Message,), dict( 193 | DESCRIPTOR = _SSL_GEOMETRYFIELDSIZE, 194 | __module__ = 'messages_robocup_ssl_geometry_legacy_pb2' 195 | # @@protoc_insertion_point(class_scope:RoboCup2014Legacy.Geometry.SSL_GeometryFieldSize) 196 | )) 197 | _sym_db.RegisterMessage(SSL_GeometryFieldSize) 198 | 199 | SSL_GeometryData = _reflection.GeneratedProtocolMessageType('SSL_GeometryData', (_message.Message,), dict( 200 | DESCRIPTOR = _SSL_GEOMETRYDATA, 201 | __module__ = 'messages_robocup_ssl_geometry_legacy_pb2' 202 | # @@protoc_insertion_point(class_scope:RoboCup2014Legacy.Geometry.SSL_GeometryData) 203 | )) 204 | _sym_db.RegisterMessage(SSL_GeometryData) 205 | 206 | 207 | # @@protoc_insertion_point(module_scope) 208 | -------------------------------------------------------------------------------- /sslclient/messages_robocup_ssl_geometry_pb2.py: -------------------------------------------------------------------------------- 1 | # Generated by the protocol buffer compiler. DO NOT EDIT! 2 | # source: messages_robocup_ssl_geometry.proto 3 | 4 | import sys 5 | _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | from google.protobuf import descriptor_pb2 11 | # @@protoc_insertion_point(imports) 12 | 13 | _sym_db = _symbol_database.Default() 14 | 15 | 16 | 17 | 18 | DESCRIPTOR = _descriptor.FileDescriptor( 19 | name='messages_robocup_ssl_geometry.proto', 20 | package='', 21 | serialized_pb=_b('\n#messages_robocup_ssl_geometry.proto\" \n\x08Vector2f\x12\t\n\x01x\x18\x01 \x02(\x02\x12\t\n\x01y\x18\x02 \x02(\x02\"e\n\x14SSL_FieldLineSegment\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x15\n\x02p1\x18\x02 \x02(\x0b\x32\t.Vector2f\x12\x15\n\x02p2\x18\x03 \x02(\x0b\x32\t.Vector2f\x12\x11\n\tthickness\x18\x04 \x02(\x02\"y\n\x13SSL_FieldCicularArc\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\x19\n\x06\x63\x65nter\x18\x02 \x02(\x0b\x32\t.Vector2f\x12\x0e\n\x06radius\x18\x03 \x02(\x02\x12\n\n\x02\x61\x31\x18\x04 \x02(\x02\x12\n\n\x02\x61\x32\x18\x05 \x02(\x02\x12\x11\n\tthickness\x18\x06 \x02(\x02\"\xd8\x01\n\x15SSL_GeometryFieldSize\x12\x14\n\x0c\x66ield_length\x18\x01 \x02(\x05\x12\x13\n\x0b\x66ield_width\x18\x02 \x02(\x05\x12\x12\n\ngoal_width\x18\x03 \x02(\x05\x12\x12\n\ngoal_depth\x18\x04 \x02(\x05\x12\x16\n\x0e\x62oundary_width\x18\x05 \x02(\x05\x12*\n\x0b\x66ield_lines\x18\x06 \x03(\x0b\x32\x15.SSL_FieldLineSegment\x12(\n\nfield_arcs\x18\x07 \x03(\x0b\x32\x14.SSL_FieldCicularArc\"\xc9\x02\n\x1dSSL_GeometryCameraCalibration\x12\x11\n\tcamera_id\x18\x01 \x02(\r\x12\x14\n\x0c\x66ocal_length\x18\x02 \x02(\x02\x12\x19\n\x11principal_point_x\x18\x03 \x02(\x02\x12\x19\n\x11principal_point_y\x18\x04 \x02(\x02\x12\x12\n\ndistortion\x18\x05 \x02(\x02\x12\n\n\x02q0\x18\x06 \x02(\x02\x12\n\n\x02q1\x18\x07 \x02(\x02\x12\n\n\x02q2\x18\x08 \x02(\x02\x12\n\n\x02q3\x18\t \x02(\x02\x12\n\n\x02tx\x18\n \x02(\x02\x12\n\n\x02ty\x18\x0b \x02(\x02\x12\n\n\x02tz\x18\x0c \x02(\x02\x12\x1f\n\x17\x64\x65rived_camera_world_tx\x18\r \x01(\x02\x12\x1f\n\x17\x64\x65rived_camera_world_ty\x18\x0e \x01(\x02\x12\x1f\n\x17\x64\x65rived_camera_world_tz\x18\x0f \x01(\x02\"h\n\x10SSL_GeometryData\x12%\n\x05\x66ield\x18\x01 \x02(\x0b\x32\x16.SSL_GeometryFieldSize\x12-\n\x05\x63\x61lib\x18\x02 \x03(\x0b\x32\x1e.SSL_GeometryCameraCalibration') 22 | ) 23 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 24 | 25 | 26 | 27 | 28 | _VECTOR2F = _descriptor.Descriptor( 29 | name='Vector2f', 30 | full_name='Vector2f', 31 | filename=None, 32 | file=DESCRIPTOR, 33 | containing_type=None, 34 | fields=[ 35 | _descriptor.FieldDescriptor( 36 | name='x', full_name='Vector2f.x', index=0, 37 | number=1, type=2, cpp_type=6, label=2, 38 | has_default_value=False, default_value=0, 39 | message_type=None, enum_type=None, containing_type=None, 40 | is_extension=False, extension_scope=None, 41 | options=None), 42 | _descriptor.FieldDescriptor( 43 | name='y', full_name='Vector2f.y', index=1, 44 | number=2, type=2, cpp_type=6, label=2, 45 | has_default_value=False, default_value=0, 46 | message_type=None, enum_type=None, containing_type=None, 47 | is_extension=False, extension_scope=None, 48 | options=None), 49 | ], 50 | extensions=[ 51 | ], 52 | nested_types=[], 53 | enum_types=[ 54 | ], 55 | options=None, 56 | is_extendable=False, 57 | extension_ranges=[], 58 | oneofs=[ 59 | ], 60 | serialized_start=39, 61 | serialized_end=71, 62 | ) 63 | 64 | 65 | _SSL_FIELDLINESEGMENT = _descriptor.Descriptor( 66 | name='SSL_FieldLineSegment', 67 | full_name='SSL_FieldLineSegment', 68 | filename=None, 69 | file=DESCRIPTOR, 70 | containing_type=None, 71 | fields=[ 72 | _descriptor.FieldDescriptor( 73 | name='name', full_name='SSL_FieldLineSegment.name', index=0, 74 | number=1, type=9, cpp_type=9, label=2, 75 | has_default_value=False, default_value=_b("").decode('utf-8'), 76 | message_type=None, enum_type=None, containing_type=None, 77 | is_extension=False, extension_scope=None, 78 | options=None), 79 | _descriptor.FieldDescriptor( 80 | name='p1', full_name='SSL_FieldLineSegment.p1', index=1, 81 | number=2, type=11, cpp_type=10, label=2, 82 | has_default_value=False, default_value=None, 83 | message_type=None, enum_type=None, containing_type=None, 84 | is_extension=False, extension_scope=None, 85 | options=None), 86 | _descriptor.FieldDescriptor( 87 | name='p2', full_name='SSL_FieldLineSegment.p2', index=2, 88 | number=3, type=11, cpp_type=10, label=2, 89 | has_default_value=False, default_value=None, 90 | message_type=None, enum_type=None, containing_type=None, 91 | is_extension=False, extension_scope=None, 92 | options=None), 93 | _descriptor.FieldDescriptor( 94 | name='thickness', full_name='SSL_FieldLineSegment.thickness', index=3, 95 | number=4, type=2, cpp_type=6, label=2, 96 | has_default_value=False, default_value=0, 97 | message_type=None, enum_type=None, containing_type=None, 98 | is_extension=False, extension_scope=None, 99 | options=None), 100 | ], 101 | extensions=[ 102 | ], 103 | nested_types=[], 104 | enum_types=[ 105 | ], 106 | options=None, 107 | is_extendable=False, 108 | extension_ranges=[], 109 | oneofs=[ 110 | ], 111 | serialized_start=73, 112 | serialized_end=174, 113 | ) 114 | 115 | 116 | _SSL_FIELDCICULARARC = _descriptor.Descriptor( 117 | name='SSL_FieldCicularArc', 118 | full_name='SSL_FieldCicularArc', 119 | filename=None, 120 | file=DESCRIPTOR, 121 | containing_type=None, 122 | fields=[ 123 | _descriptor.FieldDescriptor( 124 | name='name', full_name='SSL_FieldCicularArc.name', index=0, 125 | number=1, type=9, cpp_type=9, label=2, 126 | has_default_value=False, default_value=_b("").decode('utf-8'), 127 | message_type=None, enum_type=None, containing_type=None, 128 | is_extension=False, extension_scope=None, 129 | options=None), 130 | _descriptor.FieldDescriptor( 131 | name='center', full_name='SSL_FieldCicularArc.center', index=1, 132 | number=2, type=11, cpp_type=10, label=2, 133 | has_default_value=False, default_value=None, 134 | message_type=None, enum_type=None, containing_type=None, 135 | is_extension=False, extension_scope=None, 136 | options=None), 137 | _descriptor.FieldDescriptor( 138 | name='radius', full_name='SSL_FieldCicularArc.radius', index=2, 139 | number=3, type=2, cpp_type=6, label=2, 140 | has_default_value=False, default_value=0, 141 | message_type=None, enum_type=None, containing_type=None, 142 | is_extension=False, extension_scope=None, 143 | options=None), 144 | _descriptor.FieldDescriptor( 145 | name='a1', full_name='SSL_FieldCicularArc.a1', index=3, 146 | number=4, type=2, cpp_type=6, label=2, 147 | has_default_value=False, default_value=0, 148 | message_type=None, enum_type=None, containing_type=None, 149 | is_extension=False, extension_scope=None, 150 | options=None), 151 | _descriptor.FieldDescriptor( 152 | name='a2', full_name='SSL_FieldCicularArc.a2', index=4, 153 | number=5, type=2, cpp_type=6, label=2, 154 | has_default_value=False, default_value=0, 155 | message_type=None, enum_type=None, containing_type=None, 156 | is_extension=False, extension_scope=None, 157 | options=None), 158 | _descriptor.FieldDescriptor( 159 | name='thickness', full_name='SSL_FieldCicularArc.thickness', index=5, 160 | number=6, type=2, cpp_type=6, label=2, 161 | has_default_value=False, default_value=0, 162 | message_type=None, enum_type=None, containing_type=None, 163 | is_extension=False, extension_scope=None, 164 | options=None), 165 | ], 166 | extensions=[ 167 | ], 168 | nested_types=[], 169 | enum_types=[ 170 | ], 171 | options=None, 172 | is_extendable=False, 173 | extension_ranges=[], 174 | oneofs=[ 175 | ], 176 | serialized_start=176, 177 | serialized_end=297, 178 | ) 179 | 180 | 181 | _SSL_GEOMETRYFIELDSIZE = _descriptor.Descriptor( 182 | name='SSL_GeometryFieldSize', 183 | full_name='SSL_GeometryFieldSize', 184 | filename=None, 185 | file=DESCRIPTOR, 186 | containing_type=None, 187 | fields=[ 188 | _descriptor.FieldDescriptor( 189 | name='field_length', full_name='SSL_GeometryFieldSize.field_length', index=0, 190 | number=1, type=5, cpp_type=1, label=2, 191 | has_default_value=False, default_value=0, 192 | message_type=None, enum_type=None, containing_type=None, 193 | is_extension=False, extension_scope=None, 194 | options=None), 195 | _descriptor.FieldDescriptor( 196 | name='field_width', full_name='SSL_GeometryFieldSize.field_width', index=1, 197 | number=2, type=5, cpp_type=1, label=2, 198 | has_default_value=False, default_value=0, 199 | message_type=None, enum_type=None, containing_type=None, 200 | is_extension=False, extension_scope=None, 201 | options=None), 202 | _descriptor.FieldDescriptor( 203 | name='goal_width', full_name='SSL_GeometryFieldSize.goal_width', index=2, 204 | number=3, type=5, cpp_type=1, label=2, 205 | has_default_value=False, default_value=0, 206 | message_type=None, enum_type=None, containing_type=None, 207 | is_extension=False, extension_scope=None, 208 | options=None), 209 | _descriptor.FieldDescriptor( 210 | name='goal_depth', full_name='SSL_GeometryFieldSize.goal_depth', index=3, 211 | number=4, type=5, cpp_type=1, label=2, 212 | has_default_value=False, default_value=0, 213 | message_type=None, enum_type=None, containing_type=None, 214 | is_extension=False, extension_scope=None, 215 | options=None), 216 | _descriptor.FieldDescriptor( 217 | name='boundary_width', full_name='SSL_GeometryFieldSize.boundary_width', index=4, 218 | number=5, type=5, cpp_type=1, label=2, 219 | has_default_value=False, default_value=0, 220 | message_type=None, enum_type=None, containing_type=None, 221 | is_extension=False, extension_scope=None, 222 | options=None), 223 | _descriptor.FieldDescriptor( 224 | name='field_lines', full_name='SSL_GeometryFieldSize.field_lines', index=5, 225 | number=6, type=11, cpp_type=10, label=3, 226 | has_default_value=False, default_value=[], 227 | message_type=None, enum_type=None, containing_type=None, 228 | is_extension=False, extension_scope=None, 229 | options=None), 230 | _descriptor.FieldDescriptor( 231 | name='field_arcs', full_name='SSL_GeometryFieldSize.field_arcs', index=6, 232 | number=7, type=11, cpp_type=10, label=3, 233 | has_default_value=False, default_value=[], 234 | message_type=None, enum_type=None, containing_type=None, 235 | is_extension=False, extension_scope=None, 236 | options=None), 237 | ], 238 | extensions=[ 239 | ], 240 | nested_types=[], 241 | enum_types=[ 242 | ], 243 | options=None, 244 | is_extendable=False, 245 | extension_ranges=[], 246 | oneofs=[ 247 | ], 248 | serialized_start=300, 249 | serialized_end=516, 250 | ) 251 | 252 | 253 | _SSL_GEOMETRYCAMERACALIBRATION = _descriptor.Descriptor( 254 | name='SSL_GeometryCameraCalibration', 255 | full_name='SSL_GeometryCameraCalibration', 256 | filename=None, 257 | file=DESCRIPTOR, 258 | containing_type=None, 259 | fields=[ 260 | _descriptor.FieldDescriptor( 261 | name='camera_id', full_name='SSL_GeometryCameraCalibration.camera_id', index=0, 262 | number=1, type=13, cpp_type=3, label=2, 263 | has_default_value=False, default_value=0, 264 | message_type=None, enum_type=None, containing_type=None, 265 | is_extension=False, extension_scope=None, 266 | options=None), 267 | _descriptor.FieldDescriptor( 268 | name='focal_length', full_name='SSL_GeometryCameraCalibration.focal_length', index=1, 269 | number=2, type=2, cpp_type=6, label=2, 270 | has_default_value=False, default_value=0, 271 | message_type=None, enum_type=None, containing_type=None, 272 | is_extension=False, extension_scope=None, 273 | options=None), 274 | _descriptor.FieldDescriptor( 275 | name='principal_point_x', full_name='SSL_GeometryCameraCalibration.principal_point_x', index=2, 276 | number=3, type=2, cpp_type=6, label=2, 277 | has_default_value=False, default_value=0, 278 | message_type=None, enum_type=None, containing_type=None, 279 | is_extension=False, extension_scope=None, 280 | options=None), 281 | _descriptor.FieldDescriptor( 282 | name='principal_point_y', full_name='SSL_GeometryCameraCalibration.principal_point_y', index=3, 283 | number=4, type=2, cpp_type=6, label=2, 284 | has_default_value=False, default_value=0, 285 | message_type=None, enum_type=None, containing_type=None, 286 | is_extension=False, extension_scope=None, 287 | options=None), 288 | _descriptor.FieldDescriptor( 289 | name='distortion', full_name='SSL_GeometryCameraCalibration.distortion', index=4, 290 | number=5, type=2, cpp_type=6, label=2, 291 | has_default_value=False, default_value=0, 292 | message_type=None, enum_type=None, containing_type=None, 293 | is_extension=False, extension_scope=None, 294 | options=None), 295 | _descriptor.FieldDescriptor( 296 | name='q0', full_name='SSL_GeometryCameraCalibration.q0', index=5, 297 | number=6, type=2, cpp_type=6, label=2, 298 | has_default_value=False, default_value=0, 299 | message_type=None, enum_type=None, containing_type=None, 300 | is_extension=False, extension_scope=None, 301 | options=None), 302 | _descriptor.FieldDescriptor( 303 | name='q1', full_name='SSL_GeometryCameraCalibration.q1', index=6, 304 | number=7, type=2, cpp_type=6, label=2, 305 | has_default_value=False, default_value=0, 306 | message_type=None, enum_type=None, containing_type=None, 307 | is_extension=False, extension_scope=None, 308 | options=None), 309 | _descriptor.FieldDescriptor( 310 | name='q2', full_name='SSL_GeometryCameraCalibration.q2', index=7, 311 | number=8, type=2, cpp_type=6, label=2, 312 | has_default_value=False, default_value=0, 313 | message_type=None, enum_type=None, containing_type=None, 314 | is_extension=False, extension_scope=None, 315 | options=None), 316 | _descriptor.FieldDescriptor( 317 | name='q3', full_name='SSL_GeometryCameraCalibration.q3', index=8, 318 | number=9, type=2, cpp_type=6, label=2, 319 | has_default_value=False, default_value=0, 320 | message_type=None, enum_type=None, containing_type=None, 321 | is_extension=False, extension_scope=None, 322 | options=None), 323 | _descriptor.FieldDescriptor( 324 | name='tx', full_name='SSL_GeometryCameraCalibration.tx', index=9, 325 | number=10, type=2, cpp_type=6, label=2, 326 | has_default_value=False, default_value=0, 327 | message_type=None, enum_type=None, containing_type=None, 328 | is_extension=False, extension_scope=None, 329 | options=None), 330 | _descriptor.FieldDescriptor( 331 | name='ty', full_name='SSL_GeometryCameraCalibration.ty', index=10, 332 | number=11, type=2, cpp_type=6, label=2, 333 | has_default_value=False, default_value=0, 334 | message_type=None, enum_type=None, containing_type=None, 335 | is_extension=False, extension_scope=None, 336 | options=None), 337 | _descriptor.FieldDescriptor( 338 | name='tz', full_name='SSL_GeometryCameraCalibration.tz', index=11, 339 | number=12, type=2, cpp_type=6, label=2, 340 | has_default_value=False, default_value=0, 341 | message_type=None, enum_type=None, containing_type=None, 342 | is_extension=False, extension_scope=None, 343 | options=None), 344 | _descriptor.FieldDescriptor( 345 | name='derived_camera_world_tx', full_name='SSL_GeometryCameraCalibration.derived_camera_world_tx', index=12, 346 | number=13, type=2, cpp_type=6, label=1, 347 | has_default_value=False, default_value=0, 348 | message_type=None, enum_type=None, containing_type=None, 349 | is_extension=False, extension_scope=None, 350 | options=None), 351 | _descriptor.FieldDescriptor( 352 | name='derived_camera_world_ty', full_name='SSL_GeometryCameraCalibration.derived_camera_world_ty', index=13, 353 | number=14, type=2, cpp_type=6, label=1, 354 | has_default_value=False, default_value=0, 355 | message_type=None, enum_type=None, containing_type=None, 356 | is_extension=False, extension_scope=None, 357 | options=None), 358 | _descriptor.FieldDescriptor( 359 | name='derived_camera_world_tz', full_name='SSL_GeometryCameraCalibration.derived_camera_world_tz', index=14, 360 | number=15, type=2, cpp_type=6, label=1, 361 | has_default_value=False, default_value=0, 362 | message_type=None, enum_type=None, containing_type=None, 363 | is_extension=False, extension_scope=None, 364 | options=None), 365 | ], 366 | extensions=[ 367 | ], 368 | nested_types=[], 369 | enum_types=[ 370 | ], 371 | options=None, 372 | is_extendable=False, 373 | extension_ranges=[], 374 | oneofs=[ 375 | ], 376 | serialized_start=519, 377 | serialized_end=848, 378 | ) 379 | 380 | 381 | _SSL_GEOMETRYDATA = _descriptor.Descriptor( 382 | name='SSL_GeometryData', 383 | full_name='SSL_GeometryData', 384 | filename=None, 385 | file=DESCRIPTOR, 386 | containing_type=None, 387 | fields=[ 388 | _descriptor.FieldDescriptor( 389 | name='field', full_name='SSL_GeometryData.field', index=0, 390 | number=1, type=11, cpp_type=10, label=2, 391 | has_default_value=False, default_value=None, 392 | message_type=None, enum_type=None, containing_type=None, 393 | is_extension=False, extension_scope=None, 394 | options=None), 395 | _descriptor.FieldDescriptor( 396 | name='calib', full_name='SSL_GeometryData.calib', index=1, 397 | number=2, type=11, cpp_type=10, label=3, 398 | has_default_value=False, default_value=[], 399 | message_type=None, enum_type=None, containing_type=None, 400 | is_extension=False, extension_scope=None, 401 | options=None), 402 | ], 403 | extensions=[ 404 | ], 405 | nested_types=[], 406 | enum_types=[ 407 | ], 408 | options=None, 409 | is_extendable=False, 410 | extension_ranges=[], 411 | oneofs=[ 412 | ], 413 | serialized_start=850, 414 | serialized_end=954, 415 | ) 416 | 417 | _SSL_FIELDLINESEGMENT.fields_by_name['p1'].message_type = _VECTOR2F 418 | _SSL_FIELDLINESEGMENT.fields_by_name['p2'].message_type = _VECTOR2F 419 | _SSL_FIELDCICULARARC.fields_by_name['center'].message_type = _VECTOR2F 420 | _SSL_GEOMETRYFIELDSIZE.fields_by_name['field_lines'].message_type = _SSL_FIELDLINESEGMENT 421 | _SSL_GEOMETRYFIELDSIZE.fields_by_name['field_arcs'].message_type = _SSL_FIELDCICULARARC 422 | _SSL_GEOMETRYDATA.fields_by_name['field'].message_type = _SSL_GEOMETRYFIELDSIZE 423 | _SSL_GEOMETRYDATA.fields_by_name['calib'].message_type = _SSL_GEOMETRYCAMERACALIBRATION 424 | DESCRIPTOR.message_types_by_name['Vector2f'] = _VECTOR2F 425 | DESCRIPTOR.message_types_by_name['SSL_FieldLineSegment'] = _SSL_FIELDLINESEGMENT 426 | DESCRIPTOR.message_types_by_name['SSL_FieldCicularArc'] = _SSL_FIELDCICULARARC 427 | DESCRIPTOR.message_types_by_name['SSL_GeometryFieldSize'] = _SSL_GEOMETRYFIELDSIZE 428 | DESCRIPTOR.message_types_by_name['SSL_GeometryCameraCalibration'] = _SSL_GEOMETRYCAMERACALIBRATION 429 | DESCRIPTOR.message_types_by_name['SSL_GeometryData'] = _SSL_GEOMETRYDATA 430 | 431 | Vector2f = _reflection.GeneratedProtocolMessageType('Vector2f', (_message.Message,), dict( 432 | DESCRIPTOR = _VECTOR2F, 433 | __module__ = 'messages_robocup_ssl_geometry_pb2' 434 | # @@protoc_insertion_point(class_scope:Vector2f) 435 | )) 436 | _sym_db.RegisterMessage(Vector2f) 437 | 438 | SSL_FieldLineSegment = _reflection.GeneratedProtocolMessageType('SSL_FieldLineSegment', (_message.Message,), dict( 439 | DESCRIPTOR = _SSL_FIELDLINESEGMENT, 440 | __module__ = 'messages_robocup_ssl_geometry_pb2' 441 | # @@protoc_insertion_point(class_scope:SSL_FieldLineSegment) 442 | )) 443 | _sym_db.RegisterMessage(SSL_FieldLineSegment) 444 | 445 | SSL_FieldCicularArc = _reflection.GeneratedProtocolMessageType('SSL_FieldCicularArc', (_message.Message,), dict( 446 | DESCRIPTOR = _SSL_FIELDCICULARARC, 447 | __module__ = 'messages_robocup_ssl_geometry_pb2' 448 | # @@protoc_insertion_point(class_scope:SSL_FieldCicularArc) 449 | )) 450 | _sym_db.RegisterMessage(SSL_FieldCicularArc) 451 | 452 | SSL_GeometryFieldSize = _reflection.GeneratedProtocolMessageType('SSL_GeometryFieldSize', (_message.Message,), dict( 453 | DESCRIPTOR = _SSL_GEOMETRYFIELDSIZE, 454 | __module__ = 'messages_robocup_ssl_geometry_pb2' 455 | # @@protoc_insertion_point(class_scope:SSL_GeometryFieldSize) 456 | )) 457 | _sym_db.RegisterMessage(SSL_GeometryFieldSize) 458 | 459 | SSL_GeometryCameraCalibration = _reflection.GeneratedProtocolMessageType('SSL_GeometryCameraCalibration', (_message.Message,), dict( 460 | DESCRIPTOR = _SSL_GEOMETRYCAMERACALIBRATION, 461 | __module__ = 'messages_robocup_ssl_geometry_pb2' 462 | # @@protoc_insertion_point(class_scope:SSL_GeometryCameraCalibration) 463 | )) 464 | _sym_db.RegisterMessage(SSL_GeometryCameraCalibration) 465 | 466 | SSL_GeometryData = _reflection.GeneratedProtocolMessageType('SSL_GeometryData', (_message.Message,), dict( 467 | DESCRIPTOR = _SSL_GEOMETRYDATA, 468 | __module__ = 'messages_robocup_ssl_geometry_pb2' 469 | # @@protoc_insertion_point(class_scope:SSL_GeometryData) 470 | )) 471 | _sym_db.RegisterMessage(SSL_GeometryData) 472 | 473 | 474 | # @@protoc_insertion_point(module_scope) 475 | -------------------------------------------------------------------------------- /sslclient/messages_robocup_ssl_refbox_log_pb2.py: -------------------------------------------------------------------------------- 1 | # Generated by the protocol buffer compiler. DO NOT EDIT! 2 | # source: messages_robocup_ssl_refbox_log.proto 3 | 4 | import sys 5 | _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | from google.protobuf import descriptor_pb2 11 | # @@protoc_insertion_point(imports) 12 | 13 | _sym_db = _symbol_database.Default() 14 | 15 | 16 | import messages_robocup_ssl_detection_pb2 17 | 18 | 19 | DESCRIPTOR = _descriptor.FileDescriptor( 20 | name='messages_robocup_ssl_refbox_log.proto', 21 | package='', 22 | serialized_pb=_b('\n%messages_robocup_ssl_refbox_log.proto\x1a$messages_robocup_ssl_detection.proto\"C\n\tLog_Frame\x12\"\n\x05\x66rame\x18\x01 \x02(\x0b\x32\x13.SSL_DetectionFrame\x12\x12\n\nrefbox_cmd\x18\x02 \x02(\t\"%\n\nRefbox_Log\x12\x17\n\x03log\x18\x01 \x03(\x0b\x32\n.Log_Frame') 23 | , 24 | dependencies=[messages_robocup_ssl_detection_pb2.DESCRIPTOR,]) 25 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 26 | 27 | 28 | 29 | 30 | _LOG_FRAME = _descriptor.Descriptor( 31 | name='Log_Frame', 32 | full_name='Log_Frame', 33 | filename=None, 34 | file=DESCRIPTOR, 35 | containing_type=None, 36 | fields=[ 37 | _descriptor.FieldDescriptor( 38 | name='frame', full_name='Log_Frame.frame', index=0, 39 | number=1, type=11, cpp_type=10, label=2, 40 | has_default_value=False, default_value=None, 41 | message_type=None, enum_type=None, containing_type=None, 42 | is_extension=False, extension_scope=None, 43 | options=None), 44 | _descriptor.FieldDescriptor( 45 | name='refbox_cmd', full_name='Log_Frame.refbox_cmd', index=1, 46 | number=2, type=9, cpp_type=9, label=2, 47 | has_default_value=False, default_value=_b("").decode('utf-8'), 48 | message_type=None, enum_type=None, containing_type=None, 49 | is_extension=False, extension_scope=None, 50 | options=None), 51 | ], 52 | extensions=[ 53 | ], 54 | nested_types=[], 55 | enum_types=[ 56 | ], 57 | options=None, 58 | is_extendable=False, 59 | extension_ranges=[], 60 | oneofs=[ 61 | ], 62 | serialized_start=79, 63 | serialized_end=146, 64 | ) 65 | 66 | 67 | _REFBOX_LOG = _descriptor.Descriptor( 68 | name='Refbox_Log', 69 | full_name='Refbox_Log', 70 | filename=None, 71 | file=DESCRIPTOR, 72 | containing_type=None, 73 | fields=[ 74 | _descriptor.FieldDescriptor( 75 | name='log', full_name='Refbox_Log.log', index=0, 76 | number=1, type=11, cpp_type=10, label=3, 77 | has_default_value=False, default_value=[], 78 | message_type=None, enum_type=None, containing_type=None, 79 | is_extension=False, extension_scope=None, 80 | options=None), 81 | ], 82 | extensions=[ 83 | ], 84 | nested_types=[], 85 | enum_types=[ 86 | ], 87 | options=None, 88 | is_extendable=False, 89 | extension_ranges=[], 90 | oneofs=[ 91 | ], 92 | serialized_start=148, 93 | serialized_end=185, 94 | ) 95 | 96 | _LOG_FRAME.fields_by_name['frame'].message_type = messages_robocup_ssl_detection_pb2._SSL_DETECTIONFRAME 97 | _REFBOX_LOG.fields_by_name['log'].message_type = _LOG_FRAME 98 | DESCRIPTOR.message_types_by_name['Log_Frame'] = _LOG_FRAME 99 | DESCRIPTOR.message_types_by_name['Refbox_Log'] = _REFBOX_LOG 100 | 101 | Log_Frame = _reflection.GeneratedProtocolMessageType('Log_Frame', (_message.Message,), dict( 102 | DESCRIPTOR = _LOG_FRAME, 103 | __module__ = 'messages_robocup_ssl_refbox_log_pb2' 104 | # @@protoc_insertion_point(class_scope:Log_Frame) 105 | )) 106 | _sym_db.RegisterMessage(Log_Frame) 107 | 108 | Refbox_Log = _reflection.GeneratedProtocolMessageType('Refbox_Log', (_message.Message,), dict( 109 | DESCRIPTOR = _REFBOX_LOG, 110 | __module__ = 'messages_robocup_ssl_refbox_log_pb2' 111 | # @@protoc_insertion_point(class_scope:Refbox_Log) 112 | )) 113 | _sym_db.RegisterMessage(Refbox_Log) 114 | 115 | 116 | # @@protoc_insertion_point(module_scope) 117 | -------------------------------------------------------------------------------- /sslclient/messages_robocup_ssl_wrapper_legacy_pb2.py: -------------------------------------------------------------------------------- 1 | # Generated by the protocol buffer compiler. DO NOT EDIT! 2 | # source: messages_robocup_ssl_wrapper_legacy.proto 3 | 4 | import sys 5 | _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | from google.protobuf import descriptor_pb2 11 | # @@protoc_insertion_point(imports) 12 | 13 | _sym_db = _symbol_database.Default() 14 | 15 | 16 | import messages_robocup_ssl_detection_pb2 17 | import messages_robocup_ssl_geometry_legacy_pb2 18 | 19 | 20 | DESCRIPTOR = _descriptor.FileDescriptor( 21 | name='messages_robocup_ssl_wrapper_legacy.proto', 22 | package='RoboCup2014Legacy.Wrapper', 23 | serialized_pb=_b('\n)messages_robocup_ssl_wrapper_legacy.proto\x12\x19RoboCup2014Legacy.Wrapper\x1a$messages_robocup_ssl_detection.proto\x1a*messages_robocup_ssl_geometry_legacy.proto\"{\n\x11SSL_WrapperPacket\x12&\n\tdetection\x18\x01 \x01(\x0b\x32\x13.SSL_DetectionFrame\x12>\n\x08geometry\x18\x02 \x01(\x0b\x32,.RoboCup2014Legacy.Geometry.SSL_GeometryData') 24 | , 25 | dependencies=[messages_robocup_ssl_detection_pb2.DESCRIPTOR,messages_robocup_ssl_geometry_legacy_pb2.DESCRIPTOR,]) 26 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 27 | 28 | 29 | 30 | 31 | _SSL_WRAPPERPACKET = _descriptor.Descriptor( 32 | name='SSL_WrapperPacket', 33 | full_name='RoboCup2014Legacy.Wrapper.SSL_WrapperPacket', 34 | filename=None, 35 | file=DESCRIPTOR, 36 | containing_type=None, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='detection', full_name='RoboCup2014Legacy.Wrapper.SSL_WrapperPacket.detection', index=0, 40 | number=1, type=11, cpp_type=10, label=1, 41 | has_default_value=False, default_value=None, 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | options=None), 45 | _descriptor.FieldDescriptor( 46 | name='geometry', full_name='RoboCup2014Legacy.Wrapper.SSL_WrapperPacket.geometry', index=1, 47 | number=2, type=11, cpp_type=10, label=1, 48 | has_default_value=False, default_value=None, 49 | message_type=None, enum_type=None, containing_type=None, 50 | is_extension=False, extension_scope=None, 51 | options=None), 52 | ], 53 | extensions=[ 54 | ], 55 | nested_types=[], 56 | enum_types=[ 57 | ], 58 | options=None, 59 | is_extendable=False, 60 | extension_ranges=[], 61 | oneofs=[ 62 | ], 63 | serialized_start=154, 64 | serialized_end=277, 65 | ) 66 | 67 | _SSL_WRAPPERPACKET.fields_by_name['detection'].message_type = messages_robocup_ssl_detection_pb2._SSL_DETECTIONFRAME 68 | _SSL_WRAPPERPACKET.fields_by_name['geometry'].message_type = messages_robocup_ssl_geometry_legacy_pb2._SSL_GEOMETRYDATA 69 | DESCRIPTOR.message_types_by_name['SSL_WrapperPacket'] = _SSL_WRAPPERPACKET 70 | 71 | SSL_WrapperPacket = _reflection.GeneratedProtocolMessageType('SSL_WrapperPacket', (_message.Message,), dict( 72 | DESCRIPTOR = _SSL_WRAPPERPACKET, 73 | __module__ = 'messages_robocup_ssl_wrapper_legacy_pb2' 74 | # @@protoc_insertion_point(class_scope:RoboCup2014Legacy.Wrapper.SSL_WrapperPacket) 75 | )) 76 | _sym_db.RegisterMessage(SSL_WrapperPacket) 77 | 78 | 79 | # @@protoc_insertion_point(module_scope) 80 | -------------------------------------------------------------------------------- /sslclient/messages_robocup_ssl_wrapper_pb2.py: -------------------------------------------------------------------------------- 1 | # Generated by the protocol buffer compiler. DO NOT EDIT! 2 | # source: messages_robocup_ssl_wrapper.proto 3 | 4 | import sys 5 | _b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) 6 | from google.protobuf import descriptor as _descriptor 7 | from google.protobuf import message as _message 8 | from google.protobuf import reflection as _reflection 9 | from google.protobuf import symbol_database as _symbol_database 10 | from google.protobuf import descriptor_pb2 11 | # @@protoc_insertion_point(imports) 12 | 13 | _sym_db = _symbol_database.Default() 14 | 15 | 16 | from . import messages_robocup_ssl_detection_pb2 17 | from . import messages_robocup_ssl_geometry_pb2 18 | 19 | 20 | DESCRIPTOR = _descriptor.FileDescriptor( 21 | name='messages_robocup_ssl_wrapper.proto', 22 | package='', 23 | serialized_pb=_b('\n\"messages_robocup_ssl_wrapper.proto\x1a$messages_robocup_ssl_detection.proto\x1a#messages_robocup_ssl_geometry.proto\"`\n\x11SSL_WrapperPacket\x12&\n\tdetection\x18\x01 \x01(\x0b\x32\x13.SSL_DetectionFrame\x12#\n\x08geometry\x18\x02 \x01(\x0b\x32\x11.SSL_GeometryData') 24 | , 25 | dependencies=[messages_robocup_ssl_detection_pb2.DESCRIPTOR,messages_robocup_ssl_geometry_pb2.DESCRIPTOR,]) 26 | _sym_db.RegisterFileDescriptor(DESCRIPTOR) 27 | 28 | 29 | 30 | 31 | _SSL_WRAPPERPACKET = _descriptor.Descriptor( 32 | name='SSL_WrapperPacket', 33 | full_name='SSL_WrapperPacket', 34 | filename=None, 35 | file=DESCRIPTOR, 36 | containing_type=None, 37 | fields=[ 38 | _descriptor.FieldDescriptor( 39 | name='detection', full_name='SSL_WrapperPacket.detection', index=0, 40 | number=1, type=11, cpp_type=10, label=1, 41 | has_default_value=False, default_value=None, 42 | message_type=None, enum_type=None, containing_type=None, 43 | is_extension=False, extension_scope=None, 44 | options=None), 45 | _descriptor.FieldDescriptor( 46 | name='geometry', full_name='SSL_WrapperPacket.geometry', index=1, 47 | number=2, type=11, cpp_type=10, label=1, 48 | has_default_value=False, default_value=None, 49 | message_type=None, enum_type=None, containing_type=None, 50 | is_extension=False, extension_scope=None, 51 | options=None), 52 | ], 53 | extensions=[ 54 | ], 55 | nested_types=[], 56 | enum_types=[ 57 | ], 58 | options=None, 59 | is_extendable=False, 60 | extension_ranges=[], 61 | oneofs=[ 62 | ], 63 | serialized_start=113, 64 | serialized_end=209, 65 | ) 66 | 67 | _SSL_WRAPPERPACKET.fields_by_name['detection'].message_type = messages_robocup_ssl_detection_pb2._SSL_DETECTIONFRAME 68 | _SSL_WRAPPERPACKET.fields_by_name['geometry'].message_type = messages_robocup_ssl_geometry_pb2._SSL_GEOMETRYDATA 69 | DESCRIPTOR.message_types_by_name['SSL_WrapperPacket'] = _SSL_WRAPPERPACKET 70 | 71 | SSL_WrapperPacket = _reflection.GeneratedProtocolMessageType('SSL_WrapperPacket', (_message.Message,), dict( 72 | DESCRIPTOR = _SSL_WRAPPERPACKET, 73 | __module__ = 'messages_robocup_ssl_wrapper_pb2' 74 | # @@protoc_insertion_point(class_scope:SSL_WrapperPacket) 75 | )) 76 | _sym_db.RegisterMessage(SSL_WrapperPacket) 77 | 78 | 79 | # @@protoc_insertion_point(module_scope) 80 | -------------------------------------------------------------------------------- /sslclient/sslclient.py: -------------------------------------------------------------------------------- 1 | import socket 2 | import binascii 3 | from . import messages_robocup_ssl_wrapper_pb2 4 | 5 | class SSLClient: 6 | 7 | def __init__(self, ip = '224.5.23.2', port=10006): 8 | """ 9 | Init SSLClient object. 10 | 11 | Extended description of function. 12 | 13 | Parameters 14 | ---------- 15 | ip : str 16 | Multicast IP in format '255.255.255.255'. 17 | port : int 18 | Port up to 1024. 19 | """ 20 | 21 | self.ip = ip 22 | self.port = port 23 | 24 | def connect(self): 25 | """Binds the client with ip and port and configure to UDP multicast.""" 26 | 27 | if not isinstance(self.ip, str): 28 | raise ValueError('IP type should be string type') 29 | if not isinstance(self.port, int): 30 | raise ValueError('Port type should be int type') 31 | 32 | self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) 33 | self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 34 | self.sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 128) 35 | self.sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_LOOP, 1) 36 | self.sock.bind((self.ip, self.port)) 37 | 38 | host = socket.gethostbyname(socket.gethostname()) 39 | self.sock.setsockopt(socket.SOL_IP, socket.IP_MULTICAST_IF, socket.inet_aton(host)) 40 | self.sock.setsockopt(socket.SOL_IP, socket.IP_ADD_MEMBERSHIP, 41 | socket.inet_aton(self.ip) + socket.inet_aton(host)) 42 | 43 | def receive(self): 44 | """Receive package and decode.""" 45 | 46 | data, _ = self.sock.recvfrom(1024) 47 | decoded_data = messages_robocup_ssl_wrapper_pb2.SSL_WrapperPacket().FromString(data) 48 | return decoded_data --------------------------------------------------------------------------------