Skip to main content

Interface Summary

Supervisory Interface

MMI_DownloadMMDownloads and stores the Windows installer for the version of Micro-Manager appropriate for the running version of MMI.
MMI_InstallMMRuns the Windows installer downloaded by MMI_DownloadMM, installing Micro-Manager on the computer, and preparing Micro-Manager to work with MMI.
MMI_GetMMstatusReports the status of the installation of Micro-Manger.
MMI_GetXOPversionReturns an Igor string containing the version number of the MMI XOP.
MMI_GetDataFolderPathReturns an Igor string containing the absolute path to the data folder MMI uses to report the outcomes of its functions and operations.
MMI_GetDevicePropertyListReturns an Igor text wave
MMI_ResetResets the interface between Igor and Micro-Manager, releasing all bound waves and closing all open files. Also releases and re-creates the Micro-Manager core, the stream manager, and the default stream-sinks.
MMI_ShutdownCloses the interface between Igor and Micro-Manager, releasing all resources and waves, closing all open HDF5 files, and deleting the MMI reporting variables.
MMI_GetSequenceRelayDivisorReturns the frequency (1/n) with which the Igor stream-manager relays incoming frames from an active stream to the recipient Igor wave.
MMI_SetSequenceRelayDivisorSets the frequency (1/n) with which the Igor stream-manager relays incoming frames from the active stream to the recipient Igor wave.
MMI_BindImageWaveTells MMI to hold the named Igor wave for receiving images acquired by calls to MMC_SnapImage.
MMI_ReleaseImageWaveTells MMI to release the Igor wave held for receiving images acquired by calls to MMC_SnapImage.
MMI_BindSequenceWaveTells MMI to hold the named Igor wave for receiving sequentially acquired images using MMC_StartSequenceAcquisition.
MMI_ReleaseSequenceWaveTells MMI to release the Igor wave held for receiving images acquired through streaming operations.
MMI_GetUpdateStateReports whether MMI has modified the bound sequence-wave. The result can be used to determine when and how to call DoUpdate.
MMI_DoUpdatePerforms the same check as MMI_GetUpdateState and immediately calls DoUpdate if the sequence-wave has been modified.
MMI_BindImageProcessorTells MMI which user-provided function should be called to process each single image after acquisition.
MMI_ReleaseImageProcessorTells MMI that no user-provided function should be called following acquisition of each single image.
MMI_BindSequenceProcessorTells MMI which user-provided function should be called to process images acquired during sequential acquisition.
MMI_ReleaseSequenceProcessorTells MMI that no user-provided function should be called to process images acquired during sequential acquisition.
MMI_BindMetaDataWaveTells MMI to hold the named Igor text wave for receiving the metadata from sequentially acquired images.
MMI_ReleaseMetaDataWaveTells MMI to release the Igor text wave held for receiving the metadata from sequentially acquired images.
MMI_WaitForSequenceCompletionTells MMI to wait until Micro-Manager has no sequential-acquisition underway.
MMI_OpenH5streamCreates and initializes an instance of the HDF5 streamer, if one does not already exist.
MMI_CloseH5streamCloses and deletes the current HDF5 streamer, if one exists, first closing all files or groups currently open.
MMI_IsH5streamOpenReports if the HDF5 streamer is open.
MMI_OpenH5fileInstructs the HDF5 streamer to open an HDF5 file with the proposed name, returning a unique numeric identifier, the fileID.
MMI_CloseH5fileInstructs the HDF5 streamer to close the HDF5 file identified by the provided fileID.
MMI_SelectH5fileInstructs the HDF5 streamer to set as 'active' the HDF5 file identified by the provided ID.
MMI_OpenH5groupInstructs the HDF5 streamer to open an HDF5 group within a previously opened HDF5 file. Returns a unique numeric identifier, the groupID.
MMI_CloseH5groupInstructs the HDF5 streamer to close the HDF5 group identified by the provided groupID.
MMI_SelectH5groupInstructs the HDF5 streamer to set as 'active' the HDF5 group identified by the provided groupID.
MMI_GetDevicePropertyListGets a list of properties for the device whose label is specified. The list includes the name, value, type, whether the property can be changed, and (if applicable), minimum and maximum permissible values.
MMI_GetEstMaxFrameCountReturns the maximum number of frames that MMI estimates can be acquired and appended directly into memory.
MMI_GetDisabledDevicesReturns a list of Micro-Manager devices marked as disabled for use by MMI.
MMI_SetDisabledDevicesDefines the list of Micro-Manager devices to be marked as disabled for use by MMI.
MMI_AddDisabledDeviceAdds one or more devices to the existing list marked as disabled for use by MMI.
MMI_IsDeviceDisabledReports whether a specified device is in the list marked as disabled for use by MMI.
MMI_GetCameraA substitute for Igor's previous GetCamera operation.
MMI_NewCameraA substitute for Igor's previous NewCamera operation.
MMI_ModifyCameraA substitute for Igor's previous ModifyCamera operation.

Micro-Manager Interface

Initialization and Setup

MMC_LoadDeviceCreates and assigns an identifying label to a new software device-interface for a supported piece of hardware (ex. camera, shutter, filter-wheel, light-source, etc.).
MMC_UnloadDeviceReleases a device-interface created by a previous call to MMC_LoadDevice.
MMC_UnloadAllDevicesReleases all previously created device-interfaces.
MMC_InitializeAllDevicesInitializes all previously created device-interfaces and their corresponding hardware.
MMC_InitializeDeviceInitializes the device-interface and the corresponding hardware associated with the provided device-label.
MMC_ResetResets Micro-Manager's core, releasing all previously created device-interfaces.
MMC_UpdateCorePropertiesUpdates Micro-Manager's core properties (its set of assigned devices), using the currently loaded devices.
MMC_GetCoreErrorTextReturns the Micro-Manager error text corresponding to the specified numeric error code.
MMC_GetVersionInfoReturns the version number of Micro-Manager's core.
MMC_GetAPIVersionInfoReturns the version numbers of Micro-Manager's Module-API and Device-API.
MMC_SaveSystemStateSaves the current state of the system (i.e. the status of writable properties) to the named file.
MMC_LoadSystemStateLoads the current state of the system (i.e. the status of writable properties) from the named file.
MMC_SaveSystemConfigSaves the current configuration of the system (devices loaded, their labels, etc.) to the named file.
MMC_LoadSystemConfigInstalls the current configuration of the system (devices loaded, their labels, etc.) from the named file.

Logging and Log Management

