MMDevice 70
Public Member Functions | List of all members
MM::Core Class Referenceabstract

#include <MMDevice.h>

Public Member Functions

virtual int LogMessage (const Device *caller, const char *msg, bool debugOnly) const =0
 
virtual DeviceGetDevice (const Device *caller, const char *label)=0
 
virtual int GetDeviceProperty (const char *deviceName, const char *propName, char *value)=0
 
virtual int SetDeviceProperty (const char *deviceName, const char *propName, const char *value)=0
 
virtual void GetLoadedDeviceOfType (const Device *caller, MM::DeviceType devType, char *pDeviceName, const unsigned int deviceIterator)=0
 Get the names of currently loaded devices of a given type.
 
virtual int SetSerialProperties (const char *portName, const char *answerTimeout, const char *baudRate, const char *delayBetweenCharsMs, const char *handshaking, const char *parity, const char *stopBits)=0
 
virtual int SetSerialCommand (const Device *caller, const char *portName, const char *command, const char *term)=0
 
virtual int GetSerialAnswer (const Device *caller, const char *portName, unsigned long ansLength, char *answer, const char *term)=0
 
virtual int WriteToSerial (const Device *caller, const char *port, const unsigned char *buf, unsigned long length)=0
 
virtual int ReadFromSerial (const Device *caller, const char *port, unsigned char *buf, unsigned long length, unsigned long &read)=0
 
virtual int PurgeSerial (const Device *caller, const char *portName)=0
 
virtual MM::PortType GetSerialPortType (const char *portName) const =0
 
virtual int OnPropertiesChanged (const Device *caller)=0
 
virtual int OnPropertyChanged (const Device *caller, const char *propName, const char *propValue)=0
 
virtual int OnStagePositionChanged (const Device *caller, double pos)=0
 
virtual int OnXYStagePositionChanged (const Device *caller, double xPos, double yPos)=0
 
virtual int OnExposureChanged (const Device *caller, double newExposure)=0
 
virtual int OnSLMExposureChanged (const Device *caller, double newExposure)=0
 
virtual int OnMagnifierChanged (const Device *caller)=0
 
virtual unsigned long GetClockTicksUs (const Device *caller)=0
 
virtual MM::MMTime GetCurrentMMTime ()=0
 
virtual int AcqFinished (const Device *caller, int statusCode)=0
 
virtual int PrepareForAcq (const Device *caller)=0
 
 MM_DEPRECATED (virtual int InsertImage(const Device *caller, const ImgBuffer &buf))=0
 
virtual int InsertImage (const Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, unsigned nComponents, const char *serializedMetadata, const bool doProcess=true)=0
 
 MM_DEPRECATED (virtual int InsertImage(const Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const Metadata *md=0, const bool doProcess=true))=0
 
virtual int InsertImage (const Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const char *serializedMetadata, const bool doProcess=true)=0
 
virtual void ClearImageBuffer (const Device *caller)=0
 
virtual bool InitializeImageBuffer (unsigned channels, unsigned slices, unsigned int w, unsigned int h, unsigned int pixDepth)=0
 
 MM_DEPRECATED (virtual int InsertMultiChannel(const Device *caller, const unsigned char *buf, unsigned numChannels, unsigned width, unsigned height, unsigned byteDepth, Metadata *md=0))=0
 
 MM_DEPRECATED (virtual const char *GetImage())=0
 
 MM_DEPRECATED (virtual int GetImageDimensions(int &width, int &height, int &depth))=0
 
 MM_DEPRECATED (virtual int GetFocusPosition(double &pos))=0
 
 MM_DEPRECATED (virtual int SetFocusPosition(double pos))=0
 
 MM_DEPRECATED (virtual int MoveFocus(double velocity))=0
 
 MM_DEPRECATED (virtual int SetXYPosition(double x, double y))=0
 
 MM_DEPRECATED (virtual int GetXYPosition(double &x, double &y))=0
 
 MM_DEPRECATED (virtual int MoveXYStage(double vX, double vY))=0
 
 MM_DEPRECATED (virtual int SetExposure(double expMs))=0
 
 MM_DEPRECATED (virtual int GetExposure(double &expMs))=0
 
 MM_DEPRECATED (virtual int SetConfig(const char *group, const char *name))=0
 
 MM_DEPRECATED (virtual int GetCurrentConfig(const char *group, int bufLen, char *name))=0
 
 MM_DEPRECATED (virtual int GetChannelConfig(char *channelConfigName, const unsigned int channelConfigIterator))=0
 
 MM_DEPRECATED (virtual MM::ImageProcessor *GetImageProcessor(const MM::Device *caller))=0
 
 MM_DEPRECATED (virtual MM::AutoFocus *GetAutoFocus(const MM::Device *caller))=0
 
virtual MM::HubGetParentHub (const MM::Device *caller) const =0
 
 MM_DEPRECATED (virtual MM::State *GetStateDevice(const MM::Device *caller, const char *deviceName))=0
 
 MM_DEPRECATED (virtual MM::SignalIO *GetSignalIODevice(const MM::Device *caller, const char *deviceName))=0
 
 MM_DEPRECATED (virtual void NextPostedError(int &, char *, int, int &))=0
 
 MM_DEPRECATED (virtual void PostError(const int, const char *))=0
 
 MM_DEPRECATED (virtual void ClearPostedErrors(void))=0
 

Detailed Description

Callback API to the core control module. Devices use this abstract interface to use Core services

Member Function Documentation

◆ GetDevice()

virtual Device * MM::Core::GetDevice ( const Device caller,
const char *  label 
)
pure virtual

Callback that allows this device adapter to get a pointer to another device. Be aware of potential threading issues. Provide a valid label for the device and receive a pointer to the desired device.

