Overview of Whisker |
Introduction |
Citing Whisker |
History, acknowledgements, bibliography |
TROUBLESHOOTING - FAQ |
Obtaining Whisker |
Editions of Whisker |
Ordering Whisker |
Installing Whisker software |
Software requirements |
Software installation |
Overview of installed software |
Uninstalling Whisker |
Upgrading to a new version of Whisker |
Windows Vista and Whisker |
HARDWARE installation |
Introduction |
Hardware requirements |
Notes regarding large systems |
DANGER - safety with critical devices |
Fail-safe devices |
Amplicon digital I/O hardware |
Buying Amplicon digital I/O hardware |
Installing Amplicon digital I/O hardware and drivers |
PCI272 and PC272E digital I/O cards |
EX233 distributor boards |
EX213 relay output panels |
EX230 optoisolator input panels |
EX221 mixed input/output panels |
Connecting everything up |
Amplicon digital I/O board wiring map |
University of Cambridge: Hubert's boxes (25-way connector style) |
Technical note - Amplicon power-on behaviour |
Technical note - input and output modes for Amplicon panels |
Amplicon analogue I/O hardware |
Buying Amplicon analogue hardware |
PCI 224 analogue output card |
PCI 230 analogue I/O card |
Advantech I/O hardware |
ICS Advent I/O hardware |
ICS Advent PCDIO24B-P card |
Technical notes on ICS Advent 82C55A cards |
National Instruments / Lafayette ABET hardware |
Serial port (COM) devices |
Lafayette CANTAB USB device |
Berlin network controller |
Sound card installation |
Multimonitor installation |
Touchscreen installation |
Intasolve Interact 400 |
Configuring UPDD version 2 touchscreen drivers |
Configuring UPDD version 3 touchscreen drivers |
Configuring UPDD version 4.1.10 touchscreen drivers |
Med Associates operant chambers |
University of Cambridge: Hubert's boxes (25-way connector style) (copy) |
Operant chamber power connections |
Using the WhiskerServer console |
Introduction |
Editions of WhiskerServer |
The Left-Hand Tree |
Views pertaining to the server as a whole |
Server status |
Server event log |
Digital line status |
Analogue line status |
Audio devices |
Display devices |
Physical display X - views of individual displays |
Touchscreens |
Clients |
Views pertaining to individual clients |
Information/status |
Event log |
Communications log |
Timer events |
Digital lines in use |
Aliases for digital lines |
Analogue lines in use |
Aliases for analogue lines |
Audio devices in use |
Display devices in use |
Views of individual displays |
Display documents |
Views of individual documents |
The Menus |
File |
Edit |
View |
Configure hardware |
Amplicon I/O hardware |
Advantech / BNC controller I/O hardware |
ICS Advent I/O hardware |
National Instruments / Lafayette ABET hardware |
Serial port (COM) devices |
Configure Lafayette CANTAB USB hardware |
Configure Berlin network I/O controller |
Set server device definition file |
Configure failsafe outputs |
Set digital input alert threshold |
Fake (debugging) I/O lines |
Display devices |
Touchscreens |
Set UPDD v4 directory |
Audio devices |
Fake audio devices |
Server |
Set server priority within Windows |
Set internal timer resolution |
Set default multimedia resource folder |
Logging behaviour |
Video configuration |
Client |
Send debugging message to client |
Line |
Free (unpeg) all lines |
Peg line on/off |
Line details |
Audio |
Display |
Touchscreen |
Help |
Keyboard shortcuts |
Use of the registry by WhiskerServer |
Performance considerations for Whisker |
Tips for a fast computing experience |
Auxiliary programs |
WhiskerStatus |
WebStatus |
WhiskerTestClient |
WhiskerReset |
Whisker Database Manager |
Open a database |
Create (copy) and register a database |
Copy a database |
Register a database with ODBC |
Open ODBC Manager |
Update a database |
Launch Windows Explorer |
Edit ODBC registry 1 - user DSNs |
Edit ODBC registry 2 - system and file DSNs |
Programmer's Reference |
Introduction |
Technical description |
Communicating with WhiskerServer |
Communication: principles and message formats |
Creating and connecting sockets |
A dual-channel communication system: a general-purpose and an immediate-response socket |
Network responsiveness |
Technical notes on TCP/IP methods |
SUMMARY OF WHISKER COMMANDS |
Events: the core of the system |
Exploring the system with WhiskerTestClient |
A reminder about non-local machines |
THE WHISKER COMMAND SET |
The two-socket system |
ImmPort |
Code |
Link |
Messages sent by the server |
Event |
Info |
KeyEvent |
SyntaxError |
Error |
Fault |
Warning |
Ping |
ClientMessage |
Commands sent by the client |
Digital I/O devices |
LineClaim |
LineSetState |
LineReadState |
LineSetEvent |
LineSetAlias |
LineSetSafetyTimer |
LineClearSafetyTimer |
LineClearEvent |
LineClearEventByLine |
LineClearAllEvents |
LineRelinquishAll |
Controlling groups of lines |
Timer devices |
TimerSetEvent |
TimerClearEvent |
TimerClearAllEvents |
Audio devices |
AudioClaim |
AudioSetAlias |
AudioRelinquishAll |
AudioPlayFile |
AudioLoadSound |
AudioLoadTone |
AudioPlaySound |
AudioUnloadSound |
AudioStopSound |
AudioGetSoundLength |
AudioSetSoundVolume |
AudioSilenceDevice |
AudioSilenceAllDevices |
AudioUnloadAll |
Multimedia configuration |
SetMediaDirectory |
Display devices, touchscreens, and mouse events |
DisplayClaim |
Display Documents: size and scaling |
DisplayRelinquishAll |
DisplayCreateDevice |
DisplayDeleteDevice |
DisplayDeleteAllDevices |
DisplaySetAlias |
DisplayGetSize |
DisplayScaleDocuments |
DisplayCreateDocument |
DisplayDeleteDocument |
DisplayDeleteAllDocuments |
DisplayShowDocument |
DisplayCacheChanges |
DisplayShowChanges |
DisplaySetDocumentSize |
DisplayGetDocumentSize |
DisplayBlank |
DisplaySetBackgroundColour |
DisplayAddObject |
DisplayDeleteObject |
DisplayGetObjectExtent |
DisplaySetEvent |
DisplayClearEvent |
DisplaySetBackgroundEvent |
DisplayClearBackgroundEvent |
DisplaySetEventTransparency |
DisplayEventCoords |
DisplayBringToFront |
DisplaySendToBack |
DisplayKeyboardEvents |
Keyboard code values |
Video objects |
DisplayAddObject: video |
DisplaySetAudioDevice |
VideoPlay |
VideoPause |
VideoStop |
VideoSeekAbsolute |
VideoSeekRelative |
VideoGetTime |
VideoGetDuration |
VideoTimestamps |
VideoSetVolume |
Server-based device names and device definition files |
ClaimGroup |
Device names are not the same as aliases |
Time stamps |
TimeStamps |
ResetClock |
Status information and niceties |
Version |
ClientNumber |
WhiskerStatus |
ReportName |
ReportStatus |
ReportComment |
TestNetworkLatency |
RequestTime |
Echo |
Client-client communications |
PermitClientMessages |
SendToClient |
Client authentication |
Authenticate |
AuthenticateChallenge |
AuthenticateResponse |
Secure server data logs |
Logging command set |
LogOpen |
LogPause |
LogResume |
LogSetOptions |
LogWrite |
LogClose |
Permanence of data recording |
Digital signing of data logs |
Verifying digitally-signed logs |
ShutDown |
Analogue command set |
AnalogueClaim |
AnalogueSetAlias |
AnalogueRelinquishAll |
AnalogueReadConfig |
AnalogueReadState |
AnalogueSetState |
AnalogueSetEvent |
AnalogueClearEvent |
AnalogueClearEventByLine |
AnalogueClearAllEvents |
SetOutputDirectory |
AnalogueOpenOutputFile |
AnalogueCloseOutputFile |
AnalogueSampleSignal |
AnalogueData |
Format for analogue data logged directly to disk |
AnalogueCancelSample |
AnalogueCreateBuffer |
AnalogueLoadBuffer |
AnaloguePlayBuffer |
AnalogueStopPlayback |
AnalogueDeleteBuffer |
AnalogueDeleteAllBuffers |
Writing Whisker clients: general principles |
Programming tasks: design principles |
Choosing your programming language |
Programming models for behavioural tasks |
Programming benefits of Whisker's design |
C++ and WhiskerClientLib |
About C++ and WhiskerClientLib |
SimpleCPPClient: a C++ console-mode example |
Classes to help you write clients |
Creating C++ clients for Whisker |
A few last suggestions |
Data collection principles |
Relational databases |
Getting data into a database |
Recovering data from old applications |
Data integrity in relational databases |
Networking in Perl |
whisker_perl_demo.pl |
whiskerstat.pl |
berlindummyserver.pl |
Python as a Whisker client |
whisker.py |
whisker_python_demo.py |
SDK User's Guide |
Visual Basic and the SDK |
Comments on the use of Visual Basic |
VBRatioClient - a simple Visual Basic client |
Writing a simple TestClient with the Visual Basic SDK |
The SDK command set |
Differences between SDK and Whisker Commands |
Drawing with the SDK |
Additional SDK commands |
Cancelling events |
Implementing schedules of reinforcement |
SDK extra commands |
Tutorials with Visual Basic 6.0 |
Tutorial 1 - Getting started writing Whisker tasks in Visual Basic |
Tutorial 2 - Converting Arachnid tasks to Whisker |
Tutorial 3 - Programming tips |
Tutorials with Visual Basic .Net |
Tutorial 1 - Getting started writing Whisker tasks in Visual Basic |
Lab-specific guides |
Cambridge, Experimental Psychology |
Maria's box wiring, Jan 2000 |
Maria/Rutsuko - 25-way cables |
Maria/Rutsuko - box definition files |
Pat/Dan - box definition files |
© Cambridge University Technical Services Ltd