MMC_SetPrimaryLogFileSets the named file as Micro-Manager's primary log file.
MMC_GetPrimaryLogFileReturns a string containing the name of Micro-Manager's primary log file.
MMC_LogMessageAppends a message to Micro-Manager's primary log file.
MMC_EnableDebugLogEnables or disables logging of Micro-Manager's debug messages.
MMC_DebugLogEnabledReturns a numeric value indicating whether logging of debug messages is enabled.
MMC_EnableStdErrLogEnables or disables sending Micro-Manager's log messages to the 'standard error' (stderr) file. This is primarily for those developing code for Micro-Manager.
MMC_StdErrLogEnabledReturns a numeric value indicating whether log messages are being sent to the 'standard error' (stderr) file. This is primarily for those developing code for Micro-Manager.
MMC_StartSecondaryLogFileStarts Micro-Manager's capturing of logging output into an additional file.
MMC_StopSecondaryLogFileHalts Micro-Manager's capturing of logging output into an additional file.

Device Listing

MMC_GetAvailableDevicesGets a list of the names of the devices available from the specified module (device-adapter), each together with its device-type and description.
MMC_GetLoadedDevicesGets a list of the names of the currently loaded devices.
MMC_GetDeviceAdapterNamesGets a list of root-names for all discoverable device-adapters.

Generic Device Control

MMC_GetDeviceTypeReturns the device-type for a device specified by its label.
MMC_GetDeviceNameReturns the device-name for a device specified by its label.
MMC_GetDeviceLibraryReturns the root-name of the device-adapter for a device specified by its label.
MMC_GetPropertyStringReturns a string containing the value of a named property for a device specified by its label.
MMC_GetPropertyNumericReturns a numeric value containing the value of a named property for a device specified by its label.
MMC_SetPropertySets the value of the named property for a device specified by its label.
MMC_GetAllowedPropertyValuesGets a list of allowed text values for the named string property for the device whose label is specified.
MMC_IsPropertyReadOnlyReports if named property of the named device is (or is not) a read-only property.
MMC_IsPropertyPreInitReports if named property of the named device must be defined prior to initialization.
MMC_HasPropertyLimitsReports if named numeric property of the named device has defined upper- and lower-limits to its permitted values.
MMC_GetPropertyLowerLimitReports the minimum permitted value of the named numeric property of the named device.
MMC_GetPropertyUpperLimitReports the maximum permitted value of the named numeric property of the named device.
MMC_GetTimeoutMsReturns Micro-Manager's timeout period.
MMC_SetTimeoutMsSets Micro-Manager's timeout period.

Management of Current Device for Specific Roles

MMC_GetCameraDeviceReturns the Micro-Manager label for the active camera.
MMC_SetCameraDeviceSets the currently active camera.
MMC_GetShutterDeviceReturns the Micro-Manager label for the active shutter.
MMC_SetShutterDeviceSets the currently active shutter.
MMC_GetFocusDeviceReturns the Micro-Manager label for the active focus device.
MMC_SetFocusDeviceSets the currently active focus device.
MMC_GetXYStageDeviceReturns the Micro-Manager label for the active XY stage.
MMC_SetXYStageDeviceSets the active XY stage.
MMC_GetAutoFocusDeviceReturns the Micro-Manager label for the active auto-focus device.
MMC_SetAutoFocusDeviceSets the currently active auto-focus device.
MMC_GetSLMDeviceReturns the Micro-Manager label for the active spatial light modulator (SLM).
MMC_SetSLMDeviceSets the active spatial light modulator (SLM).
MMC_SetGalvoDeviceReturns the Micro-Manager label for the active galvanometer beam-steering device.
MMC_GetGalvoDeviceSets the active galvanometer beam-steering device.

Image Acquisition

MMC_GetROIReturns a wave containing the ROI (Region Of Interest) for the specified camera.
MMC_SetROISets the ROI for the specified camera from the specified Igor wave.
MMC_ClearROIResets the ROI for the active camera to the camera's full sensor.
MMC_IsMultiROISupportedReports whether the active camera supports the use of multiple ROIs.
MMC_IsMultiROIEnabledReports whether the active camera is currently using multiple ROIs.
MMC_GetMultiROIReturns a wave describing the set of ROIs in use in the active camera.
MMC_SetMultiROIDefines the set of ROIs to use in the active camera.
MMC_GetNumberOfComponents
Returns the number of components (color channels) acquired by the active camera.
MMC_GetExposureReturns the exposure time of the currently active camera, in milliseconds.
MMC_SetExposureSets the exposure time of the active camera, in milliseconds.
MMC_InitializeCircularBufferResets Micro-Manager's circular buffer, based on the dimensions of the images expected from the active camera.
MMC_ClearCircularBufferClears the contents of Micro-Manager's circular buffer, erasing any images that may be present.
MMC_GetCircularBufferSizeReturns the size of Micro-Manager's Circular Buffer, in MB.
MMC_SetCircularBufferSizeSets the size of Micro-Manager's Circular Buffer, in MB.
MMC_SetAutoShutterEnables or disables automatic opening and closing of the active shutter when images are acquired.
MMC_SetShutterOpenSets the open or closed state of the specified shutter.
MMC_GetImageWidthReturns the horizontal size (i.e. number of columns) of the image buffer, in pixels.
MMC_GetImageHeightReturns the vertical size (i.e. number of rows) of the image buffer, in pixels.
MMC_GetImageBitDepthReturns the number of bits used to encode the intensity of each image pixel.
MMC_SnapImageAcquires a single image from the currently active camera.
MMC_GetImageRetrieves a previously acquired image and writes it to a wave.
MMI_GrabImageAcquires a single image and writes it to a wave with finer control than MMC_GetImage.
MMC_PrepareSequenceAcquisition
Prepares the camera for starting a sequential acquisition.
MMC_StartSequenceAcquisition
Launches a sequential acquisition.
MMC_StopSequenceAcquisition
Halts a previously started sequential acquisition.
MMC_IsSequenceRunningReports whether Micro-Manager is currently executing a sequential acquisition.

State Device Control

MMC_GetStateReturns the current numeric state of the specified device.
MMC_DefineStateLabelDefines a state-label (a string) for the specified state of the specified device.
MMC_SetStateSets the state of the specified device to the specified numeric state.
MMC_SetStateLabelSets the state of the specified device to the numeric state previously defined for the specified state-label.

Hub and Peripheral Devices

MMC_GetParentLabelIdentifies the 'parent' of a Micro-Manager device by returning the label of the parent-device.
MMC_SetParentLabelBinds a Micro-Manager device to its 'parent' by specifying the label of the parent-device.

Interface Methods

MMI_DownloadMM /Q /Z /R /FILE=fileName /V=verboseMode /SRC=pathName /URL=sourceURL /DEST=destPath

Downloads and stores the Windows installer for the version of Micro-Manager appropriate for the running version of MMI.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/DEST = destPathSpecifies the path of the directory where the downloaded file is to be stored, overriding the destination directory normally selected by MMI, either the DESKTOP or TEMP directory, as set by the Windows environment variables.
/FILE = fileNameSpecifies the name of the installation file to be downloaded, overriding the default name stored within MMI.
/R'Report' mode instructs MMI to simply report (without downloading) the default URL from which it would normally download the Micro-Manager installer. MMI reports the URL by writing the string into Igor's history and to the global variable S_MMIresult in the MMI data folder.
/SRC = pathNameSpecifies the absolute path to a local copy of the Windows Micro-Manager installer. The /SRC option takes precedence over the /URL and /FILE options.
/URL = sourceURLSpecifies the name of the internet URL from which the file is to be downloaded, overriding the default name stored within MMI.
/V = verboseModeSets the level of diagnostic messages printed in the history area of the command window. verboseMode is also passed internally as the /V flag to Igor's URLRequest operation. verboseMode overrides the state of the /Q flag.
/V=0:Do not print any diagnostic messages. This is the default.
/V=1:Prints an error message if a run time error occurs.
/V=2:Prints full debugging information.

Details

If no flags are specified, MMI calls Igor's URLRequest operation to perform the download and to save the received file.

Users installing MMI on computers isolated from the internet can download the Micro-Manager installer using some other, internet-connected computer, and then move the installer to the internet-isolated computer (ex. by using a thumb-drive). In such cases, use the /SRC option to specify the path to the installer on the thumb-drive.

See Also

MMI_InstallMM

MMI_InstallMM /Q /Z /O /RJ /DIR=destFolder

Runs the Windows installer downloaded by MMI_DownloadMM, installing Micro-Manager on the computer, and prepares Micro-Manager to work with MMI

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/O'Override' mode instructs MMI to install Micro-Manager even if it finds evidence of an existing installation. If the /O flag is not used, the operation will halt if it finds evidence that its version of Micro-Manager is (or has been) previously installed.
/DIR = destFolderSpecifies the path of the directory to be the root of the new installation of Micro-Manager. If specified, this overrides the default location determined by the PROGRAMFILES environment variable and the name of the Windows installer.
/RJThe 'Remove Java' option instructs MMI to install Micro-Manager normally, but then to remove Micro-Manager's Java components after installation completes. (This is intended mostly for labs concerned about the security implications of running Java code.) Note though that choosing the /RJ option will make it impossible to run this installation of Micro-Manager as a free standing program.

Details

MMI calls Igor's URLRequest operation to perform the download and save the received file.

See Also

MMI_DownloadMM

MMI_GetMMstatus ( )

Returns a string describing the installation status of MMI's required version of Micro-Manager.

Parameters

(None)

Example

If MMI's version of Micro-Manager is properly installed, then typing the command

print MMI_GetMMstatus()

will yield a confirmation similar to:

Micro-Manager is installed and ready.

If MMI's version of Micro-Manager is not properly installed, the command will yield an error message containing details of the problem it encountered.

See Also

Installing Micro-Manager, Manually Installing Micro-Manager, MMI_DownloadMM, MMI_InstallMM, MMI_GetXOPversion, MMC_GetVersionInfo, MMC_GetAPIversionInfo

MMI_GetXOPversion ( )

Returns an Igor string containing the version number of the MMI XOP. For example, typing the following on Igor's command line

print MMI_GetXOPversion()

evokes the response

MMI.xop v.1.1.0.19

See Also

MMC_GetVersionInfo, MMC_GetAPIVersionInfo

MMI_GetDataFolderPath ( )

Returns a string containing the absolute path to the data folder MMI uses to report the outcomes of its functions and operations.

Parameters

(None)

Example

Typing the command:

print MMI_GetDataFolderPath()

evokes a response of the form:

root:packages:MMI

See Also

Output Variables & Error Handling

MMI_Reset

Resets the MMI interface. MMI_Reset halts any running sequences, releases any bound waves (image-wave, stream-wave, & metadata-wave), releases any bound processing functions, terminates the stream-manager, and resets and releases the Micro-Manager core, releasing all devices. It then creates new instances of the Micro-Manager core and the stream-manager.

See Also

MMI_Shutdown, MMC_Reset, MMI_ReleaseImageWave, MMI_ReleaseSequenceWave, MMI_ReleaseMetaDataWave, MMI_ReleaseImageProcessor

MMI_Shutdown /Q /Z /DF

Closes the interface between Igor and Micro-Manager, releasing all resources and waves, closing all open HDF5 files, and deleting MMI's Igor variables S_MMIresult, S_MMImessage, V_MMIverbose, V_MMIresult.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, MMI_Shutdown always returns success.
/DFInstructs MMI to also remove its data folder (root:packages:mmI) and any waves and variables it contains, after deleting the variables it maintains there. Note that using the /DF flag may result in an error if waves within that folder are in use (ex. in a graph or table).

Details

Repeated calls to MMI_Shutdown take no further actions and simply return to the caller.

See Also

MMI_Reset

MMI_GetDevicePropertyList /Q /Z deviceLabel [, recipientWave, prefix]

Gets a list of properties for the device whose label is specified. The list includes the name, value, type, whether the property can be changed, and (if applicable), minimum and maximum permissible values.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

Parameters

deviceLabelA string containing the case-sensitive Micro-Manager label of the chosen device.
recipientWaveAn optional name for the text wave to receive the list of properties for the chosen device. If this parameter is omitted, MMI will create a text wave in the current data folder, using the base name "M_DeviceProperties."
prefixAn optional string containing text to add as a prefix to each element in the recipient wave. This provides an simple means to insert Annotation Escape Codes in each element, and hence a way to format the text when displayed in Igor controls, such as Listboxes.

See Also

MMC_SetProperty, MMC_GetPropertyString, MMC_GetPropertyNumeric

MMI_GetSequenceRelayDivisor ( )

Returns a numeric value reflecting the frequency with which images in the incoming image-stream will be relayed to the designated Igor wave.

Parameters

(None)

Details

The integer value returned should be interpreted as the denominator of a fraction of the form 1/n, indicating that only '1 frame out of n' will be relayed to the Igor wave. Thus a return value of 2 indicates that every second frame will be relayed to Igor. A return value of 10 indicates that only 1 frame out of every 10 received will be relayed to Igor.

See Also

MMI_SetSequenceRelayDivisor

MMI_SetSequenceRelayDivisor /Q /Z newValue

Sets the frequency with which images in the incoming image-stream will be relayed to the chosen Igor wave.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

Parameters

newValueA numeric value between 1 and (2e32)-1. This should be interpreted as the denominator of a fraction of the form 1/n indicating that only '1 frame out of n' is to be relayed to the Igor wave.

Details

Setting the stream relay-divisor to a value of 2 indicates that every 2nd image should be passed to the recipient wave. Setting the divisor to a value of 10 instructs MMI that only every 10th wave should be passed to the recipient wave. By relaying only a fraction of incoming images to Igor's recipient wave, you can reduce the time Igor spends refreshing the image, providing more time for acquisition and / or saving the incoming stream to a file.

The divisor's default value, installed upon startup or reset, is 1. Permitted values are positive integers between 1 and (2e32)-1.

