MMDevice
Loading...
Searching...
No Matches
Classes | Functions | Variables
DeviceBase.h File Reference
#include "MMDevice.h"
#include "CameraImageMetadata.h"
#include "DeviceThreads.h"
#include "DeviceUtils.h"
#include "MMDeviceConstants.h"
#include "ModuleInterface.h"
#include "Property.h"
#include <math.h>
#include <assert.h>
#include <string>
#include <vector>
#include <iomanip>
#include <map>
#include <sstream>
#include <utility>

Go to the source code of this file.

Classes

class  CDeviceBase< T, U >
 Implement functionality common to all devices. More...
 
class  CDeviceBase< MM::Device, U >
 
class  CGenericBase< U >
 Base class for creating generic devices. More...
 
class  CCameraBase< U >
 Base class for creating camera device adapters. More...
 
class  CLegacyCameraBase< U >
 Legacy base class for creating camera device adapters. More...
 
class  CLegacyCameraBase< U >::CaptureRestartHelper
 
class  CLegacyCameraBase< U >::BaseSequenceThread
 
class  CStageBase< U >
 Base class for creating single axis stage adapters. More...
 
class  CXYStageBase< U >
 Base class for creating dual axis stage adapters. More...
 
class  CShutterBase< U >
 Base class for creating shutter device adapters. More...
 
class  CSerialBase< U >
 Base class for creating serial port device adapters. More...
 
class  CAutoFocusBase< U >
 Base class for creating auto-focusing modules. More...
 
class  CImageProcessorBase< U >
 Base class for creating image processing modules. More...
 
class  CSignalIOBase< U >
 Base class for creating ADC/DAC modules. More...
 
class  CMagnifierBase< U >
 Base class for creating devices that can change magnification (NS). More...
 
class  CSLMBase< U >
 Base class for creating SLM devices that can project images. More...
 
class  CGalvoBase< U >
 Base class for creating Galvo devices. More...
 
class  HubBase< U >
 Base class for creating special HUB devices for managing device libraries. More...
 
class  CStateDeviceBase< U >
 Base class for creating state device adapters such as filter wheels, objectives, turrets, etc. More...
 
class  CVolumetricPumpBase< U >
 Base class for creating volumetric pump device adapters. More...
 
class  CPressurePumpBase< U >
 Base class for creating pressure pump device adapters. More...
 

Functions

long nint (double value)
 

Variables

const char *const g_Msg_ERR = "Unknown error in the device"
 
const char *const g_Msg_INVALID_PROPERTY = "Invalid property name encountered"
 
const char *const g_Msg_INVALID_PROPERTY_VALUE = "Invalid property value"
 
const char *const g_Msg_DUPLICATE_PROPERTY = "Duplicate property names are not allowed"
 
const char *const g_Msg_INVALID_PROPERTY_TYPE = "Invalid property type"
 
const char *const g_Msg_NATIVE_MODULE_FAILED = "Native module failed to load"
 
const char *const g_Msg_UNSUPPORTED_DATA_FORMAT = "Unsupported data format encountered"
 
const char *const g_Msg_INTERNAL_INCONSISTENCY = "Device adapter inconsistent with the actual device"
 
const char *const g_Msg_NOT_SUPPORTED = "Device not supported by the adapter"
 
const char *const g_Msg_UNKNOWN_LABEL = "Label not defined"
 
const char *const g_Msg_UNSUPPORTED_COMMAND = "Unsupported device command"
 
const char *const g_Msg_UNKNOWN_POSITION = "Invalid state (position) requested"
 
const char *const g_Msg_NO_CALLBACK_REGISTERED = "No callback registered"
 
const char *const g_Msg_SERIAL_BUFFER_OVERRUN = "Serial buffer overrun."
 
const char *const g_Msg_SERIAL_INVALID_RESPONSE = "Unexpected response from serial port. Is the device connected to the correct serial port?"
 
const char *const g_Msg_SERIAL_TIMEOUT = "Serial timeout occurred."
 
const char *const g_Msg_SELF_REFERENCE = "Self reference error."
 
