itom  4.1.0
ito::AddInDataIO Class Reference

base class for all dataIO plugin classes More...

#include <addInInterface.h>

Inheritance diagram for ito::AddInDataIO:
ito::AddInBase ito::AddInGrabber

Public Slots

virtual ito::RetVal startDevice (ItomSharedSemaphore *waitCond)
 method to start the device - i.e. get ready to record data
 
virtual ito::RetVal stopDevice (ItomSharedSemaphore *waitCond)
 method to stop the device, it is no longer possible to acquire data
 
virtual ito::RetVal acquire (const int trigger, ItomSharedSemaphore *waitCond=NULL)
 freeze the current data and prepare it for retrieval
 
virtual ito::RetVal stop (ItomSharedSemaphore *waitCond=NULL)
 stops a continuous acquisition (usually only required by AD/DA converters). This method has not to be implemented in every plugin. New from itom.AddIn.Interface/4.0.0 on
 
virtual ito::RetVal getVal (void *data, ItomSharedSemaphore *waitCond=NULL)
 read data from the device into a dataObject (which is passed as void pointer actually). Output is a shallow-copy to the grabber internal buffer-object.
 
virtual ito::RetVal getVal (QSharedPointer< char > data, QSharedPointer< int > length, ItomSharedSemaphore *waitCond=NULL)
 read data from the device into a "raw data pointer" (in this case a char * is passed, pointing to the start of the preallocated memory)
 
virtual ito::RetVal copyVal (void *dObj, ItomSharedSemaphore *waitCond)
 read data from the device into a dataObject (which is passed as void pointer actually). Output is a deep-copy to the grabber internal object.
 
virtual ito::RetVal setVal (const char *data, const int length, ItomSharedSemaphore *waitCond=NULL)
 write data, e.g. to the DA part of an ADDA card
 
ito::RetVal enableAutoGrabbing (ItomSharedSemaphore *waitCond=NULL)
 enables the timer for auto grabbing (live image), if any live image has signed on (usually this method must not be overwritten)
 
ito::RetVal disableAutoGrabbing (ItomSharedSemaphore *waitCond=NULL)
 disables the timer for auto grabbing (live image) (usually this method must not be overwritten)
 
ito::RetVal setAutoGrabbingInterval (QSharedPointer< int > interval, ItomSharedSemaphore *waitCond=NULL)
 sets a new interval for the auto-grabbing timer (in ms). If interval <= 0 is passed, nothing is changed, but the current interval is returned. This method does not enable or disable the timer.
 
ito::RetVal startDeviceAndRegisterListener (QObject *obj, ItomSharedSemaphore *waitCond=NULL)
 starts device and registers obj as listener (live image). This listener must have a slot void setSource(QSharedPointer<ito::DataObject>, ItomSaredSemaphore).
 
ito::RetVal stopDeviceAndUnregisterListener (QObject *obj, ItomSharedSemaphore *waitCond=NULL)
 stops device and unregisters obj (live image).
 
- Public Slots inherited from ito::AddInBase
virtual ito::RetVal init (QVector< ito::ParamBase > *paramsMand, QVector< ito::ParamBase > *paramsOpt, ItomSharedSemaphore *waitCond=NULL)=0
 method for the initialisation of a new instance of the class (must be overwritten)
 
virtual ito::RetVal close (ItomSharedSemaphore *waitCond)=0
 method for closing an instance (must be overwritten)
 
virtual ito::RetVal getParam (QSharedPointer< ito::Param > val, ItomSharedSemaphore *waitCond=NULL)=0
 method for the retrieval of a parameter. The actual value is always passed as ito::Param (must be overwritten). See also setParam
 
virtual ito::RetVal setParam (QSharedPointer< ito::ParamBase > val, ItomSharedSemaphore *waitCond=NULL)=0
 method to set a parameter. The actual value is always passed as ito::ParamBase (must be overwritten). See also getParam
 