Note that the stream relay-divisor has no direct effect on the HDF5 streamer -- every sequentially acquired (streamed) image is relayed to the HDF5 streamer, independent of the value of the relay-divisor.

See Also

MMI_GetSequenceRelayDivisor, MMI_OpenH5stream

MMI_OpenH5stream /Q /Z

Creates and initializes the HDF5 streamer, if it isn't already open.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

Parameters

None.

Details

To maintain the best possible performance, MMI does not automatically create an instance of the HDF5 streamer, which coordinates writing sequentially acquired (streamed) images to an HDF5 file. Therefore the user must create an instance of the HDF5 streamer prior to attempting to store streamed images to an HDF5 file.

The stream relay-divisor only changes the frequency with which streamed images are relayed to Igor during acquisition. The stream relay-divisor has no effect on how streamed images are written to HDF5 files. Every sequentially acquired (streamed) image is relayed to the HDF5 streamer, independent of the value of the relay-divisor.

See Also

MMI_CloseH5stream, MMI_IsH5streamOpen, MMI_GetSequenceRelayDivisor, MMI_SetSequenceRelayDivisor

MMI_CloseH5stream /Q /Z

Closes and deletes the HDF5 streamer, if one exists, first closing any open HDF5 files and groups.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

Parameters

None.

Details

Calling MMI_CloseH5Stream automatically closes all open HDF5 groups and files. Thus it may be easier to call MMI_CloseH5Stream instead of individually closing each open group and file. If, however, you need to close specific group(s) or file(s), but not all, then you should separately call MMI_CloseH5group and MMI_CloseH5file for just those groups and files.

See Also

MMI_OpenH5stream, MMI_IsH5streamOpen, MMI_CloseH5file, MMI_CloseH5group

MMI_IsH5streamOpen ( )

Returns a numeric value reporting whether the HDF5 streamer is currently open.

Parameters

(None)

Returns

Returns 1 if the HDF5 streamer is open.
Returns 0 if the HDF5 streamer is closed.

See Also

MMI_OpenH5stream, MMI_CloseH5stream

MMI_OpenH5file /Q /Z /O fileID, fileName

Creates a new HDF5 file with the specified filename, selects that file as the currently active file, and returns a unique file ID.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/O'Overwrite' mode instructs MMI to replace any pre-existing file that has the same name. If a named file exists and the /O flag is not specified, then the existing file is re-opened and subsequent calls to MMI_OpenH5group will append new groups to the pre-existing file.

Parameters

fileIDA real (non-complex) numeric variable which will receive the ID number assigned to the newly created HDF5 file. The file ID number will be an integer greater than or equal to 1.
fileNameA string that specifies the path- and file-name of the HDF5 file to be created. Simple filenames and relative paths are interpreted relative to the location of the file MMI64.xop, usually c:\Program Files\Wavemetrics\Igor 10 Pro Folder\More Extensions (64-bit)\Data Acquisition\MMI. We recommend you use a full path to specify your destination file.
If you use Windows path notation, you should use 'doubled' backslash characters as separators, ex.
MMI_OpenH5file v_FileID, "c:\\temp\\myHDF5file.h5"
MMI also supports the use of Macintosh HFS path separators (even though MMI runs only under Windows), ex.
MMI_OpenH5file v_FileID, "c:temp:myHDF5file.h5"
See Path Separators for more details.

Details

MMI_OpenH5file assumes its incoming images will be acquired using the current configuration of the currently active camera. The operation thus prepares internally to match the format of the images (ex. image-width and -height, number of bits-per-pixel, number of color-planes, etc.) from that camera.

MMI requires that images from separate cameras (or separate configurations of a camera) be written either to separate HDF5 files, or that a given HDF5 file be closed and re-opened with a different active camera. To ensure an HDF5 file will be configured for a specific camera, you can set active camera by calling MMC_SetCameraDevice prior to calling MMI_OpenH5file.

Incorrect results will likely occur if you stream images into an HDF5 file from a camera or configuration other than that which was active when the file was opened. Be sure to use MMC_SetCameraDevice and MMI_SelectH5file in tandem to keep the active camera and active HDF5 file in step with one another.

Although several HDF5 files and groups (see below) may be open simultaneously, only one file and one group may be active (selected) at a time.

Recall too that Windows protects the contents of certain folders (ex. c:\Program Files and c:\Windows) and generally prevents apps from creating or modifying files in those folders or their sub-folders. Consequently MMI_OpenH5file will likely fail if you attempt to create an HDF5 file within any of the Windows-protected folders. To avoid such difficulties, you should consider calling Igor's SpecialDirPath function, which can return the path to several writable folders.

See Also

MMC_SetCameraDevice, MMI_CloseH5file, MMI_SelectH5file, MMI_OpenH5group, Path Separators, SpecialDirPath

MMI_CloseH5file /Q /Z fileID

Closes an HDF5 file opened by a previous call to MMI_OpenH5file.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

Parameters

fileIDThe ID number which was assigned to the HDF5 file by the corresponding call to MMI_OpenH5file. The file ID number must be an integer with value greater than or equal to 1.

Details

MMI_CloseH5file automatically closes any HDF5 groups currently open within that file.

See Also

MMI_OpenH5file, MMI_SelectH5file

MMI_SelectH5file /Q /Z fileID

Selects an HDF5 file previously opened by a call to MMI_OpenH5file as the currently active HDF5 file.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

Parameters

fileIDThe ID number of the file to be selected. fileID must have been previously assigned to the HDF5 file by a call to MMI_OpenH5file.

Details

Although several HDF5 files and groups (see below) may be open simultaneously, only one file and one group may be active at a time.

See Also

MMI_OpenH5file, MMI_CloseH5file, MMI_OpenH5group

MMI_OpenH5group /Q /Z /F=H5fileID groupID [, groupName]

Creates an HDF5 group within a previously opened HDF5 file, selects that group as the file's active group, and returns an ID number for the new group within the specified file.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/F = H5fileIDThe ID number of the HDF5 file in which the group is to be created. This is the fileID returned by MMI_OpenH5file operation. Using the /F flag does not 'select' the specified HDF5 file as the active file. It simply lets you create an HDF5 group within the specified file. Be sure to call MMI_SelectH5file to select the active HDF5 file.
groupIDA real (non-complex) numeric variable which will receive the ID number assigned to the newly created HDF5 group. The group ID number will be an integer greater than or equal to 1.
groupNameAn optional string specifying the unique name to be assigned to the newly created group. If no groupName is specified, the operation will create and assign the new group a unique name, as described below. Although groupName must be unique within the specified file, the same group name may be used in separate files.

Details

Although several HDF5 groups and files may be open simultaneously, only one file and one group may be active at a time.

Once an HDF5 group is closed, it cannot be re-opened.

Names created by the operation are based on a Windows UUID created when the operation executes. Created names will have the form "Group_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".

