Thermal Camera SDK 11.3.0
SDK for Optris Thermal Cameras
Loading...
Searching...
No Matches
optris::IRImagerClient Class Reference

Base class for clients observing an IRImager. More...

#include <IRImagerClient.h>

Collaboration diagram for optris::IRImagerClient:
Collaboration graph

Public Member Functions

 IRImagerClient ()=default
 Constructor.
 
 IRImagerClient (const IRImagerClient &)=default
 No copy constructor.
 
IRImagerClientoperator= (const IRImagerClient &)=default
 No copy assignment.
 
 IRImagerClient (IRImagerClient &&)=default
 Move constructor.
 
IRImagerClientoperator= (IRImagerClient &&)=default
 Move assignment.
 
virtual ~IRImagerClient ()=default
 Destructor.
 
virtual void onConnection (ConnectionEvent &evt) noexcept
 Called when the connection state has changed.
 
virtual void onFrame (const FrameEvent &evt) noexcept
 Triggered when the processing of a frame is complete.
 
virtual void onRawFrame (const RawFrameEvent &evt) noexcept
 Triggered when a new raw frames is available.
 
virtual void onVideoFormatChanged (const VideoFormatEvent &evt) noexcept
 Called when the video format changed.
 
virtual void onCompositeAlarm (const CompositeAlarmEvent &evt) noexcept
 Called when the state of the composite alarm changes.
 
virtual void onAlarm (const AlarmEvent &evt) noexcept
 Called when the state of an alarm channel changes.
 
virtual void onPifUncommittedValue (const UncommittedValueEvent &evt) noexcept
 Called when an updated uncommitted value is available.
 
virtual void onOperationInfo (const OperationInfoEvent &evt) noexcept
 Called when a new set of operation module tracing information is available.
 

Detailed Description

Base class for clients observing an IRImager.

The architecture is following the Observer design pattern. To receive data like thermal frames from your device derive your own class from it and implement the callback methods. After creating an instance of you need to register it with an IRImager object by calling its IRImager::addClient() method.

Member Function Documentation

◆ onAlarm()

virtual void optris::IRImagerClient::onAlarm ( const AlarmEvent & evt)
inlinevirtualnoexcept

Called when the state of an alarm channel changes.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy with a simple assignment (C++) or the clone() method (all other languages).

This callback is triggered by a dedicated thread that does not block the processing loop. Slow processing in this callback will, however, block subsequent callbacks.

Parameters
[in]evtevent containing the alarm information.
See also
AlarmEvent

◆ onCompositeAlarm()

virtual void optris::IRImagerClient::onCompositeAlarm ( const CompositeAlarmEvent & evt)
inlinevirtualnoexcept

Called when the state of the composite alarm changes.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy with a simple assignment (C++) or the clone() method (all other languages).

The callback will not be triggered, if none of the active alarm channels is configured to be part of the composite alarm.

This callback is triggered by a dedicated thread that does not block the processing loop. Slow processing in this callback will, however, block subsequent callbacks.

Parameters
[in]evtevent containing the composite alarm information.
See also
CompositeAlarmEvent

◆ onConnection()

virtual void optris::IRImagerClient::onConnection ( ConnectionEvent & evt)
inlinevirtualnoexcept

Called when the connection state has changed.

The ConnectionState also models the process of acquiring missing calibration files.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy (C++) or use the clone() method (all other languages).

This callback is triggered by a dedicated thread that does not block the processing loop. Slow processing in this callback will, however, block subsequent callbacks.

Parameters
[in]evtevent containing the updated connection state.

◆ onFrame()

virtual void optris::IRImagerClient::onFrame ( const FrameEvent & evt)
inlinevirtualnoexcept

Triggered when the processing of a frame is complete.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy (C++) or use the clone() method (all other languages).

The SDK has an internal pool of buffers that it uses to store the processing results. The buffers are resused for subsequent frames. Since this callback is now triggered by a dedicated thread it will no longer block the processing loop. But slow processing in this callback can clog the internal buffer pool and will cause the SDK to drop old processing results.

The maximum possible frequency of this callback is determined by two configuration parameters:

  • The set frame rate of the device. This is the upper limit for the callback frequency.
  • The set subsampled frame rate that internally limits the device frame rate.

Depending on the set ProcessingOutputConfig the provided event may contain an empty thermal frame or no measurement field data.

This callback will also be triggered during the initial startup calibration phase following a successful device connection. During this time the thermal data is unreliable. You can detect this phase by checking whether the flag state stored in the meta data is set to Initializing.

Parameters
[in]evtevent containing metadata, thermal frame data and measurement field data.
See also
FrameEvent

◆ onOperationInfo()

virtual void optris::IRImagerClient::onOperationInfo ( const OperationInfoEvent & evt)
inlinevirtualnoexcept

Called when a new set of operation module tracing information is available.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy with a simple assignment (C++) or the clone() method (all other languages).

The SDK has an internal pool of buffers that it uses to store the processing results. The buffers are resused for subsequent frames. Since this callback is now triggered by a dedicated thread it will no longer block the processing loop. But slow processing in this callback can clog the internal buffer pool and will cause the SDK to drop old processing results.

The maximum possible frequency of this callback is determined by the interval time provided when configuring the operation info tracing via IRImager::configureOperationInfo(). If the interval is set to 0, this callback will not be triggered at all.

Parameters
[out]evtevent containing the updated operation mode tracing information.
See also
OperationInfoEvent, IRImager::configureOperationInfo()

◆ onPifUncommittedValue()

virtual void optris::IRImagerClient::onPifUncommittedValue ( const UncommittedValueEvent & evt)
inlinevirtualnoexcept

Called when an updated uncommitted value is available.

The callback is only triggered when the corresponding PIF analog input signal has changed.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy with a simple assignment (C++) or the clone() method (all other languages).

This callback is triggered by a dedicated thread that does not block the processing loop. Slow processing in this callback will, however, block subsequent callbacks.

Parameters
[in]evtevent containing the updated uncommitted value.
See also
UncommittedValueEvent

◆ onRawFrame()

virtual void optris::IRImagerClient::onRawFrame ( const RawFrameEvent & evt)
inlinevirtualnoexcept

Triggered when a new raw frames is available.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy (C++) or use the clone() method (all other languages).

The SDK has an internal pool of buffers that it uses to store the processing results. The buffers are resused for subsequent frames. Since this callback is now triggered by a dedicated thread it will no longer block the processing loop. But slow processing in this callback can clog the internal buffer pool and will cause the SDK to drop old processing results.

The maximum possible frequency of this callback is determined by the set frame rate of the device. It is unaffected by the set subsampled frame rate.

The callback will not be triggered if ProcessingOutputConfig::rawFrames is set to false.

Parameters
[in]evtevent containing metadata and raw frame data.
See also
RawFrameEvent

◆ onVideoFormatChanged()

virtual void optris::IRImagerClient::onVideoFormatChanged ( const VideoFormatEvent & evt)
inlinevirtualnoexcept

Called when the video format changed.

Attention
The memory referenced by the provided event is only valid during the callback. If you wish to use it outside of the callback make an explict copy (C++) or use the clone() method (all other languages).

This callback is triggered by a dedicated thread that does not block the processing loop. Slow processing in this callback will, however, block subsequent callbacks.

Parameters
[in]evtevent containing the updated video format information.
See also
VideoFormatEvent

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