ito::RetVal setParamVector (const QVector< QSharedPointer< ito::ParamBase > > values, ItomSharedSemaphore *waitCond=NULL)
 method for setting various parameters (can be used instead of multiple calls to setParam, this can safe multiple invocations) More...
 
ito::RetVal getParamVector (const QVector< QSharedPointer< ito::Param > > values, ItomSharedSemaphore *waitCond=NULL)
 method for getting various parameters (can be used instead of multiple calls to getParam, this can safe multiple invocations) More...
 
virtual ito::RetVal execFunc (const QString funcName, QSharedPointer< QVector< ito::ParamBase > > paramsMand, QSharedPointer< QVector< ito::ParamBase > > paramsOpt, QSharedPointer< QVector< ito::ParamBase > > paramsOut, ItomSharedSemaphore *waitCond=NULL)
 overwrite this function if you registered exec funcs. Once the exec function is called, this method is executed. More...
 
ito::RetVal moveBackToApplicationThread (ItomSharedSemaphore *waitCond=NULL)
 method invoked by AddInManager if the plugin should be pulled back to the main thread of itom. (not for direct use in plugins) More...
 
void sendParameterRequest ()
 immediately emits the signal parametersChanged More...
 

Public Member Functions

int getAutoGrabbing ()
 
- Public Member Functions inherited from ito::AddInBase
const Param getParamRec (const QString name, bool *nameCheckOk=NULL) const
 method to retrieve a parameter from the parameter map (m_params) More...
 
AddInInterfaceBasegetBasePlugin (void) const
 returns the interface of this instance. More...
 
ito::RetVal MoveToThread (void)
 creates new thread for the class instance and moves this instance to the new thread
 
const ito::RetVal getParamList (QMap< QString, Param > **paramNames)
 returns a map with the parameters of this plugin.
 
const ito::RetVal getExecFuncList (QMap< QString, ExecFuncParams > **funcs)
 returns list of registered additional functions
 
int getID () const
 retrieve the uniqueID of this instance
 
QString getIdentifier () const
 retrieve the unique identifier of this instance
 
virtual int hasConfDialog (void)
 determine if a configuration dialog is available More...
 
virtual const ito::RetVal showConfDialog (void)
 open configuration dialog More...
 
int createdByGUI () const
 returns true if this instance has firstly been created by the GUI
 
void setCreatedByGUI (int value)
 method to set whether this instance has been firstly created by the GUI (true) or by any other component (Python, C++, other plugin,..) (false)
 
int getRefCount (void) const
 Returns the reference counter of this instance.
 
bool hasDockWidget (void) const
 Returns true if this plugin provides a dock widget, that can be shown in the main window.
 
QDockWidget * getDockWidget (void) const
 Returns the reference to the dock widget of this plugin or NULL, if no dock widget is provided or if it is already deleted. More...
 
virtual void dockWidgetDefaultStyle (bool &floating, bool &visible, Qt::DockWidgetArea &defaultArea) const
 returns default style properties for dock-widget of plugin
 
int isAlive (void)
 returns the alive-flag of this plugin
 
void setAlive (void)
 sets the alive-flag to 1 ("still alive")
 
bool isInitialized (void) const
 returns in a thread-safe way the status of the m_initialized-member variable. This variable should be set to true at the end of the init-method.
 
void setInitialized (bool initialized)
 sets in a thread-safe way the status of the m_initialized-member
 
QVector< ito::AddInBase::AddInRef * > * getArgAddIns (void)
 returns vector of AddInRef instances.
 
QMutex & getUserMutex ()
 returns the user mutex of this plugin, that can be used for user-defined purposes.
 

Protected Member Functions

void runStatusChanged (bool deviceStarted)
 
- Protected Member Functions inherited from ito::AddInBase
 AddInBase ()
 Constructor. More...
 
virtual ~AddInBase ()
 Destructor. More...
 
void setIdentifier (const QString &identifier)
 sets the identifier of the plugin. The slot AbstractAddInDockWidget::identifierChanged is invoked if a corresponding dock widget is available.
 