Note that while the groupID returned by MMI_OpenH5group is unique within its HDF5 file, it is not guaranteed to be unique across all open HDF5 files. That is, several open HDF5 files may each contain groups with identical groupIDs. To uniquely specify a group among several open HDF5 files, be sure to use both the fileID and the groupID.

See Also

MMI_OpenH5file, MMI_SelectH5file, MMI_CloseH5group, MMI_SelectH5group, https://en.wikipedia.org/wiki/Universally_unique_identifier

MMI_CloseH5group /Q /Z /F=H5fileID groupID

Closes an HDF5 group previously created by a call to MMI_OpenH5group.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/F = H5fileIDThe ID number of the HDF5 file containing the group to be closed. This is the fileID returned by MMI_OpenH5file operation.

Parameters

groupIDThe ID number previously assigned to the HDF5 group. This is the groupID returned by MMI_OpenH5group.

Details

MMI cannot currently re-open an HDF5 group for writing, once it is closed. An HDF5 group may later be re-opened for reading data.

See Also

MMI_OpenH5group, MMI_SelectH5group, HDF5 in Igor Pro

MMI_SelectH5group /Q /Z /F=H5fileID groupID

Selects an HDF5 group (and optionally an HDF5 file), as the currently active group (and file). The file and group must have been previously opened by calls to MMI_OpenH5file and MMI_OpenH5group.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/F = H5fileIDThe ID number of the HDF5 file containing the group to be selected. This is the fileID returned by MMI_OpenH5file operation. If the /F flag is omitted, the operation attempts to select the specified group within the currently active HDF5 file.

Parameters

groupIDThe ID number of the group to be selected. groupID must have been previously assigned by an earlier call to MMI_OpenH5group.

Details

Because multiple HDF5 files and groups may be open simultaneously, callers should use caution to ensure they are selecting an existing and appropriate group and file.

See Also

MMI_OpenH5group, MMI_CloseH5group, MMI_SelectH5file

MMI_GetEstMaxFrameCount ( )

Returns an estimate of the maximum number of images from the currently active camera and configuration that can be stored in a wave, given the physical memory available on this PC.

Parameters

(None)

Returns

Returns the floor of the ratio of the size of available physical memory to the size of each frame acquired by the current selected camera, as stored in a wave.

Details

To obtain a valid result, a camera device must have been previously loaded, initialized, and selected.

Example

MMC_LoadDevice "myDemoCam", "DemoCamera", "DCam"
MMC_InitializeDevice "myDemoCam"
MMC_S
print MMI_GetEstMaxFrameCount()
  9520      // estimated max. number of frames (from the demoCamera) that will fit in a wave
// N.B. Your result will likely differ
MMC_LoadDevice "myWebCam", "OpenCVgrabber", "OpenCVgrabber"
MMC_InitializeDevice "myWebCam"
MMC_SetCameraDevice "myWebCam"
print MMI_GetEstMaxFrameCount()
  2703      // est max. number of frames (from the webCam) that will fit in a wave
// N.B. Your result will likely differ

See Also

floor, MMC_SetCameraDevice, MMC_GetCameraDevice

MMI_GetDisabledDevices ( )

Returns a string containing the current list of devices marked as disabled for use by MMI.

Parameters

(None)

Returns

Returns an Igor string containing a semicolon delimited list of case-sensitive device-specifiers. Each device-specifier is composed of one module-name and one device-name, themselves separated by a colon (":"), ex. "TwainCamera:TwainCam;pizza:pepperoni".

Details

Attempting to load or initialize a device, i.e. calling MMC_LoadDevice or MMC_InitializeDevice may, under some circumstances, lead to errors that can cause MMI and Igor to crash. For example, attempting to load a TWAIN camera on a PC that has only partial, or obsolete support for TWAIN devices, can crash MMI and Igor.

Users can prevent such crashes by 'disabling' the offending devices: adding them to a list of devices that MMI prevents from being used. MMI stores its list of disabled devices in Igor's XOP preferences, making it unique to each PC, but remembered from session to session.

See Also

MMI_SetDisabledDevices, MMI_AddDisabledDevice, MMI_IsDeviceDisabled

MMI_SetDisabledDevices /Q /Z /D deviceList

Defines the list of Micro-Manager devices to be marked as disabled for use by MMI. Disabling a device prevents MMI from loading or initializing that device.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/D'Default' mode instructs MMI to restore its default list of disabled devices. The deviceList keyword is ignored when the /D flag is specified.

Keywords

deviceListA semicolon delimited list of case-sensitive device-specifiers, each of which composed of one module-name and one device-name, separated by a colon, ex. "TwainCamera:TwainCam;pizza:pepperoni".

Details

MMI validates that each device-specifier in the list meets the format of <module-name>:<device-name> but makes no attempt to validate individual module-names or device-names. Each time the list of disabled devices changes, MMI unloads any previously loaded devices whose module- and device-name appear in the updated list.

Calling MMI_SetDisabledDevices overrides any previously defined list of disabled devices. Passing an empty list to MMI_SetDisabledDevices clears any previously defined list of disabled devices.

See Also

MMI_GetDisabledDevices, MMI_AddDisabledDevice, MMI_IsDeviceDisabled

MMI_AddDisabledDevice /Q /Z deviceList

Appends one or more devices to the list of Micro-Manager devices marked as disabled for use by MMI. Disabling a device prevents MMI from loading or initializing that device.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

Keywords

deviceListA semicolon delimited list of case-sensitive device-specifiers, each of which composed of one module-name and one device-name, separated by a colon, ex. "TwainCamera:TwainCam".

Details

MMI validates that each device-specifier in the list meets the format of <module-name>:<device-name> but makes no attempt to validate individual module-names or device-names. Each time the list of disabled devices changes, MMI unloads any previously loaded devices whose module- and device-name appear in the updated list.

See Also

MMI_GetDisabledDevices, MMI_SetDisabledDevices, MMI_IsDeviceDisabled

MMI_IsDeviceDisabled (device-specifier)

Reports whether the specified device is in the list marked as disabled for use by MMI.

Parameters

device-specifierA string containing the case-dependent specifier (module-name and device-name) for the device to be sought within the currently active list of disabled devices. The device-specifier is composed of one module-name and one device-name, themselves separated by a colon (":"), ex. "TwainCamera:TwainCam".

Returns

Returns a numeric value: 0 if the specified device is not in the list of disabled devices, and 1 if the specified device is in the list.

Details

Attempting to load or initialize a device, i.e. calling MMC_LoadDevice or MMC_InitializeDevice may, under some circumstances, lead to errors that can cause MMI and Igor to crash. For example, attempting to load a TWAIN camera on a PC that has only partial, or obsolete support for TWAIN devices, can crash MMI and Igor.