const char *const g_Msg_NO_PROPERTY_DATA = "No property data error."
 
const char *const g_Msg_DEVICE_DUPLICATE_LABEL = "Position label already in use"
 
const char *const g_Msg_INVALID_INPUT_PARAM = "Invalid input parameter."
 
const char *const g_Msg_BUFFER_OVERFLOW = "Buffer Overflow."
 
const char *const g_Msg_SERIAL_COMMAND_FAILED = "Serial command failed. Is the device connected to the serial port?"
 
const char *const g_Msg_DEVICE_NONEXISTENT_CHANNEL = "Requested channel is not defined."
 
const char *const g_Msg_DEVICE_INVALID_PROPERTY_LIMTS
 
const char *const g_Msg_EXCEPTION_IN_THREAD = "Exception in the thread function."
 
const char *const g_Msg_EXCEPTION_IN_ON_THREAD_EXITING = "Exception in the OnThreadExiting function."
 
const char *const g_Msg_SEQUENCE_ACQUISITION_THREAD_EXITING ="Sequence thread exiting"
 
const char *const g_Msg_DEVICE_CAMERA_BUSY_ACQUIRING ="Camera is busy acquiring images. Stop camera activity before changing this property"
 
const char *const g_Msg_DEVICE_CAN_NOT_SET_PROPERTY ="The device can not set this property at this moment"
 
const char *const g_Msg_DEVICE_NOT_CONNECTED ="Unable to communicate with the device."
 
const char *const g_Msg_DEVICE_COMM_HUB_MISSING = "Parent module (Hub) is not available or defined for this device!"
 
const char *const g_Msg_DEVICE_DUPLICATE_LIBRARY ="Duplicate Device Library Name"
 
const char *const g_Msg_DEVICE_PROPERTY_NOT_SEQUENCEABLE ="This property is not sequenceable"
 
const char *const g_Msg_DEVICE_SEQUENCE_TOO_LARGE ="Sequence is too large for this device"
 
const char *const g_Msg_DEVICE_NOT_YET_IMPLEMENTED ="This command has not yet been implemented for this device."
 

Function Documentation

◆ nint()

long nint ( double value)
inline

Variable Documentation

◆ g_Msg_BUFFER_OVERFLOW

const char* const g_Msg_BUFFER_OVERFLOW = "Buffer Overflow."

◆ g_Msg_DEVICE_CAMERA_BUSY_ACQUIRING

const char* const g_Msg_DEVICE_CAMERA_BUSY_ACQUIRING ="Camera is busy acquiring images. Stop camera activity before changing this property"

◆ g_Msg_DEVICE_CAN_NOT_SET_PROPERTY

const char* const g_Msg_DEVICE_CAN_NOT_SET_PROPERTY ="The device can not set this property at this moment"

◆ g_Msg_DEVICE_COMM_HUB_MISSING

const char* const g_Msg_DEVICE_COMM_HUB_MISSING = "Parent module (Hub) is not available or defined for this device!"

◆ g_Msg_DEVICE_DUPLICATE_LABEL

const char* const g_Msg_DEVICE_DUPLICATE_LABEL = "Position label already in use"

◆ g_Msg_DEVICE_DUPLICATE_LIBRARY

const char* const g_Msg_DEVICE_DUPLICATE_LIBRARY ="Duplicate Device Library Name"

◆ g_Msg_DEVICE_INVALID_PROPERTY_LIMTS

const char* const g_Msg_DEVICE_INVALID_PROPERTY_LIMTS
Initial value:
= "Specified property limits are not valid."
" Either the property already has a set of discrete values, or the range is invalid"

◆ g_Msg_DEVICE_NONEXISTENT_CHANNEL

const char* const g_Msg_DEVICE_NONEXISTENT_CHANNEL = "Requested channel is not defined."

◆ g_Msg_DEVICE_NOT_CONNECTED

const char* const g_Msg_DEVICE_NOT_CONNECTED ="Unable to communicate with the device."

◆ g_Msg_DEVICE_NOT_YET_IMPLEMENTED

const char* const g_Msg_DEVICE_NOT_YET_IMPLEMENTED ="This command has not yet been implemented for this device."