Referenced by CDeviceBase< T, U >::GetDevice().

◆ GetLoadedDeviceOfType()

virtual void MM::Core::GetLoadedDeviceOfType ( const Device caller,
MM::DeviceType  devType,
char *  pDeviceName,
const unsigned int  deviceIterator 
)
pure virtual

Get the names of currently loaded devices of a given type.

If deviceIterator exceeds or is equal to the number of currently loaded devices of type devType, an empty string is returned.

Parameters
[in]devType- the device type
[out]pDeviceName- buffer in which device name will be returned
[in]deviceIterator- index of device (within the given type)

Referenced by CDeviceBase< T, U >::GetLoadedDeviceOfType().

◆ InsertImage() [1/2]

virtual int MM::Core::InsertImage ( const Device caller,
const unsigned char *  buf,
unsigned  width,
unsigned  height,
unsigned  byteDepth,
const char *  serializedMetadata,
const bool  doProcess = true 
)
pure virtual

Same as the overload with the added nComponents parameter.

Assumes nComponents == 1 (grayscale).

◆ InsertImage() [2/2]

virtual int MM::Core::InsertImage ( const Device caller,
const unsigned char *  buf,
unsigned  width,
unsigned  height,
unsigned  byteDepth,
unsigned  nComponents,
const char *  serializedMetadata,
const bool  doProcess = true 
)
pure virtual

Cameras must call this function during sequence acquisition to send each frame to the Core.

byteDepth: 1 or 2 for grayscale images; 4 for BGR_

nComponents: 1 for grayscale; 4 for BGR_ (_: unused component)

serializedMetadata: must be the result of md.serialize().c_str() (md being an instance of Metadata)

doProcess: must normally be true, except for the case mentioned below

If the sequence acquisition was started with stopOnOverflow = true and the return value of InsertImage() is DEVICE_BUFFER_OVERFLOW, ClearImageBuffer() should be called and the call to InsertImage() should then be repeated with doProcess set to false. Otherwise, if the return value is not DEVICE_OK, or the second call failed (with any code), acquisition should stop.

◆ LogMessage()

virtual int MM::Core::LogMessage ( const Device caller,
const char *  msg,
bool  debugOnly 
) const
pure virtual

Logs a message (msg) in the Corelog output, labeled with the device name (derived from caller). If debugOnly flag is true, the output will only be logged if the general system has been set to output debug logging.

Referenced by CDeviceBase< T, U >::LogMessage(), CDeviceBase< T, U >::LogMessage(), CDeviceBase< T, U >::LogMessageCode(), and CDeviceBase< T, U >::LogTimeDiff().

◆ MM_DEPRECATED() [1/6]

MM::Core::MM_DEPRECATED ( virtual int   InsertImageconst Device *caller, const ImgBuffer &buf)
pure virtual
Deprecated:
Use the other overloads instead.

Referenced by MM_DEPRECATED().

◆ MM_DEPRECATED() [2/6]

MM::Core::MM_DEPRECATED ( virtual int   InsertImageconst Device *caller, const unsigned char *buf, unsigned width, unsigned height, unsigned byteDepth, const Metadata *md=0, const bool doProcess=true)
pure virtual
Deprecated:
Use the other overloads instead.

◆ MM_DEPRECATED() [3/6]

MM::Core::MM_DEPRECATED ( virtual int   InsertMultiChannelconst Device *caller, const unsigned char *buf, unsigned numChannels, unsigned width, unsigned height, unsigned byteDepth, Metadata *md=0)
pure virtual
Deprecated:
Use InsertImage() instead.

References MM_DEPRECATED().

◆ MM_DEPRECATED() [4/6]

MM::Core::MM_DEPRECATED ( virtual void   ClearPostedErrorsvoid)
pure virtual
Deprecated:
Better handling of asynchronous errors to be developed.

◆ MM_DEPRECATED() [5/6]

MM::Core::MM_DEPRECATED ( virtual void   NextPostedErrorint &, char *, int, int &)
pure virtual
Deprecated:
Not sure what this was meant to do.

◆ MM_DEPRECATED() [6/6]

MM::Core::MM_DEPRECATED ( virtual void   PostErrorconst int, const char *)
pure virtual
Deprecated:
Better handling of asynchronous errors to be developed.

◆ OnExposureChanged()

virtual int MM::Core::OnExposureChanged ( const Device caller,
double  newExposure 
)
pure virtual

When the exposure time has changed, use this callback to inform the UI

◆ OnMagnifierChanged()

virtual int MM::Core::OnMagnifierChanged ( const Device caller)
pure virtual

Magnifiers can use this to signal changes in magnification

◆ OnPropertyChanged()

virtual int MM::Core::OnPropertyChanged ( const Device caller,
const char *  propName,
const char *  propValue 
)
pure virtual

Callback to signal the UI that a property changed The Core will check if groups or pixel size changed as a consequence of the change of this property and inform the UI

Referenced by CDeviceBase< T, U >::OnPropertyChanged().

◆ OnSLMExposureChanged()

virtual int MM::Core::OnSLMExposureChanged ( const Device caller,
double  newExposure 
)
pure virtual

When the SLM exposure time has changed, use this callback to inform the UI

◆ OnStagePositionChanged()

virtual int MM::Core::OnStagePositionChanged ( const Device caller,
double  pos 
)
pure virtual

If the stage is aware that it has reached a new position, it should call this callback to signal the UI

◆ OnXYStagePositionChanged()

virtual int MM::Core::OnXYStagePositionChanged ( const Device caller,
double  xPos,
double  yPos 
)
pure virtual

If an XY stage is aware that it has reached a new position, it should call this callback to signal the UI


The documentation for this class was generated from the following file: