Data Capture Mode
Defined in library scandit_datacapture_core
- DataCaptureMode
abstract class DataCaptureMode
Added in version 6.7.0
Capture modes are restricted to the set of data captures modes provided by the Scandit Data Capture SDK. It is not available for implementing custom data capture modes.
Capture modes need to be associated with a data capture context after they have been created using DataCaptureContext.addMode(). This is done automatically when using any of the factory methods such as BarcodeCapture.forContext() or BarcodeBatch.forContext() and specifying a context. If no context is specified for the factory methods, the mode has to be manually added. Modes can be removed again using DataCaptureContext.removeMode().
A data capture context can only be associated with one mode at a time. If multiple modes are associated with the same context, the context will not process any frames and report an error.
Usage Sample
Because the DataCaptureMode cannot be instantiated directly, the example below uses the BarcodeCapture to illustrate a typical usage of capture modes. Other capture modes will work very similarly. The typical steps are:
Configure the capture mode by first creating settings.
Instantiate the capture mode and associate with the context and the settings.
Registering a mode-specific listener (not shown).
Enabling recognition by setting the isEnabled property to true.
var dataCaptureContext = ...; var settings = BarcodeCaptureSettings(); settings.enableSymbology(Symbology.qr, true); var barcodeCapture = BarcodeCapture.forContext(dataCaptureContext, settings); // Capture modes are enabled by default. The next line is not strictly necessary and // is only listed to make you aware of the possibility to enable/disable modes. barcodeCapture.isEnabled = true;
- isEnabled
bool isEnabled
Added in version 6.7.0
True if this data capture mode is enabled, false if not. Only enabled capture modes are processing frames.
Changing this property from false to true causes this data capture mode to start processing frames.
Changing this property from true to false causes this data capture mode to stop processing frames. The effect is immediate: no more frames will be processed after the change. However, if a frame is currently being processed, this frame will be completely processed and deliver any results/callbacks to the registered listeners. When changing this property from one of the listener callbacks that is called as a result of processing the frame, no more frames will be processed after that.
Note that this property only affects the data capture and does not affect the FrameSource’s state.
By default, this property is true.
- context
DataCaptureContext? get context
Added in version 6.7.0
The context this data capture mode is attached to. When the data capture mode is currently not attached to a context, null is returned.