annotate python/server.py @ 19:455a46355e72 default tip

Add freq to i2c init
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Thu, 14 Apr 2016 00:05:31 +0200
parents d323ad02e8d1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
1 import socket
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
2 import math
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
3
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
4 from robot import Robot
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
5 from gait import Creep
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
6
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
7
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
8 def main():
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
9 sock = socket.socket()
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
10 addr = socket.getaddrinfo("0.0.0.0", 1010)[0][4]
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
11 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
12 sock.setblocking(False)
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
13 sock.bind(addr)
17
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
14 sock.listen(1)
14
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
15
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
16 robot = Robot()
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
17 gait = Creep(robot)
17
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
18 run = gait.run()
14
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
19
3b9ed9cd63ef Add simple client and server
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents:
diff changeset
20 while True:
17
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
21 try:
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
22 client, addr = sock.accept()
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
23 except OSError:
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
24 next(run)
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
25 else:
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
26 client.setblocking(False)
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
27 while True:
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
28 command = client.read(1)
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
29 if command == b' ':
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
30 gait.dx = 0
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
31 gait.dy = 0
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
32 gait.rotation = 0
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
33 elif command == b'w':
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
34 gait.dy = min(3, gait.dy + 0.25)
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
35 elif command == b's':
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
36 gait.dy = max(-3, gait.dy - 0.25)
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
37 elif command == b'a':
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
38 gait.rotation = min(math.pi/90, gait.rotation + math.pi/360)
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
39 elif command == b'd':
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
40 gait.rotation = max(-math.pi/90, gait.rotation - math.pi/360)
d323ad02e8d1 Don't wait for the connection
Radomir Dopieralski <sheep-devel@sheep.art.pl>
parents: 14
diff changeset
41 next(run)