SAKKADY 1. Informacje ogólne Zadanie służy do pomiaru funkcji

Transkrypt

SAKKADY 1. Informacje ogólne Zadanie służy do pomiaru funkcji
SAKKADY
1. Informacje ogólne
Zadanie służy do pomiaru funkcji kontrolnych. Aplikacja jest przygotowana w języku C++ z
wykorzystaniem otwartych bibliotek.
Danymi wejściowymi są: plik konfiguracyjny (.cfg) zawierający wartości podstawowych
zmiennych sterujących zadaniem, pliki graficzne (.bmp) wyświetlane w trakcie zadania oraz plik
tekstowy (.txt) zawierające wyświetlaną badanemu instrukcję wykonania zadania. Na wyjściu
aplikacja tworzy plik wynikowy (.txt), zawierający dane o konfiguracji zadania i reakcjach osoby
badanej.
2. Ekran startowy
Po uruchomieniu aplikacji wyświetlany jest ekran startowy.
Okno zawiera następujące pola edycyjne:
a. Pseudonim – pole typu aln, wypełniane przez osobę badaną, zapisywane w pliku wynikowym;
pole nie dopuszcza polskich liter, znaków specjalnych ani spacji; pole wymagane
b. Wiek – pole liczbowe i całkowite, wypełniane przez osobę badaną, zapisywane w pliku
wynikowym; pole nie umożliwia wprowadzenia wartości mniejszej bądź równej zero; pole
wymagane
c. Płeć – pole z listą rozwijaną, dwie dostępne wartości: „Kobieta” bądź „Mężczyzna”;
zapisywane w pliku wynikowym; pole wymagane
d. Warunek – pole z listą rozwijaną, prezentującą nazwy dostępnych plików konfiguracyjnych
.cfg; pole umożliwia wybór tylko jednej wartości; pole wymagane
e. Zapis wyników? – pole wyboru; jeżeli jest zaznaczone, aplikacja tworzy plik wynikowy; jeżeli
pole jest odznaczone, dane nie są zapisywane (tryb treningu); domyślnie pole powinno być
zaznaczone
Wartości wpisane w powyższe pola powinny być zachowywane aż do momentu zakończenia pracy
aplikacji, tj. uruchomienie zadania i jego przerwanie powoduje powrót do ekranu startowego, lecz nie
czyści zawartości jego pól. Przyciśnięcie „Uruchom” powoduje rozpoczęcie zadania.
3. Dane wejściowe
3.1 Plik konfiguracyjny
Plik z rozszerzeniem .cfg zawiera szereg wartości dla zmiennych sterujących przebiegiem
zadania:
a. nazwa_inst – nazwa istniejącego pliku .txt, zawierającego tekst instrukcji; jest on wyświetlany
tuż po uruchomieniu zadania, przed pierwszą próbą
b. nazwa_seq – nazwa istniejącego pliku .txt, zawierającego nazwy bitmap – bodźców
docelowych, jakie mają być wyświetlane w ramach zadania
c. nazwa_tlo – nazwa istniejącego pliku .bmp, który stanowić będzie tło zadania, na którym
wyświetlane będą pozostałe bitmapy
d. progbar – pole binarne, przyjmujące wartość „1” bądź „0”; w przypadku wartości „1”, w
zadaniu wyświetlany jest pasek postępu, jeżeli „0” – pasek nie jest wyświetlany
e. pro_numb – zmienna liczbowa, nieujemna, określająca liczbę prób o typie zgodnym (tzw.
próba typu prosakada)
f. anty_numb - zmienna liczbowa, nieujemna, określająca liczbę prób o typie niezgodnym (tzw.
próba typu antysakada)
g. fixpoint1_time – pole liczbowe, nieujemne, wyznaczające w milisekundach czas wyświetlania
pierwszego punktu fiksacji na ekranie
h. hint – pole binarne, przyjmujące wartość „1” bądź „0”; jeżeli pole ma wartość „1”, przed
bodźcem docelowym prezentowana jest wskazówka, jeżeli „0” – wskazówka nie jest
prezentowana
i. hint_time – pole liczbowe, nieujemne, determinujące w milisekundach czas wyświetlania
wskazówki, jeżeli wartość hint = 1
j. fixpoint2_mintime oraz fixpoint2_maxtime – dwa pole liczbowe, nieujemne, wyznaczające
granice przedziału, z którego w każdej próbie losowana jest wartość będąca czasem
wyświetlania drugiego punktu fiksacji, liczonym w milisekundach
k. square_dist – pole liczbowe, nieujemne, wyznaczające w pikselach dystans od środka ekranu,
w jakim prezentowany jest kwadrat
l. square_time - pole liczbowe, nieujemne, wyznaczające w milisekundach czas, przez który
prezentowany jest na ekranie kwadrat
m. target_dist – pole liczbowe, nieujemne, określające dystans w pikselach od środka ekranu, w
jakim prezentowany jest bodziec docelowy
n. target_time – pole liczbowe, nieujemne, określające w milisekundach czas prezentacji bodźca
docelowego
o. mask_time - pole liczbowe, nieujemne, określające w milisekundach czas prezentacji maski
p. alfa – pole liczbowe, określające w pikselach wartość przyrostu paska postępu z każdą próbą
3.2 Pliki graficzne
Jako bodźce wyświetlane w zadaniu wykorzystywane będą pliki graficzne w formacie .bmp.
Aplikacja ma wykorzystywać kanał alfa plików (przezroczystość). Nazwy wyświetlanych obrazów
zdefiniowane są w pliku z sekwencją, określonym w wybranym na ekranie startowym pliku
konfiguracyjnym .cfg (zmienna nazwa_seq). Bitmapy są wyświetlane w określonej przez plik
konfiguracyjny odległości od środka ekranu (zmienna target_dist), po stronie lewej bądź prawej, w
zależności od prezentacji innych bitmap (por. dalej).
Nazwy plików graficznych muszą być przygotowane zgodnie z kluczem, umożliwiającym
określenie czy reakcja badanego jest poprawna – system jednoznacznego nazewnictwa wymaga
opracowania (przykładowo, nazwa pliku graficznego mogłaby być kodem klawisza klawiatury który
ma być przyciśnięty, by poprawność w danej próbie była równa 1). Poprawność i czas reakcji
badanego na powyższe bitmapy będą rejestrowane w pliku wynikowym. Uwaga: klawisze
prawidłowych reakcji nie mogą ograniczać się do znaków alfanumerycznych, muszą obejmować
również klawisze funkcyjne – przede wszystkim klawisze strzałek.
Obok powyższych bitmap, aplikacja będzie wyświetlać w każde próbie cztery dodatkowe
bitmapy pomocnicze – reakcje na nie nie są rejestrowane. Bitmapy te będą jednoznacznie
identyfikowane przez nazwy:
a. fixpoint.bmp – bitmapa wyświetlana w każdej próbie zadania maksymalnie dwukrotnie, której
czas wyświetlania regulują zmienne fixpoint1_time oraz fixpoin2_mintime i fixpoin2_maxtime
b. hint_pro.bmp bądź hint_anty.bmp – bitmapa wyświetlana w każdej próbie zadania raz,
bitmapa o sufiksie _pro w próbach zgodnych (prosakady), zaś bitmapa o sufiksie _anty w
próbach niezgodnych (antysakady), przez czas regulowany wartością zmiennej hint_time w
pliku konfiguracyjnym, o ile zmienna hint = 1
c. square.bpm - bitmapa wyświetlana w każdej próbie zadania raz przez czas regulowany
wartością zmiennej square_time w pliku konfiguracyjnym, w lokalizacji określanej zmienną
square_dist od środka ekranu, po prawej lub lewej stronie (losowo); strona wyświetlenia musi
zostać zapisana w pliku wynikowym („L” dla strony lewej, „P” – dla prezentacji
prawostronnej, zmienna strona)
d. mask.bmp – bitmapa wyświetlana w każdej próbie zadania raz przez czas regulowany zmienną
mask_time, po tej samej stronie po której wyświetlona jest bitmapa będąca bodźcem
docelowym i w tej samej odległości od środka ekranu
3.3 Plik z sekwencją
Plik w formacie .txt, zawierający nazwy bitmap, jakie mają być wyświetlane w trakcie trwania
zadania. Nazwy wpisywane są w jednej kolumnie, jedna nazwa per wiersz.
Bitmapa wyświetlana w danej próbie jako bodziec docelowy, wymagający reakcji badanego,
jest losowana spośród bitmap definiowanych przez plik sekwencji (losowanie ze zwracaniem). Liczba
losowań równa jest sumie wartości zmiennych pro_numb i anty_numb z pliku konfiguracyjnego.
4. Przebieg zadania
Właściwe zadanie składa się z określonej liczby prób. W ramach każdej z nich, prezentowana
jest sekwencja bitmap, których parametry określa plik konfiguracyjny. Rejestrowana jest poprawność
oraz czas reakcji na bitmapę będącą bodźcem docelowym, losowaną z pliku sekwencji.
Istnieją dwa rodzaje prób w zadaniu: zgodne (prosakady) oraz niezgodne (antysakady). Liczba
prób pierwszego typu określana jest zmienną pro_numb, zaś drugiego – anty_numb. Kolejność prób w
zadaniu jest losowa, musi jedynie zostać zachowana zadana proporcja prób dwojakiego rodzaju.
Bezpośrednio po uruchomieniu zadania, na ekranie wyświetlana jest instrukcja, pobrana z
odpowiedniego pliku .txt, wskazanego w wybranym na ekranie startowym pliku konfiguracyjnym, w
polu nazwa_inst. Tekst pozostaje na ekranie dopóki nie zostanie przyciśnięty dowolny klawisz na
klawiaturze, po czym rozpoczyna się właściwa część zadania. Wszystkie bitmapy w obu typach prób
wyświetlane są na tle bitmapy, wskazanej w pliku konfiguracyjnym pod zmienną nazwa_tlo.
4.1. Próba zgodna (prosakada)
Próba zgodna rozpoczyna się od wyświetlenia w środkowym punktu ekranu bitmapy
fixpoint.bpm (punkt fiksacji) przez czas regulowany zmienną fixpoint1_time (milisekundy).
Jeżeli w pliku konfiguracyjnym zmienna hint = 1, wyświetlana jest następnie bitmapa
hint_pro.bmp (wskazówka zgodna), przez liczbę milisekund określaną wartością zmiennej hint_time.
Bitmapa wyświetlana jest w środkowym punkcie ekranu.
Jeżeli wyświetlana była bitmapa wskazówki, wyświetlana jest ponownie bitmapa z punktem
fiksacji – fixpoint.bmp, przez czas w milisekundach wylosowany z przedziału, którego granice
określają wartości zmiennych fixpoint2_mintime oraz fixpoint2_maxtime.
Po zniknięciu punktu fiksacji wyświetlana jest kolejna bitmapa – square.bmp, w odległości od
środka ekranu wyznaczanej zmienną square_dist, w pikselach, przez czas określony zmienną
square_time w milisekundach. Bitmapa wyświetlana jest po stronie lewej bądź prawej od środka
ekranu – losowo. Stronność prezentacji jest rejestrowana w pliku wynikowym. Poniższy przykład jest
próbą z prezentacją lewostronną, znakowaną w pliku wynikowym jako „L”.
Po zniknięciu bitmapy square.bmp, prezentowany jest bodziec docelowy, na który mierzona
jest reakcja badanego. Bitmapa jest losowana spośród nazw plików wyznaczanych w pliku sekwencji
(nazwa_seq w pliku konfiguracyjnym). W próbie zgodnej (prosakada), bitmapa ta prezentowana jest
po tej samej stronie, co bitmapa square.bmp. Odległość w pikselach od środka ekranu oraz czas
prezentacji bitmapy w milisekundach wyznaczają zmienne target_dist oraz target_time.
Po upływie zadanego czasu, prezentowana jest ostatnia bitmapa – mask.bmp (maska), przez
czas określony zmienną mask_time. Bitmapa prezentowana jest po tej samej stronie i w tej samej
odległości od środka ekranu, co bitmapa z bodźcem docelowym.
Zadaniem badanego jest zareagować na bitmapę docelową przyciśnięciem odpowiedniego
klawisza na klawiaturze – rejestrowany jest czas, jaki upłynął od prezentacji bodźca docelowego do
wciśnięcia klawisza (zmienna RT w pliku wynikowym) oraz poprawność reakcji (zmienna
poprawnosc w pliku wynikowym). W momencie gdy zostanie przyciśnięty klawisz, bitmapa maski
znika i wyświetlany jest centralnie napis: „Naciśnij dowolny klawisz żeby przejść dalej”. Jeżeli
badany nie nacisnął żadnego klawisza w czasie mniejszym lub równym wartości zmiennej mask_time,
próba również się kończy zniknięciem maski i wyświetleniem powyższego napisu, lecz w pliku
wynikowym zmienna RT przyjmie wartość równą mask_time, a zmienna poprawnosc będzie równa 0.
4.2. Próba niezgodna (antysakada)
Próby niezgodne budowane są w sposób analogiczny do prób zgodnych, z trzema różnicami:
a. jeżeli w pliku konfiguracyjnym zmienna hint = 1, wyświetlana jest bitmapa hint_anty.bmp
(wskazówka niezgodna), przez liczbę milisekund określaną wartością zmiennej hint_time
b. bodziec docelowy, losowany z pliku z sekwencją, wyświetlany jest po przeciwnej stronie
wobec prezentacji bitmapy square.bmp
c. bitmapa maski (mask.bmp) prezentowana jest również po przeciwnej stronie wobec
prezentacji bitmapy square.bmp, a tej samej co bodziec docelowy
Jeżeli w pliku konfiguracyjnym wartość zmiennej progbar jest równa „1”, w środkowej górnej
części ekranu wyświetlany jest pasek postępu, analogiczny jak w zadaniu Stroopa, który zapełnia się
w miarę trwania zadania. Pasek obecny jest we wszystkich próbach, niezależnie od tego czy są zgodne
(prosakady), czy niezgodne (antysakady). Pasek wypełnia się z każdą próbą o liczbę pikseli określoną
w pliku konfiguracyjnym zmienną alfa, o ile reakcja badanego była poprawna.
5. Plik wynikowy
Plik wynikowy ma format .txt, zaś jego nazwa równa jest wartości wpisanej w polu
„Pseudonim” na ekranie startowym. Liczba wierszy równa się liczbie prób, a każdy wiersz zawiera
poniższe informacje, zgodnie z reakcjami osoby badanej w danej próbie:
a. nick – zmienna typu aln, równa wartości wpisanej w pole „Pseudonim” na ekranie
startowym
b. wiek – zmienna int, równa wartości wpisanej w pole „Wiek” na ekranie startowym
c. plec – zmienna zawierająca wartość „K” jeżeli na ekranie startowym z listy rozwijanej pry
polu „Płeć” wybrano wartość „Kobieta” bądź wartość „M” jeżeli wybrano wartość
„Mężczyzna”
d. nazwa_cfg – zmienna zawierająca nazwę pliku .cfg, wybranego na ekranie startowym z
listy rozwijanej pola „Warunek”
e. trial – zmienna liczbowa, nieujemna, określająca numer próby; pierwszym numerem jest
„1”, ostatnim n, gdzie n jest równa sumarycznej wartości zmiennych pro_numb oraz
anty_numb
f. nazwa_bmp – zmienna zawierająca nazwę prezentowanej w próbie o numerze trial
bitmapy będącej bodźcem docelowym
g. typ – zmienna zawierająca wartość „PRO” bądź „ANTY” w zależności od rodzaju próby
(odpowiednio, próba zgodna i niezgodna)
h. strona – zmienna zawierająca wartość „L”, jeżeli w danej próbie square.bmp wyświetlona
była po lewej stronie od środka ekranu bądź wartość „P”, jeżeli prezentacja była po
prawej stronie od środka ekranu
i. poprawnosc – zmienna przyjmująca wartość 0 bądź 1, w zależności od tego, czy badany
zareagował wciśnięciem poprawnego klawisza po prezentacji bodźca docelowego
j. rt – zmienna liczbowa, której wartość równa jest liczbie milisekund jakie upłynęły od
momentu wyświetlenia bodźca docelowego na ekranie do momentu przyciśnięcia
klawisza przez osobę badaną