void createDockWidget (QString title, QDockWidget::DockWidgetFeatures features, Qt::DockWidgetAreas allowedAreas=Qt::AllDockWidgetAreas, QWidget *content=NULL)
 Creates the dock-widget for this plugin.
 
ito::RetVal registerExecFunc (const QString funcName, const QVector< ito::Param > &paramsMand, const QVector< ito::Param > &paramsOpt, const QVector< ito::Param > &paramsOut, const QString infoString)
 Registers an additional function with specific name and default parameters.
 
void setBasePlugin (AddInInterfaceBase *base)
 sets the interface of this instance to base. More...
 
bool hasGuiSupport ()
 check if we have gui support
 

Protected Attributes

QSet< QObject * > m_autoGrabbingListeners
 
int m_timerID
 
int m_timerIntervalMS
 
bool m_autoGrabbingEnabled
 
- Protected Attributes inherited from ito::AddInBase
QMap< QString, Paramm_params
 map of the available parameters
 
QString m_identifier
 unique identifier (serial number, com-port...)
 

Private Member Functions

 Q_DECLARE_PRIVATE (AddInDataIO)
 

self-managed pointer to the private class container (deletes itself if d_ptr is destroyed)


 

Private Attributes

QScopedPointer< AddInDataIOPrivated_ptr
 

Additional Inherited Members

- Signals inherited from ito::AddInBase
void parametersChanged (QMap< QString, ito::Param > params)
 This signal usually is emitted if the vector m_params is changed. More...
 
- Static Public Member Functions inherited from ito::AddInBase
static int getMaximumThreadCount ()
 
static RetVal setMaximumThreadCount (int threadCount)
 

Detailed Description

base class for all dataIO plugin classes

This class is one step further down the line from AddInBase. DataIO plugins must be derived from this class which is derived from AddInBase. In this class only the methods specific to dataIO plugins are declared. A dataIO device (e.g. a framegrabber / camera) should use this sequence to operate:

  1. startDevice - device is now ready to acquire data
  2. acquire - now a data set is freezed and prepared for retrieval
  3. getVal - method to retrieve the previously freezed data (shallow copy, if you want to work with this data, make a deep copy)
  4. stopDevice - acquisition is stopped, device is no longer ready to record data

the steps 2. and 3. can be repeated until the desired number of "frames" has been read. The device should be only started once before the first acquisition of a sequence and stop only at their end. The device itself MUST NOT allocate memory for the data to be stored. This HAS TO BE DONE in the main programm or in the calling method!

If a live image is listening this device, its source node calls startDeviceAndRegisterListener. If the autoGrabbing-flag is enabled, a timer will be started, which triggers the method 'timerEvent' (should be implemented by any camera). If this flag is disabled, the live image is registered, but no images will be regularily aquired. In this case, only manually taken images will be passed to any registered source node. If the flag is enabled again, the timer is restarted and every live image will automatically get new images. This is done by invoking the slot 'setSource' of every registered source node.

Every camera will only return shallow copies of its internal image both to the live image and to the user. This image can be read by everybody. If the user wants to change values in this image, he should make a deep copy first.

Member Function Documentation

int ito::AddInDataIO::getAutoGrabbing ( )
inline

returns the state of m_autoGrabbingEnabled; consider this method as final

Member Data Documentation

bool ito::AddInDataIO::m_autoGrabbingEnabled
protected

defines, whether the auto-grabbing timer for any live image can be activated. If this variable becomes false and any timer is activated, this timer is killed.

QSet<QObject*> ito::AddInDataIO::m_autoGrabbingListeners
protected

list of listeners (live image source nodes), which want to have updates from this camera

int ito::AddInDataIO::m_timerID
protected

internal ID of the timer, which acquires images for any live view (if allowed)

int ito::AddInDataIO::m_timerIntervalMS
protected

timer interval (in ms)


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