Использование UDP для управления роботом через python
Я работаю над роботом, используя raspberrypi. Я искал библиотеку, которая могла бы помочь мне с сетевыми вещами, такими как пакеты и ко. Поэтому я использую этот код для выбора команд, которые я получаю:
def selectPacket(x):
if x == '00':
return '00'
elif x == "01":
Date = datetime.now()
return str(Date.microsecond)
elif x == "02":
return '98'
elif x == "03":
return '98'
elif x == "04":
return '98'
elif x == "05":
return '98'
else:
return '99'
Я уверен, что есть библиотека для быстрых серверов и клиентов, использующих python, я хочу использовать UDP, потому что соединение, которое я буду использовать, будет очень нестабильным, поэтому tcp не обсуждается.
1 ответ
Поскольку управление роботом зависит от сложных частей, таких как, сколько у них ног, сколько у них суставов и т. Д., Я думаю, что вам не нужна библиотека. И фаза соединения на python слишком проста, чтобы создать библиотеку.
Вот простой UDP-код клиента / сервера:
UDP-сервер
import socket, traceback
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind(('', 5000))
print "Listening for broadcasts..."
while 1:
try:
message, address = s.recvfrom(8192)
print "Got message from %s: %s" % (address, message)
s.sendto("Hello from server", address)
print "Listening for broadcasts..."
except (KeyboardInterrupt, SystemExit):
raise
except:
traceback.print_exc()
UDP-клиент
import socket, sys
dest = ('<broadcast>', 5000)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto("Hello from client", dest)
print "Listening for replies."
while 1:
(buf, address) = s.recvfrom(2048)
if not len(buf):
break
print "Received from %s: %s" % (address, buf)
s.sendto("echo", dest)
Кроме того, если у вас сложная логика и вам нужно разделиться на несколько частей, которые могут быть связью, управлением или вводом / выводом, обратитесь к программированию на основе событий: http://etutorials.org/Programming/Python+tutorial/Part+IV+Network + и + Веб + Программирование / Глава + 19. + Сокеты + и + На стороне сервера + Сеть + Протокол + Модули / 19.3 + Управляемые событиями + Сокеты + Программы /)