File size: 4,305 Bytes
b4c5d36 |
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 |
from PyQt5.QtCore import pyqtSignal, QObject
from codes.show import Camera
from codes.calibration import Clb
from codes.sampling import Smp
from codes.tune_models_params import Tuning
from codes.eye_track import EyeTrack
from codes.see_data import See
# Change parameters use_io, clb_grd for accuracy and del_files, nep
class Worker(QObject, Camera, Clb, Smp, Tuning, EyeTrack, See):
num = 0
camera_id = 0
thb = 0.0
ss = 0
mfr = 0.0
dft = 0.0
st = 0.0
cam = False
clb = False
smp = False
acc = False
tbt = False
mdl = False
uio = False
gps = False
gpa = False
sps = False
spa = False
gfx = False
running = True
cam_started = pyqtSignal()
clb_started = pyqtSignal()
smp_started = pyqtSignal()
acc_started = pyqtSignal()
tbt_started = pyqtSignal()
mdl_started = pyqtSignal()
gps_started = pyqtSignal()
gpa_started = pyqtSignal()
sps_started = pyqtSignal()
spa_started = pyqtSignal()
gfx_started = pyqtSignal()
finished = pyqtSignal()
def __init__(self):
super().__init__()
def do_work(self):
if self.cam and self.running:
print("\nCamera")
self.cam_started.emit()
self.features(camera_id=self.camera_id)
if self.clb and self.running:
print("\nCalibration")
self.clb_started.emit()
self.et(
num=self.num,
camera_id=self.camera_id,
info=self.info,
clb_grid=self.clb_grid
)
if self.smp and self.running:
print("\nSampling")
self.smp_started.emit()
self.sampling(
num=self.num,
camera_id=self.camera_id,
gui=True
)
if self.acc and self.running:
print("\nTesting")
self.acc_started.emit()
self.accuracy(
num=self.num,
camera_id=self.camera_id,
clb_grid=(5, 7, 20)
)
if self.tbt and self.running:
print("\nSee user blinking")
self.user_face(
num=self.num,
threshold=self.thb,
save_threshold=True
)
if self.mdl and self.running:
print("\nTuning params")
self.mdl_started.emit()
self.et_mdl(
subjects=[self.num],
shift_samples=[self.ss],
delete_files=False
)
if self.gps and self.running:
print("\nGetting pixels")
self.gps_started.emit()
self.get_pixels(
subjects=[self.num],
shift_samples=[self.ss],
use_io=self.uio,
delete_files=False
)
if self.gpa and self.running:
print("\nGetting test pixels")
self.gpa_started.emit()
self.get_pixels(
subjects=[self.num],
target_fol="acc",
shift_samples=[self.ss],
use_io=True,
delete_files=False
)
if self.sps and self.running:
print("\nSeeing sampling data")
self.sps_started.emit()
self.pixels_smp(num=self.num, show_in_all_monitors=True)
if self.spa and self.running:
print("\nSeeing testing data")
self.spa_started.emit()
self.pixels_acc(
num=self.num,
show_in_all_monitors=True
)
if self.gfx and self.running:
print("\nGetting fixations")
self.gfx_started.emit()
self.get_fixations(
subjects=[self.num],
t_discard=self.dft,
x_merge=self.mfr[0],
y_merge=self.mfr[1],
vx_thr=self.st,
vy_thr=self.st
)
print("\nEye Tracking finished!")
self.finished.emit()
self.running = True
|