Multiple-File Processing
API Name | Description |
---|---|
SetInput |
Sets an image source to provide images for consecutive processing. |
GetInput |
Gets the attached image source adapter object of the capture vision router. |
AddCaptureStateListener |
Adds an object that listens to the state changes of the capture process. |
RemoveCaptureStateListener |
Removes an object which listens to the state changes of the capture process. |
AddImageSourceStateListener |
Adds an object that listens to state changes of the image source. |
RemoveImageSourceStateListener |
Removes an object which listens to state changes of the image source. |
AddResultReceiver |
Adds an object as the receiver of captured results. |
RemoveResultReceiver |
Removes an object which was added as a receiver of captured results. |
AddResultFilter |
Adds an object as the filter of captured results. |
RemoveResultFilter |
Removes an object which was added as a filter of captured results. |
StartCapturing |
Starts to process images consecutively. |
StopCapturing |
Stops the consecutive processing. |
PauseCapturing |
Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
ResumeCapturing |
Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
SetInput
Sets an image source to provide images for consecutive processing.
int SetInput(CImageSourceAdapter* pAdaptor);
Parameters
[in] pAdaptor
Specifies an object which has implemented the Image Source Adapter Interface.
Return Value
Returns an error code. Zero indicates success.
Error Code | Value | Description |
---|---|---|
EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
See Also
GetInput
Gets the attached image source adapter object of the capture vision router.
CImageSourceAdapter* GetInput();
Return Value
Returns the attached image source adapter object of the capture vision router.
See Also
AddCaptureStateListener
Adds an object that listens to the state changes of the capture process.
int AddCaptureStateListener(CCaptureStateListener* listener);
Parameters
[in] listener
Specifies a listening object of the type CCaptureStateListener
to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
RemoveCaptureStateListener
Removes an object which listens to the state changes of the capture process.
int RemoveCaptureStateListener(CCaptureStateListener* listener);
Parameters
[in] listener
Specifies a listening object of the type CCaptureStateListener
to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
AddImageSourceStateListener
Adds an object that listens to state changes of the image source.
int AddImageSourceStateListener(CImageSourceStateListener* listener);
Parameters
[in] listener
Specifies a listening object of the type CImageSourceStateListener
to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
RemoveImageSourceStateListener
Removes an object which listens to state changes of the image source.
int RemoveImageSourceStateListener(CImageSourceStateListener* listener);
Parameters
[in] listener
Specifies a listening object of the type CImageSourceStateListener
to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
AddResultReceiver
Adds an object as the receiver of captured results.
int AddResultReceiver(CCapturedResultReceiver* receiver);
Parameters
[in] receiver
Specifies a receiver object of the type CCapturedResultReceiver
to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
RemoveResultReceiver
Removes an object which was added as a receiver of captured results.
int RemoveResultReceiver(CCapturedResultReceiver* receiver);
Parameters
[in] receiver
Specifies a receiver object of the type CCapturedResultReceiver
to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
AddResultFilter
Adds an object as the filter of captured results.
int AddResultFilter(CCapturedResultFilter* filter);
Parameters
[in] filter
Specifies a filter object of the type CCapturedResultFilter
to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
RemoveResultFilter
Removes an object which was added as a filter of captured results.
int RemoveResultFilter(CCapturedResultFilter* filter);
Parameters
[in] filter
Specifies a filter object of the type CCapturedResultFilter
to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
StartCapturing
Starts to process images consecutively.
int StartCapturing(const char* templateName = "", bool waitForThreadExit = false, char errorMsgBuffer[]=NULL, const int errorMsgBufferLen=0);
Parameters
[in] templateName
Specifies a CaptureVisionTemplate
to use for capturing.
[in] waitForThreadExit
Indicates whether to wait for the capture process to complete before returning. The default value is false.
[out] errorMsgBuffer
Stores any error messages generated during the capturing process. If no buffer is provided, the error messages will not be output.
[in] errorMsgBufferLen
Specifies the length of the provided error message buffer. If no buffer is provided, this parameter is ignored.
Remarks
- There are two types of
CaptureVisionTemplate
: the preset ones which come with the SDK and the custom ones that get initialized when the user calls InitSettings / InitSettingsFromFile. - Please be aware that the preset
CaptureVisionTemplates
will be overwritten should the user callInitSettings
/InitSettingsFromFile
and pass his own settings. - If parameter
templateName
is not specified, the preset one named ‘Default’ will be used. However, if the preset ones have been overwritten as described above, the firstCaptureVisionTemplate
from the user’s own settings will be used instead.
Return Value
The function returns an integer value representing the success or failure of the capturing process. A value of 0 indicates success, while a non-zero value indicates failure. If an error message buffer is provided, any error messages generated during the capturing process will be stored in the buffer.
Error Code | Value | Description |
---|---|---|
EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
EC_NO_IMAGE_SOURCE | -10063 | Can not start capturing before you set the input. |
StopCapturing
Stops the multiple-file processing.
void StopCapturing(bool waitForRemainingTasks = true, bool waitForThreadExit = true);
Parameters
[in] waitForRemainingTasks
Indicates whether to wait for the remaining tasks to complete before returning. The default value is true.
[in] waitForThreadExit
Indicates whether to wait for the capture process to complete before returning. The default value is true.
PauseCapturing
Pauses the capture process. The current thread will be blocked until the capture process is resumed.
void PauseCapturing();
ResumeCapturing
Resumes the capture process. The current thread will be unblocked after the capture process is resumed.
void ResumeCapturing();
Code Snippet
class MyCaptureStateListener: public CCaptureStateListener
{
public:
void OnCaptureStateChanged(CaptureState state) {
// user code...
}
};
class MyImageSourceStateListener : public CImageSourceStateListener
{
private:
CCaptureVisionRouter* m_router;
public:
MyImageSourceStateListener(CCaptureVisionRouter* router) {
m_router = router;
}
virtual void OnImageSourceStateReceived(ImageSourceState state)
{
if (state == ISS_EXHAUSTED)
m_router->StopCapturing();
}
};
class MyResultReceiver: public CCapturedResultReceiver
{
public:
void OnCapturedResultReceived(const CCapturedResult* result) {
// user code...
}
};
int errorCode = 0;
char szErrorMsg[512];
errorCode = CLicenseManager::InitLicense("YOUR-LICENSE-KEY", szErrorMsg, 512);
if (errorCode != ErrorCode::EC_OK && errorCode != ErrorCode::EC_LICENSE_CACHE_USED)
{
cout << "License initialization failed: ErrorCode: " << errorCode << ", ErrorString: " << szErrorMsg << endl;
}
else
{
CCaptureVisionRouter* router = new CCaptureVisionRouter();
CDirectoryFetcher* fetcher = new CDirectoryFetcher();
router->SetInput(fetcher);
CCaptureStateListener* captureStateListener = new MyCaptureStateListener();
router->AddCaptureStateListener(captureStateListener);
CImageSourceStateListener* sourceStateListener = new MyImageSourceStateListener();
router->AddImageSourceStateListener(sourceStateListener);
CCapturedResultReceiver* receiver = new MyResultReceiver();
router->AddResultReceiver(receiver);
CCapturedResultFilter* filter = new CMultiFrameResultCrossFilter();
router->AddResultFilter(filter);
router->StartCapturing("myTemplate", true, szErrorMsg, 512);
// other codes...
delete router, router = NULL;
delete fetcher, fetcher = NULL;
delete captureStateListener, captureStateListener = NULL;
delete sourceStateListener, sourceStateListener = NULL;;
delete receiver, receiver = NULL;;
delete filter, filter = NULL;;
}