예제 #1
0
          self.queue.get()
          if bytetoval(adj.msg[1]) == 90 and bytetoval(adj.msg[0]) == ROVER_LEFT:
            self.changeAngle(-90)
          elif bytetoval(adj.msg[1]) == 90 and bytetoval(adj.msg[0]) == ROVER_RIGHT:
            self.changeAngle(90)
          self.queue.task_done()
    # game over
    print("Test Ended")
    self.client.send(InternalMessage(MY_ROLE, END_GAME, b'0'))
    self.client.send(InternalMessage(MY_ROLE, DEBUG_MSG, b'TEST END'))
    self.running = False



if __name__ == "__main__":
  client = Client(TARGET_IP, TARGET_PORT, MY_ROLE)
  client.connect()
  rover = Rover(client)

  while 1:
    msg = client.get()
    if msg.msgtype == OBJECT_POS:
      obj = decipherMessage(msg.msg)
      if obj[0] == 163:
        # print("Message Received: {} - Object: {} xPos: {}, yPos: {}, angle: {}, length: {}, width: {}".format(VAL_TO_MSG[msg.msgtype], *obj))
        rover.addPos(obj[1], obj[2], obj[3])

    elif msg.msgtype == PING:
      client.send(InternalMessage(MY_ROLE, PONG, b'1'))

    elif msg.msgtype == ROVER_MOVE:
예제 #2
0
      elif keyin[0] == "r":
        try:
          msg = roverMove(ROVER_RIGHT, int(keyin[1:]), MY_ROLE)
        except (ValueError, IndexError):
          msg = roverMove(ROVER_RIGHT, 0, MY_ROLE)
      elif keyin == "s":
        msg = roverMove(ROVER_STOP, 0, MY_ROLE)
      else:
        msg = InternalMessage(MY_ROLE, DEBUG_MSG, keyin.encode())
      if msg is not None:
        sendMsg(msg, client)
  except KeyboardInterrupt:
    pass

if __name__ == "__main__":
  client = Client(TARGET_IP, TARGET_PORT, MY_ROLE)
  client.connect()
  cmdThread = Thread(target=cmdInput, args=[client], daemon=True)
  cmdThread.start()
  while cmdThread.is_alive():
    try:
      msg = client.queue.get(timeout=1)
      if msg.msgtype == CLIENT_ROLE:
        print("Message Received: {} - {}".format(VAL_TO_MSG[msg.msgtype], VAL_TO_ROLE[msg.msg[0]]))
      elif msg.msgtype == ROVER_MOVE:
        print("Message Received: {} - {}, {}".format(VAL_TO_MSG[msg.msgtype], VAL_TO_ROV[msg.msg[0]], msg.msg[1]))
      else:
        print("Message Received: {} - {}".format(VAL_TO_MSG[msg.msgtype], msg.msg))
    except Empty:
      pass