Users can prevent such crashes by 'disabling' the offending devices: adding them to a list of devices that MMI prevents from being used. MMI stores its list of disabled devices in Igor's XOP preferences, making it unique to each PC, but remembered from session to session.

See Also

MMI_GetDisabledDevices, MMI_SetDisabledDevices, MMI_AddDisabledDevice

MMI_GetCamera /Q /Z /DEF /DRVR /L=cameraLabel /W=winName keyword[=value]

MMI_GetCamera uses Micro-Manager to provide information about cameras connected to your computer, their current settings, and the options they support, providing a substitute for the GetCamera operation that was part of Igor Pro since v.7.

MMI_GetCamera generally responds by writing a string containing a keyword/value pair to a variable called S_info in the current data folder. If a keyword is not supported, the value reported is -1.

Except when using the availablecameras keyword, calls to MMI_GetCamera must specify the camera to be accessed by using one of the /DEF, /L, or /W flags.

MMI_GetCamera accepts the new 'properties' keyword to provide a list of the properties exposed by the chosen camera. (See the properties keyword, and the Details section.)

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/DEFApplies the MMI_GetCamera operation to the computer's default camera. Note that the default camera does not have to be represented by an open viewfinder window but it must be connected to the computer.
/DRVRValid only with the availablecameras keyword, the /DRVR flag instructs MMI to list all cameras whose device-adapters can be loaded even if the corresponding hardware is not connected to the computer. Using the /DRVR flag generates a longer list of available cameras, but that list will likely include many that are not connected. The /DRVR flag is also available for use with the /S flag in MMI_NewCamera.
/L = cameraLabelSpecifies the chosen camera by a string containing the camera's case-sensitive Micro-Manager device-label.
/W = winNameSpecifies the chosen camera from the named graph window. winName is the name of the graph window showing the camera's images, e.g., graph0, not the name/description of the camera. MMI extracts the Micro-Manager label for the camera from the Notes of the named window.
If the graph window is embedded within some other graph, winName takes the form <parent graph name>#<image graph name>, e.g. summary0#graph0.

Keywords

apertureThe keyword 'aperture' is not supported.
availableCameras
Returns the description of each discoverable camera in the semicolon-separated string S_CameraNames. The availableCameras keyword is different from other keywords in that it does not require you specify a camera via /W or /DEF flags and it can't be used in combination with any other keyword. If you omit the /Q flag, the operation also prints the list of available cameras to the history area of the command window.
MMI constructs the list of available cameras by attempting, one at a time, to load each device of type 'Camera' that is supported by each device-adapter. When a camera-device loads successfully, MMI checks its available properties, searching for a property named 'Camera'. If a 'Camera' property is found, MMI enumerates each possible value for the 'Camera' property, adding each value to the list of available cameras.
If the /DRVR flag is asserted, MMI adds each discovered adapter-device pair to the list, even if no 'Camera' property is discovered.
Because the process of building the list of cameras is tied to Micro-Manager and its available device-adapters, the set of cameras identified, and their order in the list will almost certainly be different than the list of cameras returned by Igor's previous GetCamera operation.
Every camera listed in S_CameraNames contains the two identifiers "Adapter:" and "Name:", with a '#' character as a separating delimiter. Those identifiers contain the names of each camera's Micro-Manager module (device-adapter) and device-name, e.g.
Adapter:DemoCamera#Name:DCam;
Some cameras (notably those implemented by the adapter OpenCVgrabber) also include the additional identifier "Property:" which contains the value of the 'Camera' property corresponding to a physical device, e.g.
Adapter:OpenCVgrabber#Name:OpenCVgrabber#Property:Live Streamer CAM 313;
colorFilterThe keyword 'colorFilter' is not supported.
contrastThe keyword 'contrast' is not supported.
customFocusPoint
The keyword 'customFocusPoint' is not supported.
denoisingLevelThe keyword 'denoisingLevel' is not supported.
descriptionReturns the description of the current camera.
The value is returned in the S_info output variable as a keyword/value pair: "Description:<value>". Use StringByKey to get the value.
deviceNameReturns the device name for the specified camera. This is usually a hex number.
The value is returned in the S_info output variable as a keyword/value pair: "DeviceName:<value>". Use StringByKey to get the value.
digitalZoomThe keyword 'digitalZoom' is not supported.
exposureCompensation
The keyword 'exposureCompensation' is not supported.
focusModeThe keyword 'focusMode' is not supported.
isColorFilterSupported = cf
The keyword 'isColorFilterSupported' is not supported.
isFlashModeSupported = fm
The keyword 'isFlashModeSupported' is not supported.
isFlashReadyThe keyword 'isFlashReady' is not supported.
isFocusModeSupported = fm
The keyword 'isFocusModeSupported' is not supported.
isFocusPointModeSupported = fpm
The keyword 'isFocusPointModeSupported' is not supported.
isIPAvailableThe keyword 'isIPAvailable' is not supported.
isMeteringModeSupported = mm
The keyword 'isMeteringModeSupported' is not supported.
isWBModeSupported = wbm
The keyword 'isWBModeSupported' is not supported.
manualWhiteBalance
The keyword 'manualWhiteBalance' is not supported.
maximumDigitalZoom
The keyword 'maximumDigitalZoom' is not supported.
maximumOpticalZoom
The keyword 'maximumOpticalZoom' is not supported.
opticalZoomThe keyword 'opticalZoom' is not supported.
orientationThe keyword 'orientation' is not supported.
positionThe keyword 'position' is not supported.
propertiesReturns a two-dimensional text wave called M_cameraProperties in the current data folder which lists the properties the camera presents to Micro-Manager. For each property, the wave reports the property's name, current value, type (integer, string, float), the minimum and maximum acceptable values (if available), and whether each property is read-only (its value is fixed) or is read-write (its value can be changed by calling MMC_SetProperty).
saturationThe keyword 'saturation' is not supported.
sharpeningLevelThe keyword 'sharpeningLevel' is not supported.
spotMeteringPointThe keyword 'spotMeteringPoint' is not supported.
supportedApertures
The keyword 'supportedApertures' is not supported.
supportedISOSensitivities
The keyword 'supportedISOSensitivities' is not supported.
supportedShutterSpeeds
The keyword 'supportedShutterSpeeds' is not supported.
shutterSpeedReturns the current shutter speed (exposure time) in seconds.
Returns -1 if the driver does not support shutter speed control.
The value is returned in the S_info output variable as a keyword/value pair: "shutterSpeed:<value>". Use NumberByKey to get the value.
viewfinderPixelFormats
The keyword 'viewfinderPixelFormats' is not supported.
viewfinderFrameRateRanges
The keyword 'viewfinderFrameRateRanges' is not supported.
viewfinderResolutions
The keyword 'viewfinderResolutions' is not supported.
whiteBalanceMode
The keyword 'whiteBalanceMode' is not supported.

Details

Except for the availableCameras keyword, you must either include the /DEF flag or specify either the camera's Micro-Manager label (using the /L flag) or the name of the camera window (using the /W flag).

