![]() |
Opticka 2.16.1
Opticka is an experiment manager for behavioral research.
|
Manages touch screens (wraps the PTB TouchQueue* functions), and provides touch area management methods. More...
Manages touch screens (wraps the PTB TouchQueue* functions), and provides touch area management methods.
TOUCHMANAGER – call this and setup with screen manager, then run your task. This class can handles touch windows, exclusion zones and more for multiple touch screens.
Copyright ©2014-2024 Ian Max Andolina — released: LGPL3, see LICENCE.md
Public Member Functions | |
| function | touchManager (in varargin) |
| Class constructor. | |
| function | setup (in me, in sM) |
| function | createQueue (in me) |
| function | start (in me) |
| function | stop (in me) |
| function | close (in me) |
| function | flush (in me) |
| function | eventAvail (in me) |
| function | getEvent (in me) |
| function | reset (in me) |
| function | checkTouchWindows (in me, in windows, in panelType) |
| function | isHold (in me) |
| function | testHold (in me, in yesString, in noString) |
| function | testHoldRelease (in me, in yesString, in noString) |
| function | demo (in me, in useaudio) |
Public Member Functions inherited from optickaCore | |
| function | optickaCore (in varargin) |
| Class constructor. | |
| function get | fullName (in me) |
| function | getALF (in me, in subject, in sessionPrefix, in lab, in create) |
| function | findAttributes (in me, in attrName, in attrValue) |
| function | findAttributesandType (in me, in attrName, in attrValue, in type) |
| find properties of object with specific attributes, for example all properties whose GetAcccess attribute is public and type is logical. | |
| function | findPropertyDefault (in me, in propName) |
| function | clone (in me) |
| Use this syntax to make a deep copy of the object, i.e. OBJ_OUT has the same field values, but will not behave as a handle-copy of me anymore. | |
| function | checkSuperclasses (in List) |
| function | editProperties (in me, in properties) |
| method to modify a set of properties | |
| function | setProp (in me, in property, in value) |
| method to fast change a particular value. This is useful for use in anonymous functions, like in the state machine. | |
| function | initialiseGlobals (in me, in doReset, in doOpen) |
| function | initialiseSaveFile (in me) |
| Initialise Save prefix. | |
| function | checkPaths (in me) |
| checks the paths are valid | |
Public Attributes | |
| Property | device |
| which touch device to connect to? | |
| Property | isDummy |
| use the mouse instead of the touch screen for debugging | |
| Property | window |
| Property | exclusionZone |
| Property | drainEvents |
| Property | panelType |
| panel type, 1 = front, 2 = back aka reverse X position | |
| Property | verbose |
| verbosity | |
| Property | nSlots |
| number of slots for touch events | |
Public Attributes inherited from optickaCore | |
| Property | name |
| object name | |
| Property | comment |
| comment | |
| Property | verbose |
| verbose logging, subclasses must assign this. This is normally logical true/false | |
| Property | dateStamp |
| clock() dateStamp set on construction | |
| Property | uuid |
| universal ID | |
| Property | paths |
| storage of various paths | |
| Property | fullName |
| The fullName is the object name combined with its uuid and class name. | |
Protected Member Functions | |
| function | calculateWindow (in me, in x, in y, in tempWindow) |
Protected Member Functions inherited from optickaCore | |
| function | parseArgs (in me, in args, in allowedProperties) |
| Sets properties from a structure or normal arguments pairs, ignores invalid or non-allowed properties. | |
| function | addArgs (in me, in args) |
| function | setPaths (in me) |
| Sets properties from a structure or normal arguments pairs, ignores invalid or non-allowed properties. | |
| function | getFonts (in me) |
| set paths for object | |
| function | toStructure (in me) |
| Converts properties to a structure. | |
| function | getType (in me, in in) |
| function | logOutput (in me, in in, in message, in override) |
| Give a metaproperty return the likely property class. | |
| function | salutation (in me, in varargin) |
| Prints messages dependent on verbosity. | |
Additional Inherited Members | |
Static Public Member Functions inherited from optickaCore | |
| static function | makeArgs (in args) |
| Converts cell args to structure array. | |
| static function | addDefaults (in args, in defs) |
| add default options to arg input | |
| static function | hasKey (in in, in key) |
| check if a struct / object has a propery / field | |
| static function | getKeys (in device) |
| PTB Get key presses, stops key bouncing. | |
Protected Attributes inherited from optickaCore | |
| Property | cloning |
| are we cloning this from another object | |
| Property | mversion |
| Matlab version number, this is transient so it is not saved. | |
| Property | sansFont |
| sans font | |
| Property | monoFont |
| monoFont | |
| Property | className |
| class name | |
| Property | savePrefix |
| save prefix generated from clock time | |
| Property | fullName_ |
| cached full name | |
| touchManager::touchManager | ( | in | varargin | ) |
Class constructor.
Initialises the class sending any parameters to parseArgs.
| varargin | are passed as a structure of properties which is parsed. |
|
protected |
| function touchManager::checkTouchWindows | ( | in | me, |
| in | windows, | ||
| in | panelType | ||
| ) |
| touchManager::close | ( | in | me | ) |
| choice | which touch device to use, default uses me.device |
| touchManager::createQueue | ( | in | me | ) |
| choice | which touch device to use, default uses me.device |
| touchManager::demo | ( | in | me, |
| in | useaudio | ||
| ) |
return
| touchManager::eventAvail | ( | in | me | ) |
return nAvail number of available events
| touchManager::flush | ( | in | me | ) |
return
| touchManager::getEvent | ( | in | me | ) |
return event structure
| touchManager::isHold | ( | in | me | ) |
This is the main function which runs touch timers and calculates the logic of whether the touch is in a region and for how long.
return
| touchManager::reset | ( | in | me | ) |
return
| touchManager::setup | ( | in | me, |
| in | sM | ||
| ) |
| touchManager::start | ( | in | me | ) |
| touchManager::stop | ( | in | me | ) |
| touchManager::testHold | ( | in | me, |
| in | yesString, | ||
| in | noString | ||
| ) |
return
| touchManager::testHoldRelease | ( | in | me, |
| in | yesString, | ||
| in | noString | ||
| ) |
return
| Property touchManager::device |
which touch device to connect to?
| Property touchManager::drainEvents |
drain the events to only get the last one? This ensures lots of events don't pile up, often you only want the current event, but potentially causes a longer delay each time getEvent is called...
| Property touchManager::exclusionZone |
Use exclusion zones where no touch allowed: [left,top,right,bottom] Add rows to generate multiple exclusion zones.
| Property touchManager::isDummy |
use the mouse instead of the touch screen for debugging
| Property touchManager::nSlots |
number of slots for touch events
| Property touchManager::panelType |
panel type, 1 = front, 2 = back aka reverse X position
| Property touchManager::verbose |
verbosity
| Property touchManager::window |
window is a touch window, X and Y are the screen postion radius: circular when radius is 1 value, rectangular when radius = [width height]) doNegation: allows to return -100 (like exclusion) if touch is outside window. when using the testHold etc functions. negationBuffer is an area around he window to allow some margin of error... init: a timer that measures time to first touch hold: a timer that determines how long to hold release: a timer to determine the time after hold in which to release the window