-
Notifications
You must be signed in to change notification settings - Fork 1
/
EPOC_PROCESSING_generating_test_data
149 lines (125 loc) · 3.48 KB
/
EPOC_PROCESSING_generating_test_data
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/**
generating test data in the AFFECT group
storing the data in a text file
The various Address Patterns are:
/COG/NEUTRAL;
/COG/PUSH;
/COG/PULL;
/COG/LIFT;
/COG/DROP;
/COG/LEFT;
/COG/RIGHT;
/COG/ROTATE_LEFT;
/COG/ROTATE_RIGHT;
/COG/ROTATE_CLOCKWISE;
/COG/ROTATE_COUNTER_CLOCKWISE;
/COG/ROTATE_FORWARD;
/COG/ROTATE_REVERSE;
/COG/DISAPPEAR;
/AFF/Engaged/Bored;
/AFF/Excitement;
/AFF/Excitement Long Term;
/AFF/Meditation;
/AFF/Frustration;
/EXP/WINK_LEFT;
/EXP/WINK_RIGHT;
/EXP/BLINK;
/EXP/LEFT_LID;
/EXP/RIGHT_LID;
/EXP/HORIEYE;
/EXP/VERTEYE;
/EXP/SMILE;
/EXP/CLENCH;
/EXP/LAUGH;
/EXP/SMIRK_LEFT;
/EXP/SMIRK_RIGHT;
/EXP/FURROW;
/EXP/EYEBROW.
*/
import oscP5.*;
import netP5.*;
//public float eng = 0;
//ublic float exc = 0;
int circleX = 240;
import processing.serial.*;
String[] lines;
float exc = -1;
float eng = -1;
float exclt = -1;
float med = -1;
float frus = -1;
float exc0, eng0, exclt0, med0, frus0;
int counter = 0;
OscP5 oscP5;
void setup() {
size(480, 360);
frameRate(30);
smooth();
//start oscP5, listening for incoming messages on port 7400
//make sure this matches the port in Mind Your OSCs
oscP5 = new OscP5(this, 7400);
lines = new String[1000];
/*
// In case you want to see the list of available ports
println("List of Serial Ports: " + Serial.list());
// Using the first available port (might be different on your computer)
port = new Serial(this, "COM6", 9600);
port.bufferUntil('\n');
*/
}
void draw() {
background(0);
}
void drawBarGraph(float cogVal, int barY) {
if (eng >= 0.5) {
fill(color(22, 255, 113));
} else {
fill(color(255, 0, 0));
}
float len = map(eng, 0.0, 1.0, 0, 360);
rect(61, barY, len, 20);
}
void oscEvent(OscMessage theOscMessage) {
//println( theOscMessage );
/*
/AFF/Engaged/Bored;
/AFF/Excitement;
/AFF/Excitement Long Term;
/AFF/Meditation;
/AFF/Frustration;
*/
// check if theOscMessage has an address pattern we are looking for
if (theOscMessage.checkAddrPattern("/AFF/Excitement") == true) {
exc = theOscMessage.get(0).floatValue();
//println( "Excitement: " + theOscMessage.get(0).floatValue());
} else if (theOscMessage.checkAddrPattern("/AFF/Engaged/Bored") == true) {
eng = theOscMessage.get(0).floatValue();
//println( "Engaged/Bored: ", theOscMessage.get(0).floatValue());
} else if (theOscMessage.checkAddrPattern("/AFF/Excitement Long Term") == true) {
exclt = theOscMessage.get(0).floatValue();
//println( "Engaged/Bored: ", theOscMessage.get(0).floatValue());
} else if (theOscMessage.checkAddrPattern("/AFF/Meditation") == true) {
med = theOscMessage.get(0).floatValue();
//println( "Engaged/Bored: ", theOscMessage.get(0).floatValue());
} else if (theOscMessage.checkAddrPattern("/AFF/Frustration") == true) {
frus = theOscMessage.get(0).floatValue();
//println( "Engaged/Bored: ", theOscMessage.get(0).floatValue());
}
if ( (abs( exc0 - exc) > 0.01) ||
(abs( eng0 - eng) > 0.01) ||
(abs( exclt - exclt0) > 0.01) ||
(abs( med - med0) > 0.01) ||
(abs( frus - frus0) > 0.01)) {
lines [counter] = hour()+","+ minute()+","+second()+","+exc + "," +eng +"," +exclt+","+med +"," +frus;
if (counter++ > 997 ) {
counter = 0;
saveStrings("lines"+hour()+"_"+minute()+"_"+second()+".txt", lines);
}
println( counter+ " ,"+lines [counter-1 ]);
}
exc0 = exc;
eng0 = eng;
exclt0 = exclt;
med0 = med;
frus0 = frus;
}