The actual behavior of the custom camera connector is defined by the re-implementation of the CameraConnector and Camera abstract classes.
CameraConnector class
The CameraConnector class is responsible for the discovery of corresponding cameras and the creation of the unique ID for the camera.
Virtual methods
The discover method returns the list of available cameras as unique IDs.
The createCamera method creates an instance of the camera specified by a unique ID and returns it as shared pointer.
Camera class
The Camera class is responsible for managing the underlying camera (handling connection, modifying settings, retrieving images). An instance of the Camera class can represent either a real/physical camera on the network or a simulated/software device.
A Camera instance must be created through the CameraConnector specified by the unique ID.
Virtual methods
startImageAcquisition handles the connection to the underlying camera and prepares it for image acquisition.
stopImageAcquisition handles the disconnection of the underlying camera and enables resource access.
getStatus returns "ONLINE" or "OFFLINE" depending on the actual connection to the underlying camera and the state of the image retrieval.
acquireImage is the main logic for retrieving images from the actual camera. This method is called by higher-level components on a separate thread. To avoid race conditions, resource access management is handled internally. This method must return an instance of Image as shared pointer.
getConfig retrieves the actual configuration of the underlying camera. This method is called by higher level components on a separate thread. To avoid race conditions, resource access management is handled internally. This method must return a CameraParameters list.
setConfig changes the configuration of the camera according to the specified CameraParameters parameter. Each changed camera parameter has a CameraParameterStatus. To avoid race conditions, resource access management is handled internally. This method must return a CameraParameterStatuses list.
setVersion sets the internal version of the CameraConnectors, which then becomes part of the camera configuration. Default value: Not defined.