MasterScan
Lab_Matlab_control Master Branch
|
Reads data from a HID mouse device.
dotsReadableHIDMouse extends the dotsReadableHID superclass to manage HID mouse devices. Many integrated and USB pointing devices can be considered HID mouses.
By default, dotsReadableHIDMouse defines "pressed" events for each mouse button. Use getNextEvent() to make sure that no clicks are missed, and that each click is observed only once.
Note that HID mouses report x and y data as position changes, rather than absolute positions. Usually the operating system integrates the changes with some scaling and nonlinearity. dotsReadableHIDMouse automatically sums x and y component values as they arrive, without any scaling or nonlinearity. The latest sums are available in the x and y properties.
Properties and Events | |
Property | x |
the latest x-position of the mouse | |
Property | y |
the latest y-position of the mouse | |
Property | buttonMatching |
struct of HID parameters to identify mouse button elements More... | |
Property | xMatching |
struct of HID parameters to identify mouse x-axis element More... | |
Property | yMatching |
struct of HID parameters to identify mouse y-axis element More... | |
Property | VendorID |
Matching properties for machine-specific hardware - Vendor. | |
Property | ProductID |
Matching properties for machine-specific hardware - Product. | |
Property | PrimaryUsage =2 |
Matching properties for machine-specific hardware - Usage. | |
![]() | |
Property | deviceInfo |
struct of info about the HID device | |
Property | deviceMatching |
struct of HID parameters for identifying suitable HID devices. More... | |
Property | devicePreference |
struct of HID parameters for choosing among suitable devices. More... | |
Property | queueDepth = 1024 |
size of the mexHID() internal data queue More... | |
Property | queueIsOpen = false |
whether or not the internal data queue opened successfully | |
Property | isExclusive = false |
whether or not to get exclusive access to device data | |
Property | allowMultipleConnections = false |
whether or not to allow multiple objects to access the same device | |
![]() | |
Property | isAvailable = false |
| |
Property | components |
| |
Property | state |
| |
Property | history |
| |
Property | isAutoRead = true |
| |
Property | eventDefinitions |
| |
Property | initialEventQueueSize = 100 |
| |
Property | clockFunction |
| |
Property | filename |
| |
Property | filepath |
| |
Property | recordDuringCalibration = true |
| |
Property | useGUI = false |
Flag to use GUI for feedback, etc. | |
Property | useExistingCalibration = false |
Flag to skip calibration routine. | |
Property | calibrationUI |
Possibly use a keyboard or other UI to help with calibration. | |
Property | deactivateEventsAtStartTrial =false |
Flag to deactivate all events at the beginning of each trial. | |
Protected Properties | |
Property | xID |
ID of the x-axis component. | |
Property | yID |
ID of the y-axis component. | |
Property | buttonIDs |
ID of button components. | |
![]() | |
Property | deviceID |
device identifier from mexHID('openMatchingDevice') More... | |
Property | queueCallback = @dotsReadableHID.mexHIDQueueCallback |
Callback which mexHID() uses to pass HID data to Matlab. More... | |
Property | queueCallbackData |
matrix of recent data passed in from mexHID() | |
![]() | |
Property | eventQueue |
| |
Property | queueNext |
| |
Property | queueLast =0 |
| |
Property | isRecording =false |
| |
Property | didCalibrate = true |
Keep track of whether calibration occurs. | |
Property | defaultEventPrefix = 'event' |
Default prefix for event names: <prefix>_<componentName> | |
Property | eventSets |
Strutures with different named event definitions, in case we want to quickly swap between them. | |
Methods | |
self | dotsReadableHIDMouse (devicePreference) |
Constructor may take device matching preferences. More... | |
flushData (self, varargin) | |
Flush data and reset the x and y position running sums. | |
![]() | |
self | dotsReadableHID () |
Constructor takes no arguments. | |
flushData (self, varargin) | |
Clear data from this object and the mexHID() internal queue. More... | |
components | setComponentCalibration (self, namesOrIDs, rawRange, deadRange, calibratedRange, granularity) |
Adjust scaling of raw values from HID components. More... | |
event | defineEvent (self, name, varargin) |
Define a calibrated event for given component. More... | |
![]() | |
self | dotsReadable () |
| |
initialize (self) | |
| |
calibrate (self, varargin) | |
More... | |
record (self, onFlag, filename) | |
More... | |
reset (self, varargin) | |
reset device More... | |
close (self) | |
| |
delete (self) | |
| |
read (self) | |
More... | |
flushData (self, waitForNoEvents) | |
More... | |
logData (self) | |
More... | |
stateAtTime | getState (self, time) |
More... | |
value data | getValue (self, ID) |
More... | |
event | defineEvent (self, name, varargin) |
More... | |
defineEventsFromComponents (self, names, varargin) | |
defineEventsFromComponents More... | |
defineEventsFromStruct (self, eventStruct, setName, keepExisting, inactivate) | |
defineEventsFromStruct More... | |
showActiveEvents (self) | |
Mostly for debugging. | |
activateEventSet (self, name) | |
Swap in a set of events. | |
activateEvents (self) | |
Activate all events. More... | |
deactivateEvents (self) | |
Deactivate all events. More... | |
activeFlags | getActiveFlags (self) |
Get all active flags. | |
setActiveFlags (self, activeFlags) | |
Set all active flags from array. | |
setEventsActiveFlag (self, activateList, deactivateList) | |
Set/unset activeFlag. More... | |
name data | getNextEvent (self, isPeek, acceptedEvents) |
More... | |
lastName lastID names IDs | getHappeningEvent (self, time) |
More... | |
name waitTime data | waitForEvents (self, eventNames, maxWait) |
Wait for event(s) | |
nEvents | getNumberOfEvents (self) |
More... | |
IDs | getComponentIDs (self) |
More... | |
ID | getComponentID (self, nameOrID) |
| |
name | getComponentName (self, nameOrID) |
| |
indices | getComponentIndicesByID (self, IDs) |
| |
indices | getComponentIndicesByName (self, names) |
| |
time | getDeviceTime (self) |
| |
setDeviceTime (self, val) | |
| |
startTrial (self, varargin) | |
More... | |
finishTrial (self, varargin) | |
More... | |
plotData (self) | |
More... | |
startTrialDevice (self, varargin) | |
Overloaded methods. | |
Protected Methods | |
components | openComponents (self) |
Locate and enqueue all the buttons and axes of the mouse. | |
closeComponents (self) | |
Unenqueue all the buttons and elements of the mouse. | |
![]() | |
isOpen | openDevice (self) |
Find the best available HID device with mexHID(). | |
closeDevice (self) | |
Release mexHID() resources for this device. | |
isOpen | openHIDQueue (self, cookies) |
Open a queue to record value changes for device elements. More... | |
newData | readNewData (self) |
Pass any data from the mexHID() internal queue to this object(). More... | |
![]() | |
isOpen | openDevice (self) |
More... | |
closeDevice (self) | |
More... | |
resetDevice (self, varargin) | |
Reset the device. | |
status | calibrateDevice (self, varargin) |
More... | |
isRecording | startRecording (self) |
| |
isRecording | stopRecording (self) |
| |
components | openComponents (self) |
More... | |
closeComponents (self) | |
More... | |
newData | readNewData (self) |
More... | |
isEvent | detectEvents (self, data) |
More... | |
newSize | resizeEventQueue (self, minSize, doClear) |
More... | |
nEvents | enqueueEvents (self, eventValues) |
More... | |
eventValue nEvents | dequeueEvent (self, isPeek) |
More... | |
Static Methods | |
static | mexHIDMouseQueueCallback (self, newData) |
Pass data from the mexHID() internal queue to Matlab. More... | |
![]() | |
static | mexHIDQueueCallback (self, newData) |
Pass data from the mexHID() internal queue to Matlab. For newData, Rows are inputs Columns are. | |
static time | currentHIDTime () |
Get the current time from the system USB/HID implementation. | |
![]() | |
static isHappening data readable | isEventHappening (readables, eventName) |
More... | |
static didHappen waitTime data readable name | waitForEvent (readables, eventName, maxWait) |
More... | |
static data | loadDataFile (filename, varargin) |
Load data from file. More... | |
self dotsReadableHIDMouse | ( | devicePreference | ) |
Constructor may take device matching preferences.
devicePreference | struct of HID matching parameters |
devicePreference is an optional struct of HID parameters for choosing among suitable devices, assigned to the devicePreference property.
|
static |
Pass data from the mexHID() internal queue to Matlab.
Keep running sums of x and y data.
Property buttonMatching |
struct of HID parameters to identify mouse button elements
See mexHIDUsage() or mexHIDUsage.gui() for lists of valid HID parameters.
Property xMatching |
struct of HID parameters to identify mouse x-axis element
See mexHIDUsage() or mexHIDUsage.gui() for lists of valid HID parameters.
Property yMatching |
struct of HID parameters to identify mouse y-axis element
See mexHIDUsage() or mexHIDUsage.gui() for lists of valid HID parameters.