@@ -27,8 +27,11 @@ The exact version required for this to work but it is known to work with:
2727## Code guidestyle
2828
2929We use the ` camelCase ` to more easily differentiates our functions from the ones from PTB that use a ` PascalCase ` .
30+ We use the following regular expression for function names: ` [a-z]+(([A-Z]|[0-9]){1}[a-z]+)* ` .
3031
31- We keep the McCabe complexity as reported by the [ check_my_code function] ( https://github.com/Remi-Gau/matlab_checkcode ) below 15.
32+ We keep the McCabe complexity as reported by the [ check_my_code function] ( https://github.com/Remi-Gau/check_my_code ) below 15.
33+
34+ We use the [ MISS_HIT linter] ( https://florianschanda.github.io/miss_hit/style_checker.html ) to automatically fix some linting issues.
3235
3336## How to install
3437
@@ -70,6 +73,30 @@ You can then use the [matlab package manager](https://github.com/mobeets/mpm), t
7073 end
7174```
7275
76+ ## Setting up keyboards
77+
78+ To select a specific keyboard to be used by the experimenter or the participant, you need to know
79+ the value assigned by PTB to each keyboard device.
80+
81+ To know this copy-paste this on the command window:
82+
83+ ``` matlab
84+ [keyboardNumbers, keyboardNames] = GetKeyboardIndices;
85+
86+ disp(keyboardNumbers);
87+ disp(keyboardNames);
88+ ```
89+
90+ You can then assign a specific device number to the main keyboard or the response box in the ` cfg ` structure
91+
92+ - ` cfg.keyboard.responseBox ` would be the device number of the device used by the participant to give his/her
93+ response: like the button box in the scanner or a separate keyboard for a behavioral experiment
94+ - ` cfg.keyboard.keyboard ` would be the device number of the keyboard on which the experimenter will type or
95+ press the keys necessary to start or abort the experiment.
96+
97+ ` cfg.keyboard.responseBox ` and ` cfg.keyboard.keyboard ` can be different or the same.
98+
99+ Using empty vectors (ie ` [] ` ) or a negative value for those means that you will let PTB find and use the default device.
73100
74101## Structure and function details
75102
@@ -106,23 +133,27 @@ It is wrapper function to use `KbQueue` which is definitely what you should used
106133
107134You can easily collect responses while running some other code at the same time.
108135
109- It will only take responses from the ` response box ` which can simply be the "main keyboard" or
110- another keyboard connected to the computer or the response box that the participant is using.
136+ It will only take responses from one device which can simply be the "main keyboard"
137+ (the default device that PTB will find) or another keyboard connected to the computer
138+ or the response box that the participant is using.
111139
112140You can use it in a way so that it only takes responses from certain keys and ignore others (like
113141the triggers from an MRI scanner).
114142
115143If you want to know more on how to use it check its help section and the ` CPP_getResponseDemo.m ` .
116144
117- To select a specific keyboard to be used by the experimenter or the participant, you need to know
118- the value assigned by PTB to each keyboard device.
145+ In brief, there are several actions you can execute with this function.
119146
120- To know this copy-paste this on the command window:
147+ - init: initialize the buffer for key presses on a given device (you can also specify the keys of interest that should be listened to).
148+ - start: start listening to the key presses (carefully insert into your script - where do you want to start buffering the responses).
149+ - check: till that point, it will check the buffer for all key presses.
150+ - It only reports presses on the keys of interest mentioned at initialization.
151+ - It ** can** also check for presses on the escape key and abort if the escape key is part of the keys of interest.
152+ - flush: Empties the buffer of key presses in case you want to discard any previous key presses.
153+ - stop: Stops buffering key presses. You can still restart by calling "start" again.
154+ - release: Closes the buffer for good.
121155
122- [keyboardNumbers, keyboardNames] = GetKeyboardIndices;
123156
124- keyboardNumbers
125- keyboardNames
126157
127158### deg2Pix
128159
0 commit comments