
USER FUNCTIONS Panel
Description
Assign user-defined functions that will be called in response to acquisition events.
Controls
| Table Field | Description |
|---|---|
| Event Name | Select one of several events of interest. |
| User Function | The function to call in response to the event. Note that multiple events can be sent to the same function. |
| Arguments | A cell array with optional arguments to pass to your user function. |
| Enable | If this is checked, the user function will be called when the event is triggered. |
| Button | Description |
|---|---|
![]() | Add or delete a user function. Delete operates on the currently selected row. |
![]() | User functions can be stored in the CFG file or the USR file. Typically USR-defined user functions override those in CFG. The main table view is toggled to show either the CFG or USR set based on these buttons. |
![]() | Saves the current set of user functions to the CFG or USR configuration. |
User Functions
A user function has the format:
function name(source,event,arguments)
| Argument | Description |
|---|---|
| source | At the moment, this is always the current instance of scanimage.SI class. Also known as hSI on the base Matlab workspace. |
| event | A string with the name of the event that triggered the user function. |
| arguments | A cell array with optional parameters. Specified in the arguments column of the User Functions table. |
A Very Very Brief Example
function myUserFcn(src,evt,varargin)
% in myUserFcn.m somewhere on the matlab path.
disp(['Got Event: ' evt.EventName]); % prints the event
disp(src); % prints the source object (UserFunctions)
disp(src.hSI); % each source object has access to the main
% ScanImage Model object
disp(src.hSI.imagingSystem) % from which we can access ScanImage
% methods and properties
end
Events
General Events
| Event | Description |
|---|---|
acqModeStart | Called just before the start of an Acquisition Mode such as GRAB or LOOP. This may happen before any data is acquired. |
acqModeDone | Called just after the last frame at the end of an Acquisition Mode such as GRAB or LOOP. |
acqStart | Called just after the first frame gets acquired from an Acquisition. |
acqDone | Called just after the last frame gets acquired from an Acquisition. |
acqAbort | Called just after an acquisition is aborted. Abort usually happens because the Abort button is pressed in the Main Controls. |
sliceDone | Called just after the shutter is closed after acquiring a slice during a Slow Stack acquisition. |
focusStart | Called just after the user presses the FOCUS button in the Main Controls. |
focusDone | Called just after the FOCUS is aborted. Similar to acqAbort but only in FOCUS mode. |
frameAcquired | Called just after a frame is acquired. |
overvoltage | Called when the digitizer experiences an overvoltage condition during an acquisition. |
Photostimulation-module Events
| Event | Description |
|---|---|
onDmdStimStart | Fires when command to perform an on demand stim is received, before the trigger is sent. |
onDmdStimSingleComplete | Fires when an on demand stim completes if multiple outputs are allowed; more stims can be externally triggered. |
onDmdStimComplete | Fires when an on demand stim completes if multiple outputs are not allowed; no more stims will occur until next on demand command. |
onDmdStimExtSel | Fires when an external on demand stimulus selection occurs. |
seqStimStart | Fires when a sequence stimulation begins. |
seqStimAdvance | Fires when a sequence element is complete and sequence advances to the next stim. |
seqStimSingleComplete | Fires when a single sequence is complete. |
seqStimComplete | Fires when the last sequence is complete. |
photostimAbort | Fires when photostimulation module aborts. |


