def handle_send_method(self, packet_json): self.log_event("send") if self.role == 'src': self.player.result.src_transmit_packets += 1 payload = True else: self.player.result.dst_transmit_packets += 1 payload = False data = RadioPacket.from_json(packet_json).data return self.radio.send(data, payload)
def send(self, data=None): if data is None: data = '' if len(data) > self.get_packet_size(): raise RadioError("packet too long") packet_json = RadioPacket(data).to_json() self._client.send(packet_json) if self._client.should_finish(): raise StopGame
def recv_loop(self, timeout=1.): # some numpy types are not directly serializable to JSON timeout = float(timeout) while True: packet_json = self._client.recv(timeout=timeout) if packet_json is None: break packet = RadioPacket.from_json(packet_json) self._safe_call(self.recv, packet) yield packet if self._client.should_finish(): raise StopGame