Mercurial > circuitpython-spiderwing
view python/server.py @ 4:48cead9d49b5 draft default tip
Add a license
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sun, 23 Jul 2017 20:25:33 +0200 |
| parents | cf2cd5a35d24 |
| children |
line wrap: on
line source
import socket import math from robot import Robot from gait import Creep def main(): robot = Robot() gait = Creep(robot) run = gait.run() sock = socket.socket() addr = socket.getaddrinfo("0.0.0.0", 1010)[0][4] sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.setblocking(False) sock.bind(addr) sock.listen(1) try: while True: try: client, addr = sock.accept() except OSError: next(run) else: try: client.setblocking(False) while True: command = client.read(1) if command == b' ': gait.dx = 0 gait.dy = 0 gait.rotation = 0 elif command == b'w': gait.dy = min(3, gait.dy + 0.25) elif command == b's': gait.dy = max(-3, gait.dy - 0.25) elif command == b'a': gait.rotation = min(math.pi/90, gait.rotation + math.pi/360) elif command == b'd': gait.rotation = max(-math.pi/90, gait.rotation - math.pi/360) next(run) finally: client.close() finally: sock.close()
