-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKinectManager.py
More file actions
73 lines (65 loc) · 2.52 KB
/
KinectManager.py
File metadata and controls
73 lines (65 loc) · 2.52 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from IPC import *
from nitepy import *
import threading
import thread
import sys
lock = threading.Lock()
lock.acquire()
rightWave=False
leftWave =False
lock.release()
def detect_motion():
global rightWave
global leftWave
track = lib.Tracker_new()
user = 0
lstage = "none"
rstage = "none"
while True:
lib.loop(track)
if lib.getUsersCount(track)>0:#for user in range(0,1):#lib.getUsersCount(track)):
if lstage=="none":
if lib.getUserSkeletonL_HandX(track,user)-lib.getUserSkeletonL_ElbowX(track,user)>100:
if lib.getUserSkeletonL_HandY(track,user)-lib.getUserSkeletonL_ElbowY(track,user)>0:
lstage = "ready"
if lstage=="ready":
if lib.getUserSkeletonL_ElbowX(track,user)-lib.getUserSkeletonL_HandX(track,user)>100:
if lib.getUserSkeletonL_HandY(track,user)-lib.getUserSkeletonL_ElbowY(track,user)>0:
lstage = "none"
lock.acquire()
leftWave = True
sys.stderr.write("got left wave\n")
lock.release()
if lib.getUserSkeletonL_HandY(track,user)-lib.getUserSkeletonL_ElbowY(track,user)<0:
lstage = "none"
if rstage=="none":
if lib.getUserSkeletonR_HandX(track,user)-lib.getUserSkeletonR_ElbowX(track,user)<-100:
if lib.getUserSkeletonR_HandY(track,user)-lib.getUserSkeletonR_ElbowY(track,user)>0:
rstage = "ready"
if rstage=="ready":
if lib.getUserSkeletonR_ElbowX(track,user)-lib.getUserSkeletonR_HandX(track,user)<-100:
if lib.getUserSkeletonR_HandY(track,user)-lib.getUserSkeletonR_ElbowY(track,user)>0:
rstage = "none"
lock.acquire()
rightWave = True
sys.stderr.write("got right wave\n")
lock.release()
if lib.getUserSkeletonR_HandY(track,user)-lib.getUserSkeletonR_ElbowY(track,user)<0:
rstage = "none"
def handleLine():
sys.stderr.write(p.line)
thread.start_new_thread(detect_motion,())
p = process(True,"")
p.setOnReadLine(handleLine)
InitSync()
while True:
p.tryReadLine()
lock.acquire()
if rightWave:
rightWave=False
p.write("rightWave\n")
if leftWave:
leftWave=False
p.write("leftWave\n")
lock.release()
Sync()