Я строю робота и мне нужно дистанционно управлять им. Я решил сделать это с помощью Zeromq. Со своего компьютера (сервера) я отправлю координаты x и y роботу (клиенту). Поэтому мне нужно, чтобы сообщение было отправлено в виде чисел, чтобы я мог заставить робота перейти к координатам. Как мне это сделать? Я очень новичок в программировании (как вы, вероятно, можете сказать), в настоящее время у меня есть этот код:
клиент
import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://127.0.0.1:5555")
while True:
socket.send_string("Robot Ready")
coordinates= socket.recv_string()
print("From server",coordinates)
#And here i want to use the received coordinates to give the robot commands#
Сервер
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://127.0.0.1:5555")
while True:
msg = socket.recv()
print(msg)
smsg = input("Enter coordinates : ")
socket.send_string(smsg)`
Я обновил свой код до этого (он работает, но я чувствую, что он не нужен долго):
client2
import zmq
context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://127.0.0.1:5555")
while True:
socket.send_string("AGV Ready")
x_start = float(socket.recv())
socket.send_string("X-coordinate registred")
y_start = float(socket.recv())
socket.send_string('Y-coordinate registred')
x_end = float(socket.recv())
socket.send_string("X-coordinate registred")
y_end = float(socket.recv())
print("Start position: ",x_start, y_start)
print("End position: ", x_end, y_end)
server2
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://127.0.0.1:5555")
while True:
msg = socket.recv()
print(msg)
smsg = input("Pick up product at x,y : ")
smsg_new = smsg.split(',')
socket.send_string(smsg_new[0])
socket.recv()
socket.send_string(smsg_new[1])
socket.recv()
smsg2 = input("Leave product at x,y : ")
smsg2_new = smsg2.split(',')
socket.send_string(smsg2_new[0])
socket.recv()
socket.send_string(smsg2_new[1])