forked from Telos4/RoboRally
27 lines
900 B
Python
27 lines
900 B
Python
import socket
|
|
import json
|
|
|
|
HOST, PORT = "localhost", 42424
|
|
|
|
def move_grid(x, y, orientation, dimx, dimy):
|
|
print("move grid")
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
sock.connect((HOST, PORT))
|
|
payload = json.dumps({"x": x, "y": y, "dimx": dimx, "dimy": dimy, "orientation": orientation})
|
|
sock.sendall(f"move_grid_blocking;{payload}\n".encode())
|
|
target_reached = False
|
|
try:
|
|
while not target_reached:
|
|
reply = sock.recv(1024)
|
|
if reply == b'':
|
|
raise RuntimeError
|
|
#print("got reply: ", reply)
|
|
target_reached = reply.decode() == 'ack\n'
|
|
print("target_reached = ", target_reached)
|
|
except RuntimeError:
|
|
# try again
|
|
print("controlling failed -> trying again")
|
|
move_grid(x, y, orientation, dimx, dimy)
|
|
|
|
if __name__ == "__main__":
|
|
move_grid(3,2,'v', 7, 4) |