Thermal Camera SDK 10.0.1
SDK for Optris Thermal Cameras
Loading...
Searching...
No Matches
IRImager.h
Go to the documentation of this file.
1// Copyright (c) 2025 Optris GmbH Co. KG
2
10
11#pragma once
12
13#include <memory>
14#include <vector>
15
16#include "otcsdk/Exceptions.h"
24
25
26namespace optris
27{
28
31{
32public:
34 IRImager() = default;
35
37 IRImager(const IRImager&) = delete;
39 IRImager& operator=(const IRImager&) = delete;
40
42 IRImager(IRImager&&) = delete;
45
47 virtual ~IRImager() = default;
48
49
50 // Device connection
60 virtual void connect(IRImagerConfig& config) = 0;
61
72 virtual void connect(const DeviceInfo& deviceInfo) = 0;
73
84 virtual void connect(unsigned long serialNumber) = 0;
85
87 virtual void disconnect() = 0;
88
94 virtual bool isConnected() const noexcept = 0;
95
96
97 // Client/Observer management
103 virtual void addClient(IRImagerClient* client) = 0;
104
112 virtual bool removeClient(IRImagerClient* client) = 0;
113
114
115 // Processing controls
124 virtual void run() = 0;
125
138 virtual bool runAsync() = 0;
139
141 virtual void stopRunning() = 0;
142
148 virtual bool isRunning() const noexcept = 0;
149
150
151 // Device interaction
165 virtual void addMeasurementField(const MeasurementField& field) = 0;
166
172 virtual DeviceType getDeviceType() const = 0;
173
179 virtual unsigned long getSerialNumber() const = 0;
180
186 virtual unsigned int getHardwareRevision() const = 0;
187
193 virtual unsigned int getFirmwareRevision() const = 0;
194
205 virtual std::vector<std::shared_ptr<OperationMode>> getOperationModes() = 0;
206
207
213 virtual void setAutoFlagEnabled(bool enable) = 0;
214
220 virtual bool isAutoFlagEnabled() const = 0;
221
231 virtual void setFlagInterval(float minInterval, float maxInterval) = 0;
232
240 virtual float getFlagMinInterval() const = 0;
241
249 virtual float getFlagMaxInterval() const = 0;
250
258 virtual void forceFlagEvent(float time = 0.F) = 0;
259
266 virtual bool isFlagOpen() const = 0;
267
275 virtual void setFlagForecastEnabled(bool enable) = 0;
276
283 virtual bool isFlagForecastEnabled() const = 0;
284
290 virtual int getWidth() const = 0;
291
297 virtual int getHeight() const = 0;
298
299
306 virtual float getTemperatureFlag() const = 0;
307
314 virtual float getTemperatureBox() const = 0;
315
322 virtual float getTemperatureChip() const = 0;
323
324
332 virtual void setChipHeatingEnabled(bool enable) = 0;
333
339 virtual bool isChipHeatingEnabled() const = 0;
340
341
352 virtual void setTemperatureChipReference(float temperature) = 0;
353
359 virtual float getTemperatureChipReference() const = 0;
360
361
372 virtual void setRadiationParameters(float emissivity, float transmissivity, float ambientTemperature = INVALID_TEMPERATURE) = 0;
373
374
384 virtual void setFocusMotorPosition(float position) = 0;
385
391 virtual float getFocusMotorPosition() const = 0;
392
393
400
401
412 virtual void setReferenceTemperature(float referenceTemperature, float measuredTemperature, float ambientTemperature = INVALID_TEMPERATURE) = 0;
413
422 virtual void setDeviceNetworkConfig(const DeviceNetworkConfig& networkConfig) = 0;
423
433};
434
435} // 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 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:28
virtual DeviceType getDeviceType() const =0
Returns the type of device the IRImager is connected to.
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 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 void addMeasurementField(const MeasurementField &field)=0
Adds a measurement field that is processed for every new thermal frame.
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 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.
Rectangular measurement field with individual radiation parameters.
Definition MeasurementField.h:32
Defines the interface for classes realizing operation modes.
Definition OperationMode.h:33
Main SDK namespace.
Definition DeviceInfo.h:23
static constexpr float INVALID_TEMPERATURE
All temperatures in °C equal or lower are invalid.
Definition TemperaturePrecision.h:21
TemperaturePrecision
Represents the available temperature precisions.
Definition TemperaturePrecision.h:29
DeviceType
Represents the different types of Optris thermal cameras.
Definition DeviceType.h:24