-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontrol2.py
58 lines (55 loc) · 1.67 KB
/
control2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import pygame
import messages
sender = messages.Sender()
deltas = {}
takeoff = 0
record = 0
def test():
event = pygame.event.poll()
if event.type != pygame.NOEVENT:
def deltakey(pressed, a):
if a not in deltas:
deltas[a] = 0
k = pressed[a]
if k != deltas[a]:
deltas[a] = k
return k
else:
return None
pressed = pygame.key.get_pressed()
space = deltakey(pressed, pygame.K_SPACE)
e = deltakey(pressed, pygame.K_e)
v = deltakey(pressed, pygame.K_v)
n = deltakey(pressed, pygame.K_n)
c = deltakey(pressed, pygame.K_c)
m = deltakey(pressed, pygame.K_m)
if space != None:
if space == 1:
global takeoff
takeoff = 1 - takeoff
sender.takeoff(takeoff)
if e != None:
sender.emergency(e)
if c == 1:
sender.resettrim()
print "Resetting trim"
if n == 1:
sender.confignavdata()
if v != None:
if v == 1:
global record
record = 1 - record
sender.recordvideo(record)
if m == 1:
sender.magcalib()
print "Calib mag"
ud = pressed[pygame.K_UP] - pressed[pygame.K_DOWN]
lr = pressed[pygame.K_LEFT] - pressed[pygame.K_RIGHT]
rot = pressed[pygame.K_a]-pressed[pygame.K_d]
alt = pressed[pygame.K_w]-pressed[pygame.K_s]
sender.command(ud, lr, rot, alt)
else:
sender.update()
pygame.init()
window = pygame.display.set_mode((100,100))
messages.start(test, 30)