◆ g_Msg_DEVICE_PROPERTY_NOT_SEQUENCEABLE

const char* const g_Msg_DEVICE_PROPERTY_NOT_SEQUENCEABLE ="This property is not sequenceable"

◆ g_Msg_DEVICE_SEQUENCE_TOO_LARGE

const char* const g_Msg_DEVICE_SEQUENCE_TOO_LARGE ="Sequence is too large for this device"

◆ g_Msg_DUPLICATE_PROPERTY

const char* const g_Msg_DUPLICATE_PROPERTY = "Duplicate property names are not allowed"

◆ g_Msg_ERR

const char* const g_Msg_ERR = "Unknown error in the device"

◆ g_Msg_EXCEPTION_IN_ON_THREAD_EXITING

const char* const g_Msg_EXCEPTION_IN_ON_THREAD_EXITING = "Exception in the OnThreadExiting function."

◆ g_Msg_EXCEPTION_IN_THREAD

const char* const g_Msg_EXCEPTION_IN_THREAD = "Exception in the thread function."

◆ g_Msg_INTERNAL_INCONSISTENCY

const char* const g_Msg_INTERNAL_INCONSISTENCY = "Device adapter inconsistent with the actual device"

◆ g_Msg_INVALID_INPUT_PARAM

const char* const g_Msg_INVALID_INPUT_PARAM = "Invalid input parameter."

◆ g_Msg_INVALID_PROPERTY

const char* const g_Msg_INVALID_PROPERTY = "Invalid property name encountered"

◆ g_Msg_INVALID_PROPERTY_TYPE

const char* const g_Msg_INVALID_PROPERTY_TYPE = "Invalid property type"

◆ g_Msg_INVALID_PROPERTY_VALUE

const char* const g_Msg_INVALID_PROPERTY_VALUE = "Invalid property value"

◆ g_Msg_NATIVE_MODULE_FAILED

const char* const g_Msg_NATIVE_MODULE_FAILED = "Native module failed to load"

◆ g_Msg_NO_CALLBACK_REGISTERED

const char* const g_Msg_NO_CALLBACK_REGISTERED = "No callback registered"

◆ g_Msg_NO_PROPERTY_DATA

const char* const g_Msg_NO_PROPERTY_DATA = "No property data error."

◆ g_Msg_NOT_SUPPORTED

const char* const g_Msg_NOT_SUPPORTED = "Device not supported by the adapter"

◆ g_Msg_SELF_REFERENCE

const char* const g_Msg_SELF_REFERENCE = "Self reference error."

◆ g_Msg_SEQUENCE_ACQUISITION_THREAD_EXITING

const char* const g_Msg_SEQUENCE_ACQUISITION_THREAD_EXITING ="Sequence thread exiting"

◆ g_Msg_SERIAL_BUFFER_OVERRUN

const char* const g_Msg_SERIAL_BUFFER_OVERRUN = "Serial buffer overrun."

◆ g_Msg_SERIAL_COMMAND_FAILED

const char* const g_Msg_SERIAL_COMMAND_FAILED = "Serial command failed. Is the device connected to the serial port?"

◆ g_Msg_SERIAL_INVALID_RESPONSE

const char* const g_Msg_SERIAL_INVALID_RESPONSE = "Unexpected response from serial port. Is the device connected to the correct serial port?"

◆ g_Msg_SERIAL_TIMEOUT

const char* const g_Msg_SERIAL_TIMEOUT = "Serial timeout occurred."

◆ g_Msg_UNKNOWN_LABEL

const char* const g_Msg_UNKNOWN_LABEL = "Label not defined"

◆ g_Msg_UNKNOWN_POSITION

const char* const g_Msg_UNKNOWN_POSITION = "Invalid state (position) requested"

◆ g_Msg_UNSUPPORTED_COMMAND

const char* const g_Msg_UNSUPPORTED_COMMAND = "Unsupported device command"

◆ g_Msg_UNSUPPORTED_DATA_FORMAT

const char* const g_Msg_UNSUPPORTED_DATA_FORMAT = "Unsupported data format encountered"