Most of the keywords supported by Igor's previous GetCamera operation do not correspond to features available from Micro-Manager's supported cameras. Thus many of those older keywords, although accepted by MMI_GetCamera, are unsupported.

Unless Quiet mode is selected, MMI_GetCamera reports to the history section of Igor's Command Window each time an unsupported keyword is entered.

Like Igor's previous GetCamera operation, MMI_GetCamera accepts a broad range of options that may not be supported in practice, by either the operating system or the camera driver. Some results are undefined when the driver does not support the corresponding feature.

Each device running in Micro-Manager exposes a number of parameters (called 'properties') that can refine operation of the device. You can change the values of many, but not all, of these properties to adjust the operation of the device. You can use the information provided by the properties keyword, together with the MMC_SetProperty operation to change the camera's properties and adjust its operation to meet your needs.

Output Variables

MMI_GetCamera sets the following output variables:

root:packages:mmI:V_MMIresult0 if the operation succeeded or a non-zero error code.
root:packages:mmI:S_MMIresultAn empty string if the operation succeeded, or an error message.
S_CameraNamesSet by the availableCameras keyword only to a semicolon-separated list of camera descriptions.
S_infoSet by all keywords except availableCameras to a keyword:value pair terminated by a semicolon. When the result for any keyword consists of multiple possible values they are separated by commas.

See Also

MMI_ModifyCamera, MMI_NewCamera, MMI_GetDevicePropertyList, MMC_SetProperty

MMI_ModifyCamera /Q /Z /L=labelStr /TO=ms /CLRO=colorOrder /W=windowName keyword=value

MMI_ModifyCamera uses Micro-Manager to change the settings of the specified camera, providing a substitute for the ModifyCamera operation that was part of Igor Pro since v.7.

MMI_ModifyCamera adjusts the settings of the currently active camera or the camera specified by the /L flag.

Because Micro-Manager's interface to its cameras relies on the variable sets of properties supported by each camera, MMI_ModifyCamera cannot provide a consistent interface across all cameras. Hence MMI_ModifyCamera does not implement many of the keywords provided by the now obsolete ModifyCamera operation.

Because of the variability in the sets of properties supported by individual cameras, MMI_ModifyCamera does not provide access to most of the properties exposed by individual cameras.

To streamline users updating old code and to minimize compilation errors, MMI_ModifyCamera accepts the same keywords as ModifyCamera. Calling MMI_ModifyCamera with unsupported keywords will produce run-time warnings unless the /Q flag is used.

Users can modify the operation of any specific camera using the set of properties exposed by that camera. For more about cameras and their properties, see Details below, and MMC_SetProperty.

Flags

/Q'Quiet' mode instructs MMI not to write internal errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.
/L = labelStrSpecifies the chosen camera by a string containing the camera's case-sensitive Micro-Manager device-label.
/TO = msms is a timeout in milliseconds. The capture of an image is terminated if it takes longer than ms milliseconds to complete. In the case of sequential capture, the timeout is applied to the first frame only. If capture is terminated due to timeout, IGOR returns a "timeout while writing data" error.
/CLRO = colorOrderSetting the color-order flag overrides MMI's default color-ordering when moving the retrieved image to the destination wave. The color-order flag applies only when working with multi-layer color (ex. RGB, RGBA, BGR, BGRA) images and is ignored when working with grayscale (monochrome) images. colorOrder is a case-insensitive string of three or four characters where the first three characters are either "rgb" or "bgr". MMI currently ignores any fourth letter (ex. RGBA) in the string.
/W = windowNameAssumes that windowName is the name of a graph created by a previous call to MMI_NewCamera and that the micro-manager label of the camera to be modified is contained within the notes for that window.

Keywords

cancelCapture
Cancels a capture in progress, if any.
capture[ = dataFolderAndName]
Captures a single frame and store it in a wave. dataFolderAndName is a data folder path to a wave or a simple name of a wave in the current data folder. The wave may or may not exist when you invoke capture. If it does exist, it is overwritten. If it does not, it will be created.
If you omit =dataFolderAndName, ModifyCamera creates the wave with the name M_Frame in the current data folder.
The created wave is a three-layer RGB wave of type unsigned byte.
It is best to use the capture keyword without any other keywords because the order of execution of keywords is unspecified.
ModifyCamera executes the capture before returning control to Igor. The time required is hardware-dependent and sets the speed limit when capturing a sequence of frames.
customFocusPoint = {fx,fy}
The keyword 'customFocusPoint' is not supported.
grabSequence = {nf,dt}
The keyword 'grabSequence' is not supported.
grabToFunction
The keyword 'grabToFunction' is not supported.
grabFunctionName = func
The keyword 'grabFunctionName' is not supported.
setPixelFormat = pixelFormatStr
The keyword 'setPixelFormat' is not supported.
searchAndLock
The keyword 'searchAndLock' is not supported.
setAspectRatio = {w,h}
The keyword 'setAspectRatio' is not supported.
setAutoAperture
The keyword 'setAutoAperture' is not supported.
setAutoISOSensitivity
The keyword 'setAutoISOSensitivity' is not supported.
setAutoShutterSpeed
The keyword 'setAutoShutterSpeed' is not supported.
setCaptureMode = cm
The keyword 'setCaptureMode' is not supported.
setColorFilter = cf
The keyword 'setColorFilter' is not supported.
setContrast = contrast
The keyword 'setContrast' is not supported.
setDenoising = dn
The keyword 'setDenoising' is not supported.
setExposureComp = ec
The keyword 'setExposureComp' is not supported.
setExposureMode = em
The keyword 'setExposureMode' is not supported.
setFlashMode = fm
The keyword 'setFlashMode' is not supported.
setFocusMode = fm
The keyword 'setFocusMode' is not supported.
setFocusPointMode = fpm
The keyword 'setFocusPointMode' is not supported.
setFrameRate = {min,max}
The keyword 'setFrameRate' is not supported.
setManualAperture = fn
The keyword 'setManualAperture' is not supported.
setManualIsoSensitivity = isoInt
The keyword 'setManualIsoSensitivity' is not supported.
setManualShutterSpeed = ss
The keyword 'setManualShutterSpeed' is not supported.
setManualWB = temp
The keyword 'setManualWB' is not supported.
setMeteringMode = mm
The keyword 'setMeteringMode' is not supported.
setPixelFormat = pf
The keyword 'setPixelFormat' is not supported.
setResolution = {w,h}
The keyword 'setResolution' is not supported.
setSaturation = st
The keyword 'setSaturation' is not supported.
setSharpening = sr
The keyword 'setSharpening' is not supported.
setSpotMeteringPoint = {x,y}
The keyword 'setSpotMeteringPoint' is not supported.
setWBMode = wb
The keyword 'setWBMode' is not supported.
startPreview
Starts sequential acquisition to the currently bound sequence-wave, or into the wave used by the most recent call to MMI_NewCamera.
stopPreview
Stops any active sequential acquisition.
unlock
The keyword 'unlock' is not supported.
zoomTo = {opticalZoom, digitalZoom}
The keyword 'zoomTo' is not supported.

