Thermal Camera SDK 10.1.1
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"
26
27
28namespace optris
29{
30
33{
34public:
36 IRImager() = default;
37
39 IRImager(const IRImager&) = delete;
41 IRImager& operator=(const IRImager&) = delete;
42
44 IRImager(IRImager&&) = delete;
47
49 virtual ~IRImager() = default;
50
51
52 // Device connection
65 virtual void connect(IRImagerConfig config) = 0;
66
76 virtual void connect(const DeviceInfo& deviceInfo) = 0;
77
87 virtual void connect(unsigned long serialNumber) = 0;
88
90 virtual void disconnect() = 0;
91
97 virtual bool isConnected() const noexcept = 0;
98
99
100 // Client/Observer management
106 virtual void addClient(IRImagerClient* client) = 0;
107
115 virtual bool removeClient(IRImagerClient* client) = 0;
116
117
118 // Processing controls
127 virtual void run() = 0;
128
141 virtual bool runAsync() = 0;
142
144 virtual void stopRunning() = 0;
145
151 virtual bool isRunning() const noexcept = 0;
152
153
154 // Device information
160 virtual DeviceType getDeviceType() const = 0;
161
167 virtual unsigned long getSerialNumber() const = 0;
168
174 virtual unsigned int getHardwareRevision() const = 0;
175
181 virtual unsigned int getFirmwareRevision() const = 0;
182
183
184 // Connection details
191 virtual std::string getConnectionInterface() const noexcept = 0;
192
200 virtual IpAddress getIpAddress() const noexcept = 0;
201
209 virtual Port getPort() const noexcept = 0;
210
211
212 // Operation modes
231 virtual std::vector<std::shared_ptr<OperationMode>> getOperationModes() = 0;
232
243 virtual void setActiveOperationMode(const std::shared_ptr<OperationMode>& mode) = 0;
244
267 virtual void setActiveOperationMode(int opticsFieldOfView,
268 const std::string& opticsText,
269 float temperatureLowerLimit,
270 float temperatureUpperLimit,
271 int width,
272 int height,
273 int framerate) = 0;
274
285 virtual std::shared_ptr<OperationMode> getActiveOperationMode() = 0;
286
287
288 // Optics options
296 virtual void setSoSCorrectionEnabled(bool enable) = 0;
297
305 virtual bool isSoSCorrectionEnabled() const = 0;
306
307
308 // Temperature range options
320 virtual void setTemperatureRangeExtensionEnabled(bool enabled) = 0;
321
332 virtual bool isTemperatureRangeExtensionEnabled() const noexcept = 0;
333
343 virtual void setTemperatureHighPrecisionEnabled(bool enabled) = 0;
344
356 virtual bool isTemperatureHighPrecisionEnabled() const noexcept = 0;
357
358
359 // Thermal frame
365 virtual int getWidth() const = 0;
366
372 virtual int getHeight() const = 0;
373
374
375 // Measurement fields
388 virtual int addMeasurementField(const MeasurementFieldConfig& config) = 0;
389
390
391 // Shutter flag
397 virtual void setAutoFlagEnabled(bool enable) = 0;
398
404 virtual bool isAutoFlagEnabled() const = 0;
405
415 virtual void setFlagInterval(float minInterval, float maxInterval) = 0;
416
424 virtual float getFlagMinInterval() const = 0;
425
433 virtual float getFlagMaxInterval() const = 0;
434
442 virtual void forceFlagEvent(float time = 0.F) = 0;
443
450 virtual bool isFlagOpen() const = 0;
451
459 virtual void setFlagForecastEnabled(bool enable) = 0;
460
467 virtual bool isFlagForecastEnabled() const = 0;
468
469
470 // Internal temperature probes
477 virtual float getTemperatureFlag() const = 0;
478
485 virtual float getTemperatureBox() const = 0;
486
493 virtual float getTemperatureChip() const = 0;
494
495
496 // Sensor chip heating
504 virtual void setChipHeatingEnabled(bool enable) = 0;
505
511 virtual bool isChipHeatingEnabled() const = 0;
512
523 virtual void setTemperatureChipReference(float temperature) = 0;
524
530 virtual float getTemperatureChipReference() const = 0;
531
532
533 // Radiation parameters
540 virtual RadiationParameterSource getEmissivitySource() const noexcept = 0;
541
549
557
565 virtual void setRadiationParameters(const RadiationParameters& radiation) = 0;
566
580
581
582 // Focus motor
592 virtual void setFocusMotorPosition(float position) = 0;
593
599 virtual float getFocusMotorPosition() const = 0;
600
601
602 // Reference temperature
613 virtual void setReferenceTemperature(float referenceTemperature, float measuredTemperature, float ambientTemperature = INVALID_TEMPERATURE) = 0;
614
620 virtual void resetReferenceTemperature() = 0;
621
622
623 // Device network configuration
632 virtual void setDeviceNetworkConfig(const DeviceNetworkConfig& networkConfig) = 0;
633
643
644
645 // Process Interface
655 virtual ProcessInterface& getPif() = 0;
656
666 virtual const ProcessInterface& getPif() const = 0;
667
668
669 // Fail safe
682 virtual void interruptFailSafe(bool active, const std::string& reason) = 0;
683};
684
685} // 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 a class holding the individual radiation parameters.
Contains an enum representing the different temperature precisions and constants denoting invalid tem...
Holds important information about a device.
Definition DeviceInfo.h:33
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 void setTemperatureHighPrecisionEnabled(bool enabled)=0
Dis-/Enables high precision temperature measurements.
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 bool isTemperatureHighPrecisionEnabled() const noexcept=0
Returns whether high precision temperature measurements are enabled.
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 RadiationParameters getRadiationParameters() const =0
Returns the set/configured radiation parameters.
virtual void setRadiationParameters(const RadiationParameters &radiation)=0
Sets the radiation parameters (emissivity, transmissivity and ambient temperature).
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 bool isSoSCorrectionEnabled() const =0
Checks if the Size of Source Correction is enabled.
virtual void connect(unsigned long serialNumber)=0
Connects to the device with the given serial number.
virtual IpAddress getIpAddress() const noexcept=0
Returns the IP address of the connected device.
IRImager & operator=(const IRImager &)=delete
No copy assignment.
IRImager & operator=(IRImager &&)=delete
No move assignment.
virtual RadiationParameterSource getEmissivitySource() const noexcept=0
Returns the source that currently defines the emissivity for the thermal frame.
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 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 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 Port getPort() const noexcept=0
Returns the number of the port on which the device data is received.
virtual bool isConnected() const noexcept=0
Returns whether a connection is established.
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 void setTemperatureRangeExtensionEnabled(bool enabled)=0
Die-/Enables temperature range extension.
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 void setSoSCorrectionEnabled(bool enable)=0
Enables or disables the Size of Source Correction.
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 RadiationParameterSource getAmbientTemperatureSource() const noexcept=0
Returns the source that currently defines the ambient temperature for the thermal frame.
virtual float getFocusMotorPosition() const =0
Returns the position of the focus motor.
virtual bool isTemperatureRangeExtensionEnabled() const noexcept=0
Returns whether the temperature ranges are being extended.
virtual std::shared_ptr< OperationMode > getActiveOperationMode()=0
Returns the active operation mode for the currently connected device.
virtual void setActiveOperationMode(const std::shared_ptr< OperationMode > &mode)=0
Sets 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 connect(IRImagerConfig config)=0
Connects to the device with the given configuration.
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 std::string getConnectionInterface() const noexcept=0
Returns the name of the connection interface used to communication with the device.
virtual RadiationParameterSource getTransmissivitySource() const noexcept=0
Returns the source that currently defines the transmissivity for the thermal frame.
virtual void resetReferenceTemperature()=0
Resets a previously set reference temperature.
virtual void setFlagInterval(float minInterval, float maxInterval)=0
Sets the minimum and maximum flag intervals in seconds.
Encapsulates an IP v4 address.
Definition IpAddress.h:33
Encapsulates the configuration of a measurement field.
Definition MeasurementFieldConfig.h:26
Defines the interface for classes realizing operation modes.
Definition OperationMode.h:33
Encapsulates a network port number.
Definition Port.h:34
Interface defining the API for interacting with process interfaces (PIFs).
Definition ProcessInterface.h:52
Holds the radiation parameters for a frame or a measurement field.
Definition RadiationParameters.h:34
Main SDK namespace.
Definition DeviceInfo.h:24
RadiationParameterSource
Represents the different sources of radiation parameters.
Definition RadiationParameters.h:26
static constexpr float INVALID_TEMPERATURE
All temperatures in °C equal or lower are invalid.
Definition TemperaturePrecision.h:24
DeviceType
Represents the different types of Optris thermal cameras.
Definition DeviceType.h:24