MasterScan
Lab_Matlab_control Master Branch
|
Reads data from a HID gamepad device.
dotsReadableHIDGamepad extends the dotsReadableHID superclass to manage HID Gamepad devices. Many USB gamepads and joysticks are considered HID gamepads.
By default, dotsReadableHIDGamepad defines "pressed" events for each gamepad button. Use getNextEvent() to make sure that no presses are missed, and that each press is observed only once.
Properties and Events | |
Property | gamepadUsages = {'GamePad', 'Joystick', 'MultiAxisController'} |
HID usage names that are consistent with "gamepad". | |
Property | buttonMatching |
struct of HID parameters to identify gamepad button elements More... | |
Property | xMatching |
struct of HID parameters to identify the gamepad x-axis element More... | |
Property | yMatching |
struct of HID parameters to identify the gamepad y-axis element More... | |
Property | zMatching |
struct of HID parameters to identify the gamepad z-axis element More... | |
![]() | |
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 | zID |
ID of the z-axis component (if any) | |
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 | dotsReadableHIDGamepad (devicePreference) |
Constructor may take device matching preferences. More... | |
![]() | |
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 buttons and axes of the gamepad. | |
closeComponents (self) | |
Unenqueue all the buttons of the Gamepad. | |
![]() | |
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... | |
Additional Inherited Members | |
![]() | |
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 dotsReadableHIDGamepad | ( | 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.
Property buttonMatching |
struct of HID parameters to identify gamepad button elements
See mexHIDUsage() or mexHIDUsage.gui() for lists of valid HID parameters.
Property xMatching |
struct of HID parameters to identify the gamepad x-axis element
See mexHIDUsage() or mexHIDUsage.gui() for lists of valid HID parameters.
Property yMatching |
struct of HID parameters to identify the gamepad y-axis element
See mexHIDUsage() or mexHIDUsage.gui() for lists of valid HID parameters.
Property zMatching |
struct of HID parameters to identify the gamepad z-axis element
See mexHIDUsage() or mexHIDUsage.gui() for lists of valid HID parameters.