Details

Like Igor's previous ModifyCamera operation, MMI_ModifyCamera accepts a broad range of options that may not be supported in practice by either the operating system or the camera driver.

In most situations the operation will not return an error in response to an unsupported request. The only reliable way to determine if a requested setting is supported is to execute MMI_GetCamera with the corresponding keyword.

Most of the keywords supported by Igor's previous ModifyCamera operation do not correspond to features available from Micro-Manager's supported cameras. Thus many of those older keywords, although accepted by MMI_ModifyCamera, are unsupported.

Each device running in Micro-Manager exposes a number of parameters (called 'properties') many of which can be adjusted to refine operation of the device. You can use the information provided by the MMI_GetCamera operation with the 'properties' keyword, together with the MMC_SetProperty operation to change the camera's properties and adjust its operation to meet your needs.

Output Variables

MMI_ModifyCamera sets the following output variables:

root:packages:mmI:V_MMIresult0 if the operation succeeded or a non-zero error code.
root:packages:mmI:S_MMIresultAn empty string if the operation succeeded, or an error message.

See Also

MMI_NewCamera, MMI_GetCamera, MMI_GetDevicePropertyList, MMC_SetProperty, Working with Color Images

MMI_NewCamera /Q /Z /DEST=dataFolderAndName /DRVR /HIDE=h /HOST=hcSpec /K=k /L=label /CLRO=colorOrder /O /S=sequence /N=winName /W=(left,top,right,bottom)

MMI_NewCamera uses Micro-Manager to create a new graph window to display live video from supported cameras, providing a substitute for the NewCamera operation that was part of Igor Pro since v.7.

Flags

/Q'Quiet' mode instructs MMI not to write internal messages or errors to the history area.
/Z'Suppress' mode instructs MMI to return normally to Igor, even when an error occurs. When the /Z flag is used, it is left to the user to check for errors, reported by non-zero values in the numeric variable V_MMIresult. If an error occurs, an error message is written to the global string variable S_MMIresult.

/DEST=dataFolderAndName

Direct the sequence of images to a specific destination wave. dataFolderAndName is a data folder path to a wave or a simple name of a wave in the current data folder. The wave may or may not exist. If the destination wave does not exist, it will be created. If the wave already exists, MMI will report an error unless the /O (overwrite) flag is also used.
/DRVRValid only when used together with the /S flag, the /DRVR flag instructs MMI to include in its list of cameras, all those cameras whose device-adapters can be loaded, even if the corresponding hardware is not actually connected to the computer. The /DRVR flag generates a longer list of available cameras, but will likely include many cameras that are not connected. The /DRVR flag is also available for use with the availablecameras keyword in MMI_GetCamera.
/HIDE = hHides (h = 1) or shows (h = 0, default) the window.
/HOST = hcSpecEmbeds the new camera window in the host window or subwindow specified by hcSpec. The host window or subwindow must be a control panel or a graph. See Subwindow Syntax for details on the window naming-hierarchy required when identifying a subwindow with hcSpec,
/K = kSpecifies window behavior when the user attempts to close it.
k =0:Normal with dialog (default).
k =1:Kills with no dialog.
k =2:Disables killing.
k =3:Hides the window.
/L = labelSpecifies the Micro-Manager device-label of the camera to use. label is a case-sensitive string.
/CLRO = colorOrderSetting the color-order flag overrides MMI's default color-ordering when moving the retrieved image to the destination wave. The color-order flag applies only when working with multi-layer color (ex. RGB, RGBA, BGR, BGRA) images and is ignored when working with grayscale (monochrome) images. colorOrder is a case-insensitive string of three or four characters where the first three characters are either "rgb" or "bgr". MMI currently ignores any fourth letter (ex. RGBA) in the string.
/N = nameSpecifies the name to use for the created graph window, if that name is not already in use. If it is already in use, then name0, name1, etc. are tried until an unused window name is found. If you omit /N, MMI_NewCamera uses names like Graph, Graph0, Graph1, etc. MMI_NewCamera sets S_name to the chosen name.
/O'Overwrite' mode instructs MMI to replace any pre-existing wave that has the same name as the destination wave.
/S = nSelects camera n from the sequence of available cameras on the current machine. n is zero-based. See also the availableCameras keyword for MMI_GetCamera .
/W = (left,top,right,bottom)
Sets the window location. Coordinates are in points for top-level windows.
When used with the /HOST flag, the specified location coordinates can have one of two possible meanings:
1. When all values are less than 1, coordinates are assumed to be fractional relative to the host frame size.
2. When any value is greater than 1, coordinates are taken to be fixed locations measured in points, or Control Panel Units for control panel hosts, relative to the top left corner of the host frame.

If present, MMI_NewCamera sets V_Flag to 0 if the operation succeeded or to a non-zero error code.

Details

If you have a single camera connected to your computer, you can generally display live video by simply executing MMI_NewCamera without any flags or keywords.

You can control the resulting graph window like other Igor target windows, using MoveWindow, SetWindow, etc.

If you have more than one camera connected to your computer, you can specify which camera to acquire from by using the /L flag with the camera's (pre-assigned) Micro-Manager device label (see MMC_LoadDevice), or by using the /S flag and the camera's zero-based sequence number within the list of available cameras. (See MMI_GetCamera and the availableCameras keyword.)

Igor saves the created graph windows with the experiment and opens them in live mode if it finds a matching camera when you re-open the experiment. If you do not have a matching camera, Igor still displays the camera window although with a missing camera indicator.

By default each call to MMI_NewCamera creates a uniquely named wave to hold the acquired images. To prevent inadvertent changes to this wave, MMI locks any waves it creates before acquisition begins. The wave remains locked until the corresponding graph window is killed, the user halts the camera (ex. MMI_ModifyCamera stoppreview), or calls MMI_ReleaseSequenceWave or MMI_Reset.

Output Variables

MMI_NewCamera sets the following output variables:

root:Packages:mmI:V_MMIresult0 if the operation succeeded or a non-zero error code.
root:Packages:mmI:S_MMIresultAn empty string if the operation succeeded, or an error message.
S_NameThe name of the new camera window.

See Also

MMI_GetCamera, MMI_ModifyCamera, MMI_ReleaseSequenceWave, MMI_Reset, Working with Color Images

MMI_GetXOPversion ( )

Returns an Igor string containing the version number of the MMI XOP. For example, typing the following on Igor's command line

print MMI_GetXOPversion()

evokes the response

MMI.xop v.1.1.0.19

See Also

MMC_GetVersionInfo, MMC_GetAPIVersionInfo