/usr/share/psychtoolbox-3/PsychHardware/Daq/DaqDWriteBit.m is in psychtoolbox-3-common 3.0.11.20131230.dfsg1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | function err=DaqDWriteBit(daq,BitNumber,TheValue)
% err=DaqDReadBit(DeviceIndex,BitNumber,value)
% USB-1608FS: Write bit to digital port.
% "DeviceIndex" is a small integer, the array index specifying which HID
% device in the array returned by PsychHID('Devices') is interface 0
% of the desired USB-1608FS box.
%
% ******************************************************************************
% * *
% * If your Daq is a USB-1208FS or USB-1408FS, this code has not been tested; *
% * it probably will not run on your device. The USB-1608FS has only one DIO *
% * port and that is what this code was written to expect. To make it run on *
% * a 12 or 14 bit device, you should fix this to take an additional input *
% * (the portnumber) and to continue to behave as is for the 16-bit device. *
% * An example of how to do that can be found in DaqDConfigPort. -- mpr *
% * *
% ******************************************************************************
%
% BitNumber should range from 0:7 specifying the channel whose bit you want set;
% 0 corresponds to screw terminal 21, 1 corresponds to screw terminal 23, etc.
% "value" should be 0 or 1.
%
% BitNumber can be a vector in order to write multiple bits at once. To
% implement this, value must be a vector the same length as BitNumber, or it
% must be a scalar in which case all designated bits will be given that value.
%
% See also Daq, DaqFunctions, DaqPins, DaqTest, PsychHIDTest,
% DaqDConfigPortBit, DaqDReadBit, DaqDeviceIndex, DaqDIn, DaqDOut.
%
% 12/17/07 mpr scavenged code from DaqDOut and edited it to make this
% 1/11/08 mpr swept through attempting to improve consistency across daq
% functions
if length(BitNumber) > 1
if numel(TheValue) == 1
TheValue = TheValue*ones(size(BitNumber));
end
if length(TheValue) ~= length(BitNumber)
error('Mismatched inputs; size of value must be either scalar or size of BitNumber');
end
for k=1:length(BitNumber)
err(k) = DaqDWriteBit(daq,BitNumber(k),TheValue(k));
end
return;
end
err=PsychHID('SetReport',daq,2,6,uint8([6 BitNumber TheValue])); % DWriteBit
if err.n
fprintf('DaqDOut error 0x%s. %s: %s\n',hexstr(err.n),err.name,err.description);
end
return;
|