Thermal Camera SDK 10.1.0
SDK for Optris Thermal Cameras
Loading...
Searching...
No Matches
IRImager.h
Go to the documentation of this file.
1// Copyright (c) 2008-2025 Optris GmbH & Co. KG
2
10
11#pragma once
12
13#include <memory>
14#include <vector>
15
16#include "otcsdk/Exceptions.h"
25
26
27namespace optris
28{
29
32{
33public:
35 IRImager() = default;
36
38 IRImager(const IRImager&) = delete;
40 IRImager& operator=(const IRImager&) = delete;
41
43 IRImager(IRImager&&) = delete;
46
48 virtual ~IRImager() = default;
49
50
51 // Device connection
61 virtual void connect(IRImagerConfig& config) = 0;
62
73 virtual void connect(const DeviceInfo& deviceInfo) = 0;
74
85 virtual void connect(unsigned long serialNumber) = 0;
86
88 virtual void disconnect() = 0;
89
95 virtual bool isConnected() const noexcept = 0;
96
97
98 // Client/Observer management
104 virtual void addClient(IRImagerClient* client) = 0;
105
113 virtual bool removeClient(IRImagerClient* client) = 0;
114
115
116 // Processing controls
125 virtual void run() = 0;
126
139 virtual bool runAsync() = 0;
140
142 virtual void stopRunning() = 0;
143
149 virtual bool isRunning() const noexcept = 0;
150
151
152 // Device interaction
158 virtual DeviceType getDeviceType() const = 0;
159
165 virtual unsigned long getSerialNumber() const = 0;
166
172 virtual unsigned int getHardwareRevision() const = 0;
173
179 virtual unsigned int getFirmwareRevision() const = 0;
180
191 virtual std::vector<std::shared_ptr<OperationMode>> getOperationModes() = 0;
192
203 virtual std::shared_ptr<OperationMode> getActiveOperationMode() = 0;
204
217 virtual int addMeasurementField(const MeasurementFieldConfig& config) = 0;
218
224 virtual void setAutoFlagEnabled(bool enable) = 0;
225
231 virtual bool isAutoFlagEnabled() const = 0;
232
242 virtual void setFlagInterval(float minInterval, float maxInterval) = 0;
243
251 virtual float getFlagMinInterval() const = 0;
252
260 virtual float getFlagMaxInterval() const = 0;
261
269 virtual void forceFlagEvent(float time = 0.F) = 0;
270
277 virtual bool isFlagOpen() const = 0;
278
286 virtual void setFlagForecastEnabled(bool enable) = 0;
287
294 virtual bool isFlagForecastEnabled() const = 0;
295
301 virtual int getWidth() const = 0;
302
308 virtual int getHeight() const = 0;
309
310
317 virtual float getTemperatureFlag() const = 0;
318
325 virtual float getTemperatureBox() const = 0;
326
333 virtual float getTemperatureChip() const = 0;
334
335
343 virtual void setChipHeatingEnabled(bool enable) = 0;
344
350 virtual bool isChipHeatingEnabled() const = 0;
351
352
363 virtual void setTemperatureChipReference(float temperature) = 0;
364
370 virtual float getTemperatureChipReference() const = 0;
371
372
383 virtual void setRadiationParameters(float emissivity, float transmissivity, float ambientTemperature = INVALID_TEMPERATURE) = 0;
384
385
395 virtual void setFocusMotorPosition(float position) = 0;
396
402 virtual float getFocusMotorPosition() const = 0;
403
404
411
412
423 virtual void setReferenceTemperature(float referenceTemperature, float measuredTemperature, float ambientTemperature = INVALID_TEMPERATURE) = 0;
424
433 virtual void setDeviceNetworkConfig(const DeviceNetworkConfig& networkConfig) = 0;
434
444
445
446 // Process Interface
456 virtual ProcessInterface& getPif() = 0;
457
467 virtual const ProcessInterface& getPif() const = 0;
468
469
470 // Fail safe
483 virtual void interruptFailSafe(bool active, const std::string& reason) = 0;
484};
485
486} // namespace optris
Contains a class encapsulating important information about devices.
Contains a class encapsulating the on device network configuration.
Contains an enum representing the different types of Optris thermal cameras.
Contains the exceptions raised by the SDK.
Contains the base class for all clients observing an IRImager.
Contains a class holding the SDK settings found in the configuration file.
Contains the interface definition for classes specifying valid sets of configuration settings.
Contains the interface that defines how to interact with process interfaces.
Contains an enum representing the different temperature precisions and constants denoting invalid tem...
Holds important information about a device.
Definition DeviceInfo.h:32
Encapsulates the on device network configuration.
Definition DeviceNetworkConfig.h:24
Base class for clients observing an IRImager.
Definition IRImagerClient.h:35
Holds the SDK settings found in the configuration file.
Definition IRImagerConfig.h:29
virtual DeviceType getDeviceType() const =0
Returns the type of device the IRImager is connected to.
virtual ProcessInterface & getPif()=0
Grants access to the process interface.
virtual bool isRunning() const noexcept=0
Returns whether the processing loop is currently running.
virtual void setFlagForecastEnabled(bool enable)=0
Set the shutter flag forecast en-/disabled.
IRImager(const IRImager &)=delete
No copy constructor.
virtual void setReferenceTemperature(float referenceTemperature, float measuredTemperature, float ambientTemperature=INVALID_TEMPERATURE)=0
Sets a reference temperature to a known reference source inside the view of the device to improve mea...
virtual bool isFlagOpen() const =0
Returns whether the shutter flag is open.
virtual void disconnect()=0
Disconnects from the current device.
virtual bool isChipHeatingEnabled() const =0
Return whether the sensor chip heating is enabled.
virtual unsigned long getSerialNumber() const =0
Returns the serial number of the connected device.
virtual int getWidth() const =0
Returns the width in pixels of the thermal frame.
virtual float getTemperatureChip() const =0
Returns the temperature of the sensor chip.
virtual DeviceNetworkConfig getDeviceNetworkConfig()=0
Returns the network configuration of the device.
virtual void connect(unsigned long serialNumber)=0
Connects to the device with the given serial number.
IRImager & operator=(const IRImager &)=delete
No copy assignment.
IRImager & operator=(IRImager &&)=delete
No move assignment.
virtual float getTemperatureFlag() const =0
Returns the temperature of the shutter flag in °C.
virtual bool runAsync()=0
Runs the processing loop continuously in a dedicated thread.
virtual int getHeight() const =0
Returns the height in pixels of thermal frame.
virtual TemperaturePrecision getTemperaturePrecision() const =0
Returns the current precision of the thermal data.
virtual unsigned int getHardwareRevision() const =0
Returns the hardware revision of the connected device.
virtual void setDeviceNetworkConfig(const DeviceNetworkConfig &networkConfig)=0
Sets the network configuration of the device.
virtual void setRadiationParameters(float emissivity, float transmissivity, float ambientTemperature=INVALID_TEMPERATURE)=0
Sets the radiation properties, i.e. emissivity and transmissivity parameters.
virtual void setFocusMotorPosition(float position)=0
Sets the position of the focus motor.
virtual int addMeasurementField(const MeasurementFieldConfig &config)=0
Adds a measurement field that is processed for every new thermal frame.
virtual bool isConnected() const noexcept=0
Returns whether a connection is established.
virtual void connect(IRImagerConfig &config)=0
Connects to the device with the given configuration.
virtual bool isAutoFlagEnabled() const =0
Returns whether flag cycles are triggered automatically.
virtual float getFlagMinInterval() const =0
Returns the minimum flag interval in seconds.
virtual void stopRunning()=0
Stops the continuously running processing loop.
virtual float getFlagMaxInterval() const =0
Returns the maximum flag interval in seconds.
virtual std::vector< std::shared_ptr< OperationMode > > getOperationModes()=0
Returns the operation modes for the currently connected device.
virtual unsigned int getFirmwareRevision() const =0
Returns the firmware revision of the connected device.
virtual void addClient(IRImagerClient *client)=0
Adds an observer/client that will be updated when new data arrives.
virtual bool isFlagForecastEnabled() const =0
Returns whether the shutter flag forecast is en-/disabled.
virtual void run()=0
Runs the processing loop continuously.
IRImager()=default
Constructor.
virtual void connect(const DeviceInfo &deviceInfo)=0
Connects to the device with the given device information.
virtual float getTemperatureChipReference() const =0
Returns the reference temperature in °C of the sensor chip heating.
virtual void setChipHeatingEnabled(bool enable)=0
Enables the heating of the sensor chip.
virtual float getFocusMotorPosition() const =0
Returns the position of the focus motor.
virtual std::shared_ptr< OperationMode > getActiveOperationMode()=0
Returns the active operation mode for the currently connected device.
virtual void interruptFailSafe(bool active, const std::string &reason)=0
Interrups the all clear fail safe signal.
virtual void setAutoFlagEnabled(bool enable)=0
Sets the automatic triggering of flag cycles en-/disabled.
virtual float getTemperatureBox() const =0
Returns the temperature of the device housing in °C.
virtual ~IRImager()=default
Destructor.
virtual void setTemperatureChipReference(float temperature)=0
Sets the reference temperature in °C for the sensor chip heating.
virtual bool removeClient(IRImagerClient *client)=0
Removes the given observer/client.
IRImager(IRImager &&)=delete
No move constructor.
virtual void forceFlagEvent(float time=0.F)=0
Force a flag cycle manually.
virtual void setFlagInterval(float minInterval, float maxInterval)=0
Sets the minimum and maximum flag intervals in seconds.
Encapsulates the configuration of a measurement field.
Definition MeasurementFieldConfig.h:26
Defines the interface for classes realizing operation modes.
Definition OperationMode.h:33
Interface defining the API for interacting with process interfaces (PIFs).
Definition ProcessInterface.h:52
Main SDK namespace.
Definition DeviceInfo.h:23
static constexpr float INVALID_TEMPERATURE
All temperatures in °C equal or lower are invalid.
Definition TemperaturePrecision.h:24
TemperaturePrecision
Represents the available temperature precisions.
Definition TemperaturePrecision.h:32
DeviceType
Represents the different types of Optris thermal cameras.
Definition DeviceType.h:24