-
Notifications
You must be signed in to change notification settings - Fork 0
/
basicGestures.myo
129 lines (101 loc) · 2.45 KB
/
basicGestures.myo
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
scriptId = 'hu.dzsubek.myo.basic_guesture'
scriptTitle = "Basic Gestures"
scriptDetailsUrl = ""
switchLeftHand = false
function onForegroundWindowChange(app, title)
-- An app for test
local isActive = title == 'Google'
return isActive;
end
onWaveInStart = function()
myo.debug('onWaveInStart');
end
onWaveInEnd = function()
myo.debug('onWaveInEnd');
end
onWaveOutStart = function()
myo.debug('onWaveOutStart');
end
onWaveOutEnd = function()
myo.debug('onWaveOutEnd');
end
onDoubleTapStart = function()
myo.debug('onDoubleTapStart');
end
onDoubleTapEnd = function()
myo.debug('onDoubleTapEnd');
end
onFistStart = function()
myo.debug('onFistStart');
end
onFistEnd = function()
myo.debug('onFistEnd');
end
onFingersSpreadStart = function()
myo.debug('onFingersSpreadStart');
end
onFingersSpreadEnd = function()
myo.debug('onFingersSpreadEnd');
end
onRestStart = function()
myo.debug('onRestStart');
end
onRestEnd = function()
myo.debug('onRestEnd');
end
function onWave(pose, edge)
if pose ~= "waveIn" and pose ~= "waveOut" then
return
end
if switchLeftHand then
pose = changeOnLeftHand(pose)
end
if pose == "waveIn" then
switchEdge(edge, onWaveInStart, onWaveInEnd)
end
if pose == "waveOut" then
switchEdge(edge, onWaveOutStart, onWaveOutEnd)
end
end
function onDoubleTap(pose, edge)
simpleGestures('doubleTap', pose, edge, onDoubleTapStart, onDoubleTapEnd)
end
function onFist(pose, edge)
simpleGestures('fist', pose, edge, onFistStart, onFistEnd)
end
function onFingersSpread(pose, edge)
simpleGestures('fingersSpread', pose, edge, onFingersSpreadStart, onFingersSpreadEnd)
end
function onRest(pose, edge)
simpleGestures('rest', pose, edge, onRestStart, onRestEnd)
end
function switchEdge(edge, onStart, onEnd)
if edge == "on" then
onStart()
else
onEnd()
end
end
function simpleGestures(gesture, pose, edge, onStart, onEnd)
if pose ~= gesture then
return
end
switchEdge(edge, onStart, onEnd)
end
function changeOnLeftHand(pose)
if myo.getArm() == "left" then
if pose == "waveIn" then
pose = "waveOut"
elseif pose == "waveOut" then
pose = "waveIn"
end
end
return pose
end
function onPoseEdge(pose, edge)
onWave(pose, edge)
onDoubleTap(pose, edge)
onFist(pose, edge)
onFingersSpread(pose, edge)
onRest(pose, edge)
end