Skip to content
Snippets Groups Projects
fixationExperiment.m 1.9 KiB
Newer Older
veitsupateit's avatar
veitsupateit committed
try
    % Setup
    % Set default vaules. Will not work without it for some reason.
    PsychDefaultSetup(2);
    
    % Set background color to black
    backgroundcolor = 0.0;
    
    % Get the list of screens and choose the one with the highest screen number.
    screenNumber = max(Screen('Screens'));
    
    % Create fullscreen window with 0 - 0.1 color range
veitsupateit's avatar
veitsupateit committed
    [w, wRect] = PsychImaging('OpenWindow', screenNumber, backgroundcolor);                                   
veitsupateit's avatar
veitsupateit committed
    
    % Get subject No
    subjectNo = getCurrentSubjectNo;
    
    % Get image list
    images = getImgList();
    
    % Generate design matrix
    designMatrix = genDesignMatrix(subjectNo, images);
    
    % Diplay welcome screen
    welcomeScreen(subjectNo, w, wRect);
    
    % Init json
    result = sprintf('{"subjectNo" : "%d", "trials"  : [', subjectNo);
    
    % Loop over trials
veitsupateit's avatar
veitsupateit committed
    for trial = 1:5%size(designMatrix, 1)
veitsupateit's avatar
veitsupateit committed
        
        % Assign vals
        filter = designMatrix(trial,3);
        delay = designMatrix(trial,4);
        imageNo = designMatrix(trial,5);
        
        % Load image from image number
        image = loadImage(imageNo);
veitsupateit's avatar
veitsupateit committed
        
veitsupateit's avatar
veitsupateit committed
        % Run trial
veitsupateit's avatar
veitsupateit committed
        [mouseX, mouseY, fixX, fixY] = currentTrial(image, delay, filter, w, wRect, screenNumber, backgroundcolor);
        
veitsupateit's avatar
veitsupateit committed
        % Make json string for trial
veitsupateit's avatar
veitsupateit committed
        trialJson = trialToJson(trial, delay, filter, imageNo, mouseX, mouseY, fixX, fixY);
        
veitsupateit's avatar
veitsupateit committed
        % Append trial to result json
        result = [result, [trialJson ',']];
veitsupateit's avatar
veitsupateit committed
        
        % Plot results if you want
        %plot(mouseX,mouseY,fixX,fixY, 'rs')
veitsupateit's avatar
veitsupateit committed
    end
veitsupateit's avatar
veitsupateit committed
    
veitsupateit's avatar
veitsupateit committed
    % Truncate last comma and append closing brackets
veitsupateit's avatar
veitsupateit committed
    result = [result(1:end-1), ']}'];
    
    % Write to disc
veitsupateit's avatar
veitsupateit committed
    writeResult(result,subjectNo);
veitsupateit's avatar
veitsupateit committed
    % Close
veitsupateit's avatar
veitsupateit committed
    sca;
veitsupateit's avatar
veitsupateit committed
    ShowCursor;
    Priority(0);
veitsupateit's avatar
veitsupateit committed

veitsupateit's avatar
veitsupateit committed
% Gotta catch 'em all
veitsupateit's avatar
veitsupateit committed
catch
    sca;
    ShowCursor;
    Priority(0);
    psychrethrow(psychlasterror);
end