diff --git a/entities/README.md b/entities/README.md index 352fa16d..aa9b4518 100644 --- a/entities/README.md +++ b/entities/README.md @@ -9,9 +9,60 @@ This folder contains `namedtuple` declarations that are used across the reposito - `vision.py` declares the namedtuples output from our vision systems (grSim or SSLVision) - TODO: `instruction.py` declares the namedtuples compiled and sent to the physical robots +## game + +- `game.py` contains all records of the various frames in this game +- `field.py` contains the pre-defined positions of critical field objects, stored as `Shapely` objects for easy spatial analysis +- `ball.py`, `robot.py` are not currently in use, but can be implemented to create persistent objects to store relevant info about the ball or each robot +- `team_info.py` +- `referee_command.py` +- `stage.py` + +# entities + +Contains the entity objects used to store game state and game data. + +## data + +This folder contains `namedtuple` declarations that are used across the repository. + +- `vision.py` declares the namedtuples output from our vision systems (grSim or SSLVision) +- TODO: `instruction.py` declares the namedtuples compiled and sent to the physical robots ## game - `game.py` contains all records of the various frames in this game - `field.py` contains the pre-defined positions of critical field objects, stored as `Shapely` objects for easy spatial analysis - `ball.py`, `robot.py` are not currently in use, but can be implemented to create persistent objects to store relevant info about the ball or each robot +- `team_info.py`: **TeamInfo Class** represents the information about a team, including the team's name, score, red and yellow cards, timeouts, and goalie. + - **Attributes**: + - `name`: The team's name. + - `score`: The number of goals scored by the team. + - `red_cards`: The number of red cards issued to the team. + - `yellow_cards`: The total number of yellow cards ever issued to the team. + - `timeouts`: The number of timeouts this team can still call. + - `timeout_time`: The number of microseconds of timeout this team can use. + - **Methods**: + - `parse_referee_packet(packet)`: Parses the referee packet and updates the team information. + +## referee + +This folder contains classes related to the referee system and game state management. + +### referee_command.py + +- **RefereeCommand Class**: Represents a referee command with an ID and name. + - **Attributes**: + - `command_id`: The ID of the command. + - `name`: The name of the command. + - **Methods**: + - `from_id(command_id: int)`: Creates a `Command` instance from the given command ID. + +### stage.py + +- **Stage Class**: Represents a game stage with an ID and name. + - **Attributes**: + - `stage_id`: The ID of the stage. + - `name`: The name of the stage. + - **Methods**: + - `from_id(stage_id: int)`: Creates a `Stage` instance from the given stage ID. diff --git a/entities/game/team_info.py b/entities/game/team_info.py new file mode 100644 index 00000000..c31f4362 --- /dev/null +++ b/entities/game/team_info.py @@ -0,0 +1,68 @@ +class TeamInfo: + """ + Class containing information about a team. + """ + + def __init__( + self, + name: str, + score: int = 0, + red_cards: int = 0, + yellow_cards: int = 0, + timeouts: int = 0, + timeout_time: int = 0, + ): + # The team's name (empty string if operator has not typed anything). + self.name = name + # The number of goals scored by the team during normal play and overtime. + self.score = score + # The number of red cards issued to the team since the beginning of the + # game. + self.red_cards = red_cards + # The total number of yellow cards ever issued to the team. + self.yellow_cards = yellow_cards + # The number of timeouts this team can still call. + # If in a timeout right now, that timeout is excluded. + self.timeouts = timeouts + # The number of microseconds of timeout this team can use. + self.timeout_time = timeout_time + + def __repr__(self): + return ( + f"Team Name : {self.name}\n" + f"Score : {self.score}\n" + f"Red Cards : {self.red_cards}\n" + f"Yellow Cards : {self.yellow_cards}\n" + f"Timeouts Left : {self.timeouts}\n" + f"Timeout Time : {self.timeout_time} usn" + ) + + def parse_referee_packet(self, packet): + """ + Parses the SSL_Referee_TeamInfo packet and updates the team information. + + Args: + packet (SSL_Referee_TeamInfo): The packet containing team information. + """ + self.name = packet.name + self.score = packet.score + self.red_cards = packet.red_cards + self.yellow_cards = packet.yellow_cards + self.timeouts_left = packet.timeouts + self.timeout_time = packet.timeout_time + + def increment_score(self): + self.score += 1 + + def increment_red_cards(self): + self.red_cards += 1 + + def increment_yellow_cards(self): + self.yellow_cards += 1 + + def decrement_timeouts(self): + if self.timeouts > 0: + self.timeouts -= 1 + + def add_timeout_time(self, time: int): + self.timeout_time += time diff --git a/entities/referee/referee_command.py b/entities/referee/referee_command.py new file mode 100644 index 00000000..84ad94fd --- /dev/null +++ b/entities/referee/referee_command.py @@ -0,0 +1,36 @@ +class RefereeCommand: + """ + Class representing a referee command. + """ + + def __init__(self, command_id: int, name: str): + self.command_id = command_id + self.name = name + + def __repr__(self): + return f"RefereeCommand(id={self.command_id}, name={self.name})" + + @staticmethod + def from_id(command_id: int): + command_map = { + 0: "HALT", + 1: "STOP", + 2: "NORMAL_START", + 3: "FORCE_START", + 4: "PREPARE_KICKOFF_YELLOW", + 5: "PREPARE_KICKOFF_BLUE", + 6: "PREPARE_PENALTY_YELLOW", + 7: "PREPARE_PENALTY_BLUE", + 8: "DIRECT_FREE_YELLOW", + 9: "DIRECT_FREE_BLUE", + 10: "INDIRECT_FREE_YELLOW", + 11: "INDIRECT_FREE_BLUE", + 12: "TIMEOUT_YELLOW", + 13: "TIMEOUT_BLUE", + 14: "GOAL_YELLOW", + 15: "GOAL_BLUE", + 16: "BALL_PLACEMENT_YELLOW", + 17: "BALL_PLACEMENT_BLUE", + } + name = command_map.get(command_id, "UNKNOWN") + return RefereeCommand(command_id, name) diff --git a/entities/referee/stage.py b/entities/referee/stage.py new file mode 100644 index 00000000..ba42da1e --- /dev/null +++ b/entities/referee/stage.py @@ -0,0 +1,32 @@ +class Stage: + """ + Class representing a game stage. + """ + + def __init__(self, stage_id: int, name: str): + self.stage_id = stage_id + self.name = name + + def __repr__(self): + return f"Stage(id={self.stage_id}, name={self.name})" + + @staticmethod + def from_id(stage_id: int): + stage_map = { + 0: "NORMAL_FIRST_HALF_PRE", + 1: "NORMAL_FIRST_HALF", + 2: "NORMAL_HALF_TIME", + 3: "NORMAL_SECOND_HALF_PRE", + 4: "NORMAL_SECOND_HALF", + 5: "EXTRA_TIME_BREAK", + 6: "EXTRA_FIRST_HALF_PRE", + 7: "EXTRA_FIRST_HALF", + 8: "EXTRA_HALF_TIME", + 9: "EXTRA_SECOND_HALF_PRE", + 10: "EXTRA_SECOND_HALF", + 11: "PENALTY_SHOOTOUT_BREAK", + 12: "PENALTY_SHOOTOUT", + 13: "POST_GAME", + } + name = stage_map.get(stage_id, "UNKNOWN") + return Stage(stage_id, name) diff --git a/main.py b/main.py index af4442a2..e920f5f5 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ import threading from entities.game import Game +from team_controller.src.data.referee_receiver import RefereeMessageReceiver from team_controller.src.data.vision_receiver import VisionDataReceiver @@ -12,12 +13,17 @@ def main(): game = Game() # Initialize the VisionDataReceiver receiver = VisionDataReceiver(debug=False) + referee_receiver = RefereeMessageReceiver(debug=True) # Start the data receiving in a separate thread data_thread = threading.Thread(target=data_update_listener, args=(receiver,)) data_thread.daemon = True # Allows the thread to close when the main program exits data_thread.start() + referee_thread = threading.Thread(target=referee_receiver.pull_referee_data) + referee_thread.daemon = True + referee_thread.start() + try: while True: # Wait for the update event with a timeout (optional) @@ -27,13 +33,13 @@ def main(): game.add_new_state(frame_data) # access current state data - print( - game.current_state.yellow_robots[0].x, - game.current_state.yellow_robots[0].y, - ) + # print( + # game.current_state.yellow_robots[0].x, + # game.current_state.yellow_robots[0].y, + # ) # access game records from -x number of frames ago - print(game.records[-1].ts, game.records[-1].ball[0].x) + # print(game.records[-1].ts, game.records[-1].ball[0].x) else: print("No data update received within the timeout period.") diff --git a/team_controller/README.md b/team_controller/README.md index 79262a43..38c2e82e 100644 --- a/team_controller/README.md +++ b/team_controller/README.md @@ -50,7 +50,9 @@ This folder contains all the different controller classes for communication with This folder contains all the files which perform the initial processing of data being received, this includes: - **Referee Data** - > Note: Referee Message Parsing is not yet implemented. + - Receives and processes referee messages containing game state information. + - Updates internal data structures with the latest referee commands, stage, team information, and designated ball placement positions. + - Provides methods to retrieve the latest referee data, command, stage, and other relevant information. - **Vision Data** - The `VisionDataReceiver` class is responsible for receiving and managing vision data for robots and the ball in a multi-robot game environment. It interfaces with a network manager to receive packets containing positional data for the ball and robots on both teams. The class updates internal data structures accordingly. Here is an [example usage](src/tests/vision_receiver_test.py). - **Data Types**: diff --git a/team_controller/src/data/referee_receiver.py b/team_controller/src/data/referee_receiver.py index ad82cea3..75d44aeb 100644 --- a/team_controller/src/data/referee_receiver.py +++ b/team_controller/src/data/referee_receiver.py @@ -1,5 +1,10 @@ -from typing import Tuple, Optional +import threading +import time +from typing import Tuple, Optional, List +from entities.game.referee_command import RefereeCommand +from entities.game.stage import Stage +from entities.game.team_info import TeamInfo from team_controller.src.utils import network_manager from team_controller.src.config.settings import MULTICAST_GROUP_REFEREE, REFEREE_PORT @@ -7,15 +12,108 @@ class RefereeMessageReceiver: - def __init__(self, ip=MULTICAST_GROUP_REFEREE, port=REFEREE_PORT): - self.net = network_manager.NetworkManager(address=(ip, port), bind_socket=True) + """ + A class responsible for receiving and managing referee messages in a multi-robot game environment. + The class interfaces with a network manager to receive packets, which contain game state information, + and updates the internal data structures accordingly. + + Args: + ip (str): The IP address for receiving multicast referee data. Defaults to MULTICAST_GROUP_REFEREE. + port (int): The port for receiving referee data. Defaults to REFEREE_PORT. + debug (bool): Whether to print debug information. Defaults to False. + """ + def __init__(self, ip=MULTICAST_GROUP_REFEREE, port=REFEREE_PORT, debug=False): + self.net = network_manager.NetworkManager(address=(ip, port), bind_socket=True) self.prev_command_counter = -1 self.command_history = [] - self.latest_message = Referee() # Initialize a single Referee object + self.referee = Referee() # Initialize a single Referee object self.old_serialized_data = None + self.time_received = None + self.lock = threading.Lock() + self.update_event = threading.Event() + self.debug = debug + + # Initialize state variables + self.stage = None + self.command = None + self.sent_time = None + self.stage_time_left = None + self.command_counter = None + self.command_timestamp = None + self.yellow_info = TeamInfo("yellow") + self.blue_info = TeamInfo("blue") + + def string_from_stage(self, stage: int) -> str: + """ + Converts a stage enum value to a string. + + Args: + stage (int): The stage enum value. + + Returns: + str: The string representation of the stage. + """ + stage_map = { + Referee.NORMAL_FIRST_HALF_PRE: "Normal First Half Prep", + Referee.NORMAL_FIRST_HALF: "Normal First Half", + Referee.NORMAL_HALF_TIME: "Normal Half Time", + Referee.NORMAL_SECOND_HALF_PRE: "Normal Second Half Prep", + Referee.NORMAL_SECOND_HALF: "Normal Second Half", + Referee.EXTRA_TIME_BREAK: "Extra Time Break", + Referee.EXTRA_FIRST_HALF_PRE: "Extra First Half Prep", + Referee.EXTRA_FIRST_HALF: "Extra First Half", + Referee.EXTRA_HALF_TIME: "Extra Half Time", + Referee.EXTRA_SECOND_HALF_PRE: "Extra Second Half Prep", + Referee.EXTRA_SECOND_HALF: "Extra Second Half", + Referee.PENALTY_SHOOTOUT_BREAK: "Penalty Shootout Break", + Referee.PENALTY_SHOOTOUT: "Penalty Shootout", + Referee.POST_GAME: "Post Game", + } + return stage_map.get(stage, "") + + def string_from_command(self, command: int) -> str: + """ + Converts a command enum value to a string. + + Args: + command (int): The command enum value. + + Returns: + str: The string representation of the command. + """ + command_map = { + Referee.HALT: "Halt", + Referee.STOP: "Stop", + Referee.NORMAL_START: "Normal Start", + Referee.FORCE_START: "Force Start", + Referee.PREPARE_KICKOFF_YELLOW: "Yellow Kickoff Prep", + Referee.PREPARE_KICKOFF_BLUE: "Blue Kickoff Prep", + Referee.PREPARE_PENALTY_YELLOW: "Yellow Penalty Prep", + Referee.PREPARE_PENALTY_BLUE: "Blue Penalty Prep", + Referee.DIRECT_FREE_YELLOW: "Direct Yellow Free Kick", + Referee.DIRECT_FREE_BLUE: "Direct Blue Free Kick", + Referee.INDIRECT_FREE_YELLOW: "Indirect Yellow Free Kick", + Referee.INDIRECT_FREE_BLUE: "Indirect Blue Free Kick", + Referee.TIMEOUT_YELLOW: "Timeout Yellow", + Referee.TIMEOUT_BLUE: "Timeout Blue", + Referee.GOAL_YELLOW: "Goal Yellow", + Referee.GOAL_BLUE: "Goal Blue", + Referee.BALL_PLACEMENT_YELLOW: "Ball Placement Yellow", + Referee.BALL_PLACEMENT_BLUE: "Ball Placement Blue", + } + return command_map.get(command, "") def _serialize_relevant_fields(self, data: bytes) -> bytes: + """ + Serialize relevant fields of the referee message, excluding `packet_timestamp` and `stage_time_left`. + + Args: + data (bytes): The raw data received from the network. + + Returns: + bytes: The serialized data with excluded fields set to default values. + """ # Create a shallow copy of the message message_copy = Referee() message_copy.ParseFromString(data) @@ -25,72 +123,246 @@ def _serialize_relevant_fields(self, data: bytes) -> bytes: message_copy.stage_time_left = 0 # Serialize the message to a byte string - return message_copy + return message_copy.SerializeToString() + + def _update_data(self, referee_packet: Referee) -> None: + """ + Update the internal data structures with the new referee packet. + + Args: + referee_packet (Referee): The referee packet containing game state information. + """ + self.referee = referee_packet + self.update_event.set() # Signal that an update has occurred. + + # Update state variables + self.stage = Stage.from_id(referee_packet.stage) + self.command = RefereeCommand.from_id(referee_packet.command) + self.sent_time = ( + referee_packet.packet_timestamp / 1e6 + ) # Convert microseconds to seconds + self.stage_time_left = ( + referee_packet.stage_time_left / 1e3 + ) # Convert milliseconds to seconds + self.command_counter = referee_packet.command_counter + self.command_timestamp = ( + referee_packet.command_timestamp / 1e6 + ) # Convert microseconds to seconds + self.yellow_info.parse_referee_packet(referee_packet.yellow) + self.blue_info.parse_referee_packet(referee_packet.blue) def check_new_message(self) -> bool: + """ + Check if a new referee message has been received. + + Returns: + bool: True if a new message has been received, False otherwise. + """ data = self.net.receive_data() if data: serialized_data = self._serialize_relevant_fields(data) if serialized_data != self.old_serialized_data: - self.latest_message.ParseFromString(data) + self.referee.ParseFromString(data) + self.old_serialized_data = serialized_data return True return False def check_new_command(self) -> bool: + """ + Check if a new command has been received and update the command history. + + Returns: + bool: True if a new command has been received, False otherwise. + """ data = self.net.receive_data() history_length = 5 if data: - self.latest_message.ParseFromString(data) # Reuse the same object - if self.latest_message.command_counter != self.prev_command_counter: - self.prev_command_counter = self.latest_message.command_counter - self.command_history.append(self.latest_message.command) + self.referee.ParseFromString(data) # Reuse the same object + if self.referee.command_counter != self.prev_command_counter: + self.prev_command_counter = self.referee.command_counter + self.command_history.append(self.referee.command) if len(self.command_history) > history_length: self.command_history.pop(0) # Maintain a fixed-length history print(self.command_history) return True return False - def get_latest_command(self): - command = self.latest_message.command - # print(Referee.Command.Name(command)) - designated_position = self.latest_message.designated_position + def get_latest_command(self) -> Tuple[int, Tuple[float, float]]: + """ + Get the latest command and its designated position. + + Returns: + Tuple[int, Tuple[float, float]]: The latest command and its designated position. + """ + command = self.referee.command + designated_position = self.referee.designated_position return command, (designated_position.x, designated_position.y) - def get_latest_message(self) -> object: - return self.latest_message + def get_latest_message(self) -> Referee: + """ + Retrieves the current referee data. + + Returns: + Referee: The current referee data. + """ + with self.lock: + return self.referee def get_stage_time_left(self) -> float: - return self.latest_message.stage_time_left / 1000000 + """ + Get the time left in the current stage in seconds. + + Returns: + float: The time left in the current stage in seconds. + """ + return self.stage_time_left def get_packet_timestamp(self) -> float: - return self.latest_message.packet_timestamp / 1000000 + """ + Get the packet timestamp in seconds. - def yellow_team_info(self) -> object: - return self.latest_message.yellow + Returns: + float: The packet timestamp in seconds. + """ + return self.sent_time - def blue_team_info(self) -> object: - return self.latest_message.blue + def yellow_team_info(self) -> TeamInfo: + """ + Get the information for the yellow team. - def get_next_command(self) -> Optional[int]: - if self.latest_message.next_command: - return self.latest_message.next_command + Returns: + TeamInfo: The yellow team information. + """ + return self.yellow_info + + def blue_team_info(self) -> TeamInfo: + """ + Get the information for the blue team. + + Returns: + TeamInfo: The blue team information. + """ + return self.blue_info + + def get_stage(self) -> Optional[Stage]: + """ + Get the current state. + + Returns: + Optional[Stage]: Current state, otherwise None + """ + return self.stage + + def get_next_command(self) -> Optional[RefereeCommand]: + """ + Get the next command if available. + + Returns: + Optional[int]: The next command if available, None otherwise. + """ + if self.referee.next_command: + return RefereeCommand.from_id(self.referee.next_command) return None def get_designated_position(self) -> Optional[Tuple[float, float]]: - if self.latest_message.designated_position: + """ + Get the designated position if available. + + Returns: + Optional[Tuple[float, float]]: The designated position if available, None otherwise. + """ + if self.referee.designated_position: return ( - self.latest_message.designated_position.x, - self.latest_message.designated_position.y, + self.referee.designated_position.x, + self.referee.designated_position.y, ) return None def get_command_counter(self) -> int: - return self.latest_message.command_counter + """ + Get the command counter. + + Returns: + int: The command counter. + """ + return self.command_counter + + def check_command_sequence(self, sequence: List[RefereeCommand]) -> bool: + """ + Check if the last commands match the given sequence. + + Args: + sequence (List[int]): The sequence of commands to check. - def check_command_sequence(self, sequence: list) -> bool: - """Check if the last commands match the given sequence.""" + Returns: + bool: True if the last commands match the given sequence, False otherwise. + """ if len(sequence) > len(self.command_history): return False return self.command_history[-len(sequence) :] == sequence + + def get_time_received(self) -> float: + """ + Retrieves the time at which the most recent referee data was received. + + Returns: + float: The time at which the most recent referee data was received. + """ + return self.time_received + + def wait_for_update(self, timeout: float = None) -> bool: + """ + Waits for the data to be updated, returning True if an update occurs within the timeout. + + Args: + timeout (float): Maximum time to wait for an update in seconds. Defaults to None (wait indefinitely). + + Returns: + bool: True if the data was updated within the timeout, False otherwise. + """ + updated = self.update_event.wait(timeout) + self.update_event.clear() # Reset the event for the next update. + return updated + + def pull_referee_data(self) -> None: + """ + Continuously receives referee data packets and updates the internal data structures for the game state. + + This method runs indefinitely and should typically be started in a separate thread. + """ + referee_packet = Referee() + while True: + t_received = time.time() + self.time_received = t_received + data = self.net.receive_data() + if data: + with self.lock: + referee_packet.Clear() # Clear previous data to avoid memory bloat + referee_packet.ParseFromString(data) + self._update_data(referee_packet) + if self.debug: + self._print_referee_info(t_received, referee_packet) + time.sleep(0.0083) + + def _print_referee_info(self, t_received: float, referee_packet: Referee) -> None: + """ + Prints debug information about the referee packet. + + Args: + t_received (float): The time at which the packet was received. + referee_packet (Referee): The referee packet containing game state information. + """ + t_now = time.time() + print(f"Time Now : {t_now:.3f}s") + print(f"Referee Command : {self.string_from_command(self.command)}") + print(f"Stage : {self.string_from_stage(self.stage)}") + print(f"Stage Time Left : {self.stage_time_left} ms") + print(f"Command Counter : {self.command_counter}") + print(f"Command Timestamp : {self.command_timestamp} us") + print("--- YELLOW TEAM ---------------------------") + print(f"{self.yellow_info}") + print("--- BLUE TEAM -----------------------------") + print(f"{self.blue_info}") + print("-------------------------------------------") diff --git a/team_controller/src/data/vision_receiver.py b/team_controller/src/data/vision_receiver.py index 1ec4bb19..0b17b470 100644 --- a/team_controller/src/data/vision_receiver.py +++ b/team_controller/src/data/vision_receiver.py @@ -190,7 +190,7 @@ def get_robot_coords(self, is_yellow: bool) -> TeamRobotCoords: team_color = "yellow" if is_yellow else "blue" robots = self.robots_yellow_pos if is_yellow else self.robots_blue_pos return TeamRobotCoords(team_color=team_color, robots=robots) - + def get_robot_by_id(self, is_yellow: bool, robot_id: int) -> RobotData: """ Retrieves the position data for a specific robot by ID. @@ -208,8 +208,10 @@ def get_robot_by_id(self, is_yellow: bool, robot_id: int) -> RobotData: return robots[robot_id] else: return None # Or raise an exception. TODO - - def get_closest_robot_to_point(self, is_yellow: bool, x: float, y: float) -> RobotData: + + def get_closest_robot_to_point( + self, is_yellow: bool, x: float, y: float + ) -> RobotData: """ Finds the robot closest to a given point. @@ -223,7 +225,7 @@ def get_closest_robot_to_point(self, is_yellow: bool, x: float, y: float) -> Rob """ with self.lock: robots = self.robots_yellow_pos if is_yellow else self.robots_blue_pos - min_distance = float('inf') + min_distance = float("inf") closest_robot = None for robot in robots: if robot is not None: @@ -233,7 +235,7 @@ def get_closest_robot_to_point(self, is_yellow: bool, x: float, y: float) -> Rob closest_robot = robot # Haven't been tested TODO return closest_robot - + def get_ball_velocity(self) -> tuple: """ Calculates the ball's velocity based on position changes over time. @@ -251,5 +253,3 @@ def get_ball_velocity(self) -> tuple: # return (vx, vy) # return (0.0, 0.0) pass - - diff --git a/team_controller/src/generated_code/ssl_gc_referee_message_pb2.py b/team_controller/src/generated_code/ssl_gc_referee_message_pb2.py index f41b1dbc..7c70dda5 100644 --- a/team_controller/src/generated_code/ssl_gc_referee_message_pb2.py +++ b/team_controller/src/generated_code/ssl_gc_referee_message_pb2.py @@ -7,6 +7,7 @@ from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database + # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -16,47 +17,61 @@ DESCRIPTOR = _descriptor.FileDescriptor( - name='ssl_gc_referee_message.proto', - package='', - syntax='proto2', - serialized_options=b'Z=github.com/RoboCup-SSL/ssl-game-controller/internal/app/state', - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x1cssl_gc_referee_message.proto\x1a\x17ssl_gc_game_event.proto\"\xb5\x0e\n\x07Referee\x12\x19\n\x11source_identifier\x18\x12 \x01(\t\x12-\n\nmatch_type\x18\x13 \x01(\x0e\x32\n.MatchType:\rUNKNOWN_MATCH\x12\x18\n\x10packet_timestamp\x18\x01 \x02(\x04\x12\x1d\n\x05stage\x18\x02 \x02(\x0e\x32\x0e.Referee.Stage\x12\x17\n\x0fstage_time_left\x18\x03 \x01(\x12\x12!\n\x07\x63ommand\x18\x04 \x02(\x0e\x32\x10.Referee.Command\x12\x17\n\x0f\x63ommand_counter\x18\x05 \x02(\r\x12\x19\n\x11\x63ommand_timestamp\x18\x06 \x02(\x04\x12!\n\x06yellow\x18\x07 \x02(\x0b\x32\x11.Referee.TeamInfo\x12\x1f\n\x04\x62lue\x18\x08 \x02(\x0b\x32\x11.Referee.TeamInfo\x12+\n\x13\x64\x65signated_position\x18\t \x01(\x0b\x32\x0e.Referee.Point\x12\"\n\x1a\x62lue_team_on_positive_half\x18\n \x01(\x08\x12&\n\x0cnext_command\x18\x0c \x01(\x0e\x32\x10.Referee.Command\x12\x1f\n\x0bgame_events\x18\x10 \x03(\x0b\x32\n.GameEvent\x12\x35\n\x14game_event_proposals\x18\x11 \x03(\x0b\x32\x17.GameEventProposalGroup\x12%\n\x1d\x63urrent_action_time_remaining\x18\x0f \x01(\x03\x12\x16\n\x0estatus_message\x18\x14 \x01(\t\x1a\xc4\x03\n\x08TeamInfo\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\r\n\x05score\x18\x02 \x02(\r\x12\x11\n\tred_cards\x18\x03 \x02(\r\x12\x1d\n\x11yellow_card_times\x18\x04 \x03(\rB\x02\x10\x01\x12\x14\n\x0cyellow_cards\x18\x05 \x02(\r\x12\x10\n\x08timeouts\x18\x06 \x02(\r\x12\x14\n\x0ctimeout_time\x18\x07 \x02(\r\x12\x12\n\ngoalkeeper\x18\x08 \x02(\r\x12\x14\n\x0c\x66oul_counter\x18\t \x01(\r\x12\x1f\n\x17\x62\x61ll_placement_failures\x18\n \x01(\r\x12\x16\n\x0e\x63\x61n_place_ball\x18\x0c \x01(\x08\x12\x18\n\x10max_allowed_bots\x18\r \x01(\r\x12\x1f\n\x17\x62ot_substitution_intent\x18\x0e \x01(\x08\x12\'\n\x1f\x62\x61ll_placement_failures_reached\x18\x0f \x01(\x08\x12 \n\x18\x62ot_substitution_allowed\x18\x10 \x01(\x08\x12\x1e\n\x16\x62ot_substitutions_left\x18\x11 \x01(\r\x12\"\n\x1a\x62ot_substitution_time_left\x18\x12 \x01(\r\x1a\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x02(\x02\x12\t\n\x01y\x18\x02 \x02(\x02\"\xd1\x02\n\x05Stage\x12\x19\n\x15NORMAL_FIRST_HALF_PRE\x10\x00\x12\x15\n\x11NORMAL_FIRST_HALF\x10\x01\x12\x14\n\x10NORMAL_HALF_TIME\x10\x02\x12\x1a\n\x16NORMAL_SECOND_HALF_PRE\x10\x03\x12\x16\n\x12NORMAL_SECOND_HALF\x10\x04\x12\x14\n\x10\x45XTRA_TIME_BREAK\x10\x05\x12\x18\n\x14\x45XTRA_FIRST_HALF_PRE\x10\x06\x12\x14\n\x10\x45XTRA_FIRST_HALF\x10\x07\x12\x13\n\x0f\x45XTRA_HALF_TIME\x10\x08\x12\x19\n\x15\x45XTRA_SECOND_HALF_PRE\x10\t\x12\x15\n\x11\x45XTRA_SECOND_HALF\x10\n\x12\x1a\n\x16PENALTY_SHOOTOUT_BREAK\x10\x0b\x12\x14\n\x10PENALTY_SHOOTOUT\x10\x0c\x12\r\n\tPOST_GAME\x10\r\"\x96\x03\n\x07\x43ommand\x12\x08\n\x04HALT\x10\x00\x12\x08\n\x04STOP\x10\x01\x12\x10\n\x0cNORMAL_START\x10\x02\x12\x0f\n\x0b\x46ORCE_START\x10\x03\x12\x1a\n\x16PREPARE_KICKOFF_YELLOW\x10\x04\x12\x18\n\x14PREPARE_KICKOFF_BLUE\x10\x05\x12\x1a\n\x16PREPARE_PENALTY_YELLOW\x10\x06\x12\x18\n\x14PREPARE_PENALTY_BLUE\x10\x07\x12\x16\n\x12\x44IRECT_FREE_YELLOW\x10\x08\x12\x14\n\x10\x44IRECT_FREE_BLUE\x10\t\x12\x1c\n\x14INDIRECT_FREE_YELLOW\x10\n\x1a\x02\x08\x01\x12\x1a\n\x12INDIRECT_FREE_BLUE\x10\x0b\x1a\x02\x08\x01\x12\x12\n\x0eTIMEOUT_YELLOW\x10\x0c\x12\x10\n\x0cTIMEOUT_BLUE\x10\r\x12\x13\n\x0bGOAL_YELLOW\x10\x0e\x1a\x02\x08\x01\x12\x11\n\tGOAL_BLUE\x10\x0f\x1a\x02\x08\x01\x12\x19\n\x15\x42\x41LL_PLACEMENT_YELLOW\x10\x10\x12\x17\n\x13\x42\x41LL_PLACEMENT_BLUE\x10\x11J\x04\x08\x0b\x10\x0cJ\x04\x08\r\x10\x0eJ\x04\x08\x0e\x10\x0f\"W\n\x16GameEventProposalGroup\x12\n\n\x02id\x18\x03 \x01(\t\x12\x1f\n\x0bgame_events\x18\x01 \x03(\x0b\x32\n.GameEvent\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x08*T\n\tMatchType\x12\x11\n\rUNKNOWN_MATCH\x10\x00\x12\x0f\n\x0bGROUP_PHASE\x10\x01\x12\x15\n\x11\x45LIMINATION_PHASE\x10\x02\x12\x0c\n\x08\x46RIENDLY\x10\x03\x42?Z=github.com/RoboCup-SSL/ssl-game-controller/internal/app/state' - , - dependencies=[ssl__gc__game__event__pb2.DESCRIPTOR,]) + name="ssl_gc_referee_message.proto", + package="", + syntax="proto2", + serialized_options=b"Z=github.com/RoboCup-SSL/ssl-game-controller/internal/app/state", + create_key=_descriptor._internal_create_key, + serialized_pb=b'\n\x1cssl_gc_referee_message.proto\x1a\x17ssl_gc_game_event.proto"\xb5\x0e\n\x07Referee\x12\x19\n\x11source_identifier\x18\x12 \x01(\t\x12-\n\nmatch_type\x18\x13 \x01(\x0e\x32\n.MatchType:\rUNKNOWN_MATCH\x12\x18\n\x10packet_timestamp\x18\x01 \x02(\x04\x12\x1d\n\x05stage\x18\x02 \x02(\x0e\x32\x0e.Referee.Stage\x12\x17\n\x0fstage_time_left\x18\x03 \x01(\x12\x12!\n\x07\x63ommand\x18\x04 \x02(\x0e\x32\x10.Referee.Command\x12\x17\n\x0f\x63ommand_counter\x18\x05 \x02(\r\x12\x19\n\x11\x63ommand_timestamp\x18\x06 \x02(\x04\x12!\n\x06yellow\x18\x07 \x02(\x0b\x32\x11.Referee.TeamInfo\x12\x1f\n\x04\x62lue\x18\x08 \x02(\x0b\x32\x11.Referee.TeamInfo\x12+\n\x13\x64\x65signated_position\x18\t \x01(\x0b\x32\x0e.Referee.Point\x12"\n\x1a\x62lue_team_on_positive_half\x18\n \x01(\x08\x12&\n\x0cnext_command\x18\x0c \x01(\x0e\x32\x10.Referee.Command\x12\x1f\n\x0bgame_events\x18\x10 \x03(\x0b\x32\n.GameEvent\x12\x35\n\x14game_event_proposals\x18\x11 \x03(\x0b\x32\x17.GameEventProposalGroup\x12%\n\x1d\x63urrent_action_time_remaining\x18\x0f \x01(\x03\x12\x16\n\x0estatus_message\x18\x14 \x01(\t\x1a\xc4\x03\n\x08TeamInfo\x12\x0c\n\x04name\x18\x01 \x02(\t\x12\r\n\x05score\x18\x02 \x02(\r\x12\x11\n\tred_cards\x18\x03 \x02(\r\x12\x1d\n\x11yellow_card_times\x18\x04 \x03(\rB\x02\x10\x01\x12\x14\n\x0cyellow_cards\x18\x05 \x02(\r\x12\x10\n\x08timeouts\x18\x06 \x02(\r\x12\x14\n\x0ctimeout_time\x18\x07 \x02(\r\x12\x12\n\ngoalkeeper\x18\x08 \x02(\r\x12\x14\n\x0c\x66oul_counter\x18\t \x01(\r\x12\x1f\n\x17\x62\x61ll_placement_failures\x18\n \x01(\r\x12\x16\n\x0e\x63\x61n_place_ball\x18\x0c \x01(\x08\x12\x18\n\x10max_allowed_bots\x18\r \x01(\r\x12\x1f\n\x17\x62ot_substitution_intent\x18\x0e \x01(\x08\x12\'\n\x1f\x62\x61ll_placement_failures_reached\x18\x0f \x01(\x08\x12 \n\x18\x62ot_substitution_allowed\x18\x10 \x01(\x08\x12\x1e\n\x16\x62ot_substitutions_left\x18\x11 \x01(\r\x12"\n\x1a\x62ot_substitution_time_left\x18\x12 \x01(\r\x1a\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x02(\x02\x12\t\n\x01y\x18\x02 \x02(\x02"\xd1\x02\n\x05Stage\x12\x19\n\x15NORMAL_FIRST_HALF_PRE\x10\x00\x12\x15\n\x11NORMAL_FIRST_HALF\x10\x01\x12\x14\n\x10NORMAL_HALF_TIME\x10\x02\x12\x1a\n\x16NORMAL_SECOND_HALF_PRE\x10\x03\x12\x16\n\x12NORMAL_SECOND_HALF\x10\x04\x12\x14\n\x10\x45XTRA_TIME_BREAK\x10\x05\x12\x18\n\x14\x45XTRA_FIRST_HALF_PRE\x10\x06\x12\x14\n\x10\x45XTRA_FIRST_HALF\x10\x07\x12\x13\n\x0f\x45XTRA_HALF_TIME\x10\x08\x12\x19\n\x15\x45XTRA_SECOND_HALF_PRE\x10\t\x12\x15\n\x11\x45XTRA_SECOND_HALF\x10\n\x12\x1a\n\x16PENALTY_SHOOTOUT_BREAK\x10\x0b\x12\x14\n\x10PENALTY_SHOOTOUT\x10\x0c\x12\r\n\tPOST_GAME\x10\r"\x96\x03\n\x07\x43ommand\x12\x08\n\x04HALT\x10\x00\x12\x08\n\x04STOP\x10\x01\x12\x10\n\x0cNORMAL_START\x10\x02\x12\x0f\n\x0b\x46ORCE_START\x10\x03\x12\x1a\n\x16PREPARE_KICKOFF_YELLOW\x10\x04\x12\x18\n\x14PREPARE_KICKOFF_BLUE\x10\x05\x12\x1a\n\x16PREPARE_PENALTY_YELLOW\x10\x06\x12\x18\n\x14PREPARE_PENALTY_BLUE\x10\x07\x12\x16\n\x12\x44IRECT_FREE_YELLOW\x10\x08\x12\x14\n\x10\x44IRECT_FREE_BLUE\x10\t\x12\x1c\n\x14INDIRECT_FREE_YELLOW\x10\n\x1a\x02\x08\x01\x12\x1a\n\x12INDIRECT_FREE_BLUE\x10\x0b\x1a\x02\x08\x01\x12\x12\n\x0eTIMEOUT_YELLOW\x10\x0c\x12\x10\n\x0cTIMEOUT_BLUE\x10\r\x12\x13\n\x0bGOAL_YELLOW\x10\x0e\x1a\x02\x08\x01\x12\x11\n\tGOAL_BLUE\x10\x0f\x1a\x02\x08\x01\x12\x19\n\x15\x42\x41LL_PLACEMENT_YELLOW\x10\x10\x12\x17\n\x13\x42\x41LL_PLACEMENT_BLUE\x10\x11J\x04\x08\x0b\x10\x0cJ\x04\x08\r\x10\x0eJ\x04\x08\x0e\x10\x0f"W\n\x16GameEventProposalGroup\x12\n\n\x02id\x18\x03 \x01(\t\x12\x1f\n\x0bgame_events\x18\x01 \x03(\x0b\x32\n.GameEvent\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x02 \x01(\x08*T\n\tMatchType\x12\x11\n\rUNKNOWN_MATCH\x10\x00\x12\x0f\n\x0bGROUP_PHASE\x10\x01\x12\x15\n\x11\x45LIMINATION_PHASE\x10\x02\x12\x0c\n\x08\x46RIENDLY\x10\x03\x42?Z=github.com/RoboCup-SSL/ssl-game-controller/internal/app/state', + dependencies=[ + ssl__gc__game__event__pb2.DESCRIPTOR, + ], +) _MATCHTYPE = _descriptor.EnumDescriptor( - name='MatchType', - full_name='MatchType', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='UNKNOWN_MATCH', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='GROUP_PHASE', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='ELIMINATION_PHASE', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='FRIENDLY', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=1994, - serialized_end=2078, + name="MatchType", + full_name="MatchType", + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name="UNKNOWN_MATCH", + index=0, + number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="GROUP_PHASE", + index=1, + number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="ELIMINATION_PHASE", + index=2, + number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="FRIENDLY", + index=3, + number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + ], + containing_type=None, + serialized_options=None, + serialized_start=1994, + serialized_end=2078, ) _sym_db.RegisterEnumDescriptor(_MATCHTYPE) @@ -68,620 +83,1192 @@ _REFEREE_STAGE = _descriptor.EnumDescriptor( - name='Stage', - full_name='Referee.Stage', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='NORMAL_FIRST_HALF_PRE', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='NORMAL_FIRST_HALF', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='NORMAL_HALF_TIME', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='NORMAL_SECOND_HALF_PRE', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='NORMAL_SECOND_HALF', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EXTRA_TIME_BREAK', index=5, number=5, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EXTRA_FIRST_HALF_PRE', index=6, number=6, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EXTRA_FIRST_HALF', index=7, number=7, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EXTRA_HALF_TIME', index=8, number=8, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EXTRA_SECOND_HALF_PRE', index=9, number=9, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='EXTRA_SECOND_HALF', index=10, number=10, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PENALTY_SHOOTOUT_BREAK', index=11, number=11, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PENALTY_SHOOTOUT', index=12, number=12, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='POST_GAME', index=13, number=13, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=1139, - serialized_end=1476, + name="Stage", + full_name="Referee.Stage", + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name="NORMAL_FIRST_HALF_PRE", + index=0, + number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="NORMAL_FIRST_HALF", + index=1, + number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="NORMAL_HALF_TIME", + index=2, + number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="NORMAL_SECOND_HALF_PRE", + index=3, + number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="NORMAL_SECOND_HALF", + index=4, + number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="EXTRA_TIME_BREAK", + index=5, + number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="EXTRA_FIRST_HALF_PRE", + index=6, + number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="EXTRA_FIRST_HALF", + index=7, + number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="EXTRA_HALF_TIME", + index=8, + number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="EXTRA_SECOND_HALF_PRE", + index=9, + number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="EXTRA_SECOND_HALF", + index=10, + number=10, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="PENALTY_SHOOTOUT_BREAK", + index=11, + number=11, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="PENALTY_SHOOTOUT", + index=12, + number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="POST_GAME", + index=13, + number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + ], + containing_type=None, + serialized_options=None, + serialized_start=1139, + serialized_end=1476, ) _sym_db.RegisterEnumDescriptor(_REFEREE_STAGE) _REFEREE_COMMAND = _descriptor.EnumDescriptor( - name='Command', - full_name='Referee.Command', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='HALT', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='STOP', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='NORMAL_START', index=2, number=2, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='FORCE_START', index=3, number=3, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PREPARE_KICKOFF_YELLOW', index=4, number=4, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PREPARE_KICKOFF_BLUE', index=5, number=5, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PREPARE_PENALTY_YELLOW', index=6, number=6, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='PREPARE_PENALTY_BLUE', index=7, number=7, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DIRECT_FREE_YELLOW', index=8, number=8, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='DIRECT_FREE_BLUE', index=9, number=9, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='INDIRECT_FREE_YELLOW', index=10, number=10, - serialized_options=b'\010\001', - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='INDIRECT_FREE_BLUE', index=11, number=11, - serialized_options=b'\010\001', - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='TIMEOUT_YELLOW', index=12, number=12, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='TIMEOUT_BLUE', index=13, number=13, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='GOAL_YELLOW', index=14, number=14, - serialized_options=b'\010\001', - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='GOAL_BLUE', index=15, number=15, - serialized_options=b'\010\001', - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='BALL_PLACEMENT_YELLOW', index=16, number=16, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='BALL_PLACEMENT_BLUE', index=17, number=17, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=1479, - serialized_end=1885, + name="Command", + full_name="Referee.Command", + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name="HALT", + index=0, + number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="STOP", + index=1, + number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="NORMAL_START", + index=2, + number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="FORCE_START", + index=3, + number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="PREPARE_KICKOFF_YELLOW", + index=4, + number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="PREPARE_KICKOFF_BLUE", + index=5, + number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="PREPARE_PENALTY_YELLOW", + index=6, + number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="PREPARE_PENALTY_BLUE", + index=7, + number=7, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="DIRECT_FREE_YELLOW", + index=8, + number=8, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="DIRECT_FREE_BLUE", + index=9, + number=9, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="INDIRECT_FREE_YELLOW", + index=10, + number=10, + serialized_options=b"\010\001", + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="INDIRECT_FREE_BLUE", + index=11, + number=11, + serialized_options=b"\010\001", + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="TIMEOUT_YELLOW", + index=12, + number=12, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="TIMEOUT_BLUE", + index=13, + number=13, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="GOAL_YELLOW", + index=14, + number=14, + serialized_options=b"\010\001", + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="GOAL_BLUE", + index=15, + number=15, + serialized_options=b"\010\001", + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="BALL_PLACEMENT_YELLOW", + index=16, + number=16, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + _descriptor.EnumValueDescriptor( + name="BALL_PLACEMENT_BLUE", + index=17, + number=17, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key, + ), + ], + containing_type=None, + serialized_options=None, + serialized_start=1479, + serialized_end=1885, ) _sym_db.RegisterEnumDescriptor(_REFEREE_COMMAND) _REFEREE_TEAMINFO = _descriptor.Descriptor( - name='TeamInfo', - full_name='Referee.TeamInfo', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='Referee.TeamInfo.name', index=0, - number=1, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='score', full_name='Referee.TeamInfo.score', index=1, - number=2, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='red_cards', full_name='Referee.TeamInfo.red_cards', index=2, - number=3, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='yellow_card_times', full_name='Referee.TeamInfo.yellow_card_times', index=3, - number=4, type=13, cpp_type=3, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=b'\020\001', file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='yellow_cards', full_name='Referee.TeamInfo.yellow_cards', index=4, - number=5, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='timeouts', full_name='Referee.TeamInfo.timeouts', index=5, - number=6, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='timeout_time', full_name='Referee.TeamInfo.timeout_time', index=6, - number=7, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='goalkeeper', full_name='Referee.TeamInfo.goalkeeper', index=7, - number=8, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='foul_counter', full_name='Referee.TeamInfo.foul_counter', index=8, - number=9, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ball_placement_failures', full_name='Referee.TeamInfo.ball_placement_failures', index=9, - number=10, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='can_place_ball', full_name='Referee.TeamInfo.can_place_ball', index=10, - number=12, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='max_allowed_bots', full_name='Referee.TeamInfo.max_allowed_bots', index=11, - number=13, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='bot_substitution_intent', full_name='Referee.TeamInfo.bot_substitution_intent', index=12, - number=14, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='ball_placement_failures_reached', full_name='Referee.TeamInfo.ball_placement_failures_reached', index=13, - number=15, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='bot_substitution_allowed', full_name='Referee.TeamInfo.bot_substitution_allowed', index=14, - number=16, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='bot_substitutions_left', full_name='Referee.TeamInfo.bot_substitutions_left', index=15, - number=17, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='bot_substitution_time_left', full_name='Referee.TeamInfo.bot_substitution_time_left', index=16, - number=18, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=653, - serialized_end=1105, + name="TeamInfo", + full_name="Referee.TeamInfo", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="name", + full_name="Referee.TeamInfo.name", + index=0, + number=1, + type=9, + cpp_type=9, + label=2, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="score", + full_name="Referee.TeamInfo.score", + index=1, + number=2, + type=13, + cpp_type=3, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="red_cards", + full_name="Referee.TeamInfo.red_cards", + index=2, + number=3, + type=13, + cpp_type=3, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="yellow_card_times", + full_name="Referee.TeamInfo.yellow_card_times", + index=3, + number=4, + type=13, + cpp_type=3, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=b"\020\001", + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="yellow_cards", + full_name="Referee.TeamInfo.yellow_cards", + index=4, + number=5, + type=13, + cpp_type=3, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="timeouts", + full_name="Referee.TeamInfo.timeouts", + index=5, + number=6, + type=13, + cpp_type=3, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="timeout_time", + full_name="Referee.TeamInfo.timeout_time", + index=6, + number=7, + type=13, + cpp_type=3, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="goalkeeper", + full_name="Referee.TeamInfo.goalkeeper", + index=7, + number=8, + type=13, + cpp_type=3, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="foul_counter", + full_name="Referee.TeamInfo.foul_counter", + index=8, + number=9, + type=13, + cpp_type=3, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ball_placement_failures", + full_name="Referee.TeamInfo.ball_placement_failures", + index=9, + number=10, + type=13, + cpp_type=3, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="can_place_ball", + full_name="Referee.TeamInfo.can_place_ball", + index=10, + number=12, + type=8, + cpp_type=7, + label=1, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="max_allowed_bots", + full_name="Referee.TeamInfo.max_allowed_bots", + index=11, + number=13, + type=13, + cpp_type=3, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="bot_substitution_intent", + full_name="Referee.TeamInfo.bot_substitution_intent", + index=12, + number=14, + type=8, + cpp_type=7, + label=1, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="ball_placement_failures_reached", + full_name="Referee.TeamInfo.ball_placement_failures_reached", + index=13, + number=15, + type=8, + cpp_type=7, + label=1, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="bot_substitution_allowed", + full_name="Referee.TeamInfo.bot_substitution_allowed", + index=14, + number=16, + type=8, + cpp_type=7, + label=1, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="bot_substitutions_left", + full_name="Referee.TeamInfo.bot_substitutions_left", + index=15, + number=17, + type=13, + cpp_type=3, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="bot_substitution_time_left", + full_name="Referee.TeamInfo.bot_substitution_time_left", + index=16, + number=18, + type=13, + cpp_type=3, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=653, + serialized_end=1105, ) _REFEREE_POINT = _descriptor.Descriptor( - name='Point', - full_name='Referee.Point', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='x', full_name='Referee.Point.x', index=0, - number=1, type=2, cpp_type=6, label=2, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='y', full_name='Referee.Point.y', index=1, - number=2, type=2, cpp_type=6, label=2, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1107, - serialized_end=1136, + name="Point", + full_name="Referee.Point", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="x", + full_name="Referee.Point.x", + index=0, + number=1, + type=2, + cpp_type=6, + label=2, + has_default_value=False, + default_value=float(0), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="y", + full_name="Referee.Point.y", + index=1, + number=2, + type=2, + cpp_type=6, + label=2, + has_default_value=False, + default_value=float(0), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1107, + serialized_end=1136, ) _REFEREE = _descriptor.Descriptor( - name='Referee', - full_name='Referee', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='source_identifier', full_name='Referee.source_identifier', index=0, - number=18, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='match_type', full_name='Referee.match_type', index=1, - number=19, type=14, cpp_type=8, label=1, - has_default_value=True, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='packet_timestamp', full_name='Referee.packet_timestamp', index=2, - number=1, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='stage', full_name='Referee.stage', index=3, - number=2, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='stage_time_left', full_name='Referee.stage_time_left', index=4, - number=3, type=18, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='command', full_name='Referee.command', index=5, - number=4, type=14, cpp_type=8, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='command_counter', full_name='Referee.command_counter', index=6, - number=5, type=13, cpp_type=3, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='command_timestamp', full_name='Referee.command_timestamp', index=7, - number=6, type=4, cpp_type=4, label=2, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='yellow', full_name='Referee.yellow', index=8, - number=7, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='blue', full_name='Referee.blue', index=9, - number=8, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='designated_position', full_name='Referee.designated_position', index=10, - number=9, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='blue_team_on_positive_half', full_name='Referee.blue_team_on_positive_half', index=11, - number=10, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='next_command', full_name='Referee.next_command', index=12, - number=12, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='game_events', full_name='Referee.game_events', index=13, - number=16, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='game_event_proposals', full_name='Referee.game_event_proposals', index=14, - number=17, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='current_action_time_remaining', full_name='Referee.current_action_time_remaining', index=15, - number=15, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='status_message', full_name='Referee.status_message', index=16, - number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_REFEREE_TEAMINFO, _REFEREE_POINT, ], - enum_types=[ - _REFEREE_STAGE, - _REFEREE_COMMAND, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=58, - serialized_end=1903, + name="Referee", + full_name="Referee", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="source_identifier", + full_name="Referee.source_identifier", + index=0, + number=18, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="match_type", + full_name="Referee.match_type", + index=1, + number=19, + type=14, + cpp_type=8, + label=1, + has_default_value=True, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="packet_timestamp", + full_name="Referee.packet_timestamp", + index=2, + number=1, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="stage", + full_name="Referee.stage", + index=3, + number=2, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="stage_time_left", + full_name="Referee.stage_time_left", + index=4, + number=3, + type=18, + cpp_type=2, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="command", + full_name="Referee.command", + index=5, + number=4, + type=14, + cpp_type=8, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="command_counter", + full_name="Referee.command_counter", + index=6, + number=5, + type=13, + cpp_type=3, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="command_timestamp", + full_name="Referee.command_timestamp", + index=7, + number=6, + type=4, + cpp_type=4, + label=2, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="yellow", + full_name="Referee.yellow", + index=8, + number=7, + type=11, + cpp_type=10, + label=2, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="blue", + full_name="Referee.blue", + index=9, + number=8, + type=11, + cpp_type=10, + label=2, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="designated_position", + full_name="Referee.designated_position", + index=10, + number=9, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="blue_team_on_positive_half", + full_name="Referee.blue_team_on_positive_half", + index=11, + number=10, + type=8, + cpp_type=7, + label=1, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="next_command", + full_name="Referee.next_command", + index=12, + number=12, + type=14, + cpp_type=8, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="game_events", + full_name="Referee.game_events", + index=13, + number=16, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="game_event_proposals", + full_name="Referee.game_event_proposals", + index=14, + number=17, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="current_action_time_remaining", + full_name="Referee.current_action_time_remaining", + index=15, + number=15, + type=3, + cpp_type=2, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="status_message", + full_name="Referee.status_message", + index=16, + number=20, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[ + _REFEREE_TEAMINFO, + _REFEREE_POINT, + ], + enum_types=[ + _REFEREE_STAGE, + _REFEREE_COMMAND, + ], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=58, + serialized_end=1903, ) _GAMEEVENTPROPOSALGROUP = _descriptor.Descriptor( - name='GameEventProposalGroup', - full_name='GameEventProposalGroup', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='id', full_name='GameEventProposalGroup.id', index=0, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='game_events', full_name='GameEventProposalGroup.game_events', index=1, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='accepted', full_name='GameEventProposalGroup.accepted', index=2, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1905, - serialized_end=1992, + name="GameEventProposalGroup", + full_name="GameEventProposalGroup", + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name="id", + full_name="GameEventProposalGroup.id", + index=0, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=b"".decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="game_events", + full_name="GameEventProposalGroup.game_events", + index=1, + number=1, + type=11, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + _descriptor.FieldDescriptor( + name="accepted", + full_name="GameEventProposalGroup.accepted", + index=2, + number=2, + type=8, + cpp_type=7, + label=1, + has_default_value=False, + default_value=False, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + serialized_options=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + serialized_options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=1905, + serialized_end=1992, ) _REFEREE_TEAMINFO.containing_type = _REFEREE _REFEREE_POINT.containing_type = _REFEREE -_REFEREE.fields_by_name['match_type'].enum_type = _MATCHTYPE -_REFEREE.fields_by_name['stage'].enum_type = _REFEREE_STAGE -_REFEREE.fields_by_name['command'].enum_type = _REFEREE_COMMAND -_REFEREE.fields_by_name['yellow'].message_type = _REFEREE_TEAMINFO -_REFEREE.fields_by_name['blue'].message_type = _REFEREE_TEAMINFO -_REFEREE.fields_by_name['designated_position'].message_type = _REFEREE_POINT -_REFEREE.fields_by_name['next_command'].enum_type = _REFEREE_COMMAND -_REFEREE.fields_by_name['game_events'].message_type = ssl__gc__game__event__pb2._GAMEEVENT -_REFEREE.fields_by_name['game_event_proposals'].message_type = _GAMEEVENTPROPOSALGROUP +_REFEREE.fields_by_name["match_type"].enum_type = _MATCHTYPE +_REFEREE.fields_by_name["stage"].enum_type = _REFEREE_STAGE +_REFEREE.fields_by_name["command"].enum_type = _REFEREE_COMMAND +_REFEREE.fields_by_name["yellow"].message_type = _REFEREE_TEAMINFO +_REFEREE.fields_by_name["blue"].message_type = _REFEREE_TEAMINFO +_REFEREE.fields_by_name["designated_position"].message_type = _REFEREE_POINT +_REFEREE.fields_by_name["next_command"].enum_type = _REFEREE_COMMAND +_REFEREE.fields_by_name["game_events"].message_type = ( + ssl__gc__game__event__pb2._GAMEEVENT +) +_REFEREE.fields_by_name["game_event_proposals"].message_type = _GAMEEVENTPROPOSALGROUP _REFEREE_STAGE.containing_type = _REFEREE _REFEREE_COMMAND.containing_type = _REFEREE -_GAMEEVENTPROPOSALGROUP.fields_by_name['game_events'].message_type = ssl__gc__game__event__pb2._GAMEEVENT -DESCRIPTOR.message_types_by_name['Referee'] = _REFEREE -DESCRIPTOR.message_types_by_name['GameEventProposalGroup'] = _GAMEEVENTPROPOSALGROUP -DESCRIPTOR.enum_types_by_name['MatchType'] = _MATCHTYPE +_GAMEEVENTPROPOSALGROUP.fields_by_name["game_events"].message_type = ( + ssl__gc__game__event__pb2._GAMEEVENT +) +DESCRIPTOR.message_types_by_name["Referee"] = _REFEREE +DESCRIPTOR.message_types_by_name["GameEventProposalGroup"] = _GAMEEVENTPROPOSALGROUP +DESCRIPTOR.enum_types_by_name["MatchType"] = _MATCHTYPE _sym_db.RegisterFileDescriptor(DESCRIPTOR) -Referee = _reflection.GeneratedProtocolMessageType('Referee', (_message.Message,), { - - 'TeamInfo' : _reflection.GeneratedProtocolMessageType('TeamInfo', (_message.Message,), { - 'DESCRIPTOR' : _REFEREE_TEAMINFO, - '__module__' : 'ssl_gc_referee_message_pb2' - # @@protoc_insertion_point(class_scope:Referee.TeamInfo) - }) - , - - 'Point' : _reflection.GeneratedProtocolMessageType('Point', (_message.Message,), { - 'DESCRIPTOR' : _REFEREE_POINT, - '__module__' : 'ssl_gc_referee_message_pb2' - # @@protoc_insertion_point(class_scope:Referee.Point) - }) - , - 'DESCRIPTOR' : _REFEREE, - '__module__' : 'ssl_gc_referee_message_pb2' - # @@protoc_insertion_point(class_scope:Referee) - }) +Referee = _reflection.GeneratedProtocolMessageType( + "Referee", + (_message.Message,), + { + "TeamInfo": _reflection.GeneratedProtocolMessageType( + "TeamInfo", + (_message.Message,), + { + "DESCRIPTOR": _REFEREE_TEAMINFO, + "__module__": "ssl_gc_referee_message_pb2", + # @@protoc_insertion_point(class_scope:Referee.TeamInfo) + }, + ), + "Point": _reflection.GeneratedProtocolMessageType( + "Point", + (_message.Message,), + { + "DESCRIPTOR": _REFEREE_POINT, + "__module__": "ssl_gc_referee_message_pb2", + # @@protoc_insertion_point(class_scope:Referee.Point) + }, + ), + "DESCRIPTOR": _REFEREE, + "__module__": "ssl_gc_referee_message_pb2", + # @@protoc_insertion_point(class_scope:Referee) + }, +) _sym_db.RegisterMessage(Referee) _sym_db.RegisterMessage(Referee.TeamInfo) _sym_db.RegisterMessage(Referee.Point) -GameEventProposalGroup = _reflection.GeneratedProtocolMessageType('GameEventProposalGroup', (_message.Message,), { - 'DESCRIPTOR' : _GAMEEVENTPROPOSALGROUP, - '__module__' : 'ssl_gc_referee_message_pb2' - # @@protoc_insertion_point(class_scope:GameEventProposalGroup) - }) +GameEventProposalGroup = _reflection.GeneratedProtocolMessageType( + "GameEventProposalGroup", + (_message.Message,), + { + "DESCRIPTOR": _GAMEEVENTPROPOSALGROUP, + "__module__": "ssl_gc_referee_message_pb2", + # @@protoc_insertion_point(class_scope:GameEventProposalGroup) + }, +) _sym_db.RegisterMessage(GameEventProposalGroup) DESCRIPTOR._options = None -_REFEREE_TEAMINFO.fields_by_name['yellow_card_times']._options = None +_REFEREE_TEAMINFO.fields_by_name["yellow_card_times"]._options = None _REFEREE_COMMAND.values_by_name["INDIRECT_FREE_YELLOW"]._options = None _REFEREE_COMMAND.values_by_name["INDIRECT_FREE_BLUE"]._options = None _REFEREE_COMMAND.values_by_name["GOAL_YELLOW"]._options = None