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
|
function [encodedDIOdata, Mask, Data, Command] = bitsGoggles(left,right,window)
% [encodedDIOdata] = bitsGoggles(left, right [, window])
%
% Drives the FE1 goggles connected to bits 4 and 5 of the digital output
% of a Bits+, Bits#, etc.
%
% 'left' and 'right' define the required state of the left and
% right goggle shutter, where a value of:
% 0 = goggle open
% 1 = goggle closed
%
% If 'window' is given, but the return argument 'encodedDIOdata' is not
% given, then the control code is drawn into the framebuffer and a flip
% is performed.
%
% If 'encodedDIOdata' is given, then 'window' is not used
% and the required T-Lock code is returned as a image matrix
% which could be used for Screen('PutImage') or Screen('DrawTexture').
%
% History:
% ??/???/???? Written by Cambridge Research Systems.
% 21-Apr-2016 Extended by mk for use in PTB's imaging pipeline:
% Add 'encodedDIOdata' return argument and code path.
%
% Bits Shutter
% 5 4 L R
% --------------------
% 1 1 O O
% 0 0 O C
% 1 0 C O
% 0 1 C C
left=logical(left);
right=logical(right);
bit5 = ~right;
bit4 = ~xor(left,right);
Mask = 16 + 32;
%Mask = 65535;
Data=zeros(1,248);
if (bit4)
Data=Data + 16;
end
if (bit5)
Data=Data + 32;
end
Command = 0;
if nargout == 0
% Call routine to draw the T-Lock code and then Screen('Flip'):
bitsEncodeDIO(Mask,Data,Command, window, 0);
else
% Call common encoder routine to create T-Lock image matrix:
encodedDIOdata = BitsPlusDIO2Matrix(Mask, Data, Command);
end
return;
|