File constants.h
File List > src > constants.h
Go to the documentation of this file
/*******************************************************
* Author: Intelligent Medical Systems
* License: see LICENSE.md file
*******************************************************/
#ifndef CONSTANTS_H
#define CONSTANTS_H
#include <QColor>
#include <QJsonArray>
#include <QJsonObject>
#include <QMap>
#include <QString>
#include <opencv2/opencv.hpp>
constexpr int MAX_WIDTH_DISPLAY_WINDOW = 1024;
constexpr int MAX_HEIGHT_DISPLAY_WINDOW = 544;
constexpr auto DEFAULT_SATURATION_COLOR = QColor(255, 105, 180);
constexpr auto DEFAULT_DARK_COLOR = QColor(255, 0, 0);
const QString LOG_FILE_NAME = "logFile.txt";
const QString CHIP_TEMP = "temperature_chip";
const QString HOUSE_TEMP = "temperature_house";
const QString HOUSE_BACK_TEMP = "temperature_house_back_side";
const QString SENSOR_BOARD_TEMP = "temperature_sensor_board";
constexpr int TEMP_LOG_INTERVAL = 5;
const QString FIELD_ORIGINAL_STYLE = "QLineEdit {background-color: rgba(35, 38, 41, 0.75);}";
const QString FIELD_EDITED_STYLE = "QLineEdit {background-color: rgba(117, 52, 134, 1);}";
constexpr int FRAMERATE_MAX = 80;
constexpr int OVEREXPOSURE_PIXEL_BOUNDARY_VALUE = 225;
constexpr int UNDEREXPOSURE_PIXEL_BOUNDARY_VALUE = 10;
const QString CAMERA_TYPE_SPECTRAL = "spectral";
const QString CAMERA_TYPE_GRAY = "gray";
const QString CAMERA_TYPE_RGB = "rgb";
const QString CAMERA_FAMILY_XISPEC = "xiSpec";
const QString CAMERA_FAMILY_XIC = "xiC";
const QString CAMERA_FAMILY_XIQ = "xiQ";
const QString CAMERA_FAMILY_XIB = "xiB";
const QString CAMERA_FAMILY_XIB64 = "xiB-64";
const QString CAMERA_FAMILY_XIRAY = "xiRAY";
const QString CAMERA_FAMILY_XIX = "xiX";
const std::vector SUPPORTED_CAMERA_TYPES = {CAMERA_TYPE_SPECTRAL, CAMERA_TYPE_GRAY, CAMERA_TYPE_RGB};
const std::vector SUPPORTED_CAMERA_FAMILIES = {CAMERA_FAMILY_XISPEC, CAMERA_FAMILY_XIC, CAMERA_FAMILY_XIQ,
CAMERA_FAMILY_XIB, CAMERA_FAMILY_XIB64, CAMERA_FAMILY_XIRAY,
CAMERA_FAMILY_XIX};
constexpr int NR_REFERENCE_IMAGES_TO_RECORD = 100;
struct CameraData
{
QString cameraType;
QString cameraFamily;
std::vector<int> mosaicShape;
std::vector<int> bgrChannels;
static CameraData fromJson(const QJsonObject &jsonObject)
{
CameraData data;
data.cameraType = jsonObject.value("cameraType").toString();
data.cameraFamily = jsonObject.value("cameraFamily").toString();
data.mosaicShape.push_back(jsonObject.value("mosaicWidth").toInt());
data.mosaicShape.push_back(jsonObject.value("mosaicHeight").toInt());
if (jsonObject.contains("bgrChannels") && jsonObject["bgrChannels"].isArray())
{
QJsonArray array = jsonObject["bgrChannels"].toArray();
for (const auto &entry : array)
{
data.bgrChannels.push_back(entry.toInt());
}
}
else
{
data.bgrChannels = std::vector<int>(); // Optional, but explicitly sets it as empty
}
return data;
}
};
QMap<QString, CameraData> loadCameraMapperFromJson(const QString &fileName);
bool isCameraSupported(const QString &type, const QString &family);
QMap<QString, CameraData> &getCameraMapper();
constexpr auto EXPOSURE_KEY = "exposure_us";
constexpr auto FRAME_NUMBER_KEY = "acq_nframe";
constexpr auto COLOR_FILTER_ARRAY_FORMAT_KEY = "color_filter_array";
constexpr auto TIME_STAMP_KEY = "time_stamp";
const std::vector<QString> EXPECTED_METADATA_KEYS = {EXPOSURE_KEY, FRAME_NUMBER_KEY, COLOR_FILTER_ARRAY_FORMAT_KEY,
TIME_STAMP_KEY, SENSOR_BOARD_TEMP};
constexpr int MAX_FRAMES_TO_COMPUTE_FPS = 10;
constexpr int UPDATE_RATE_MS_FPS_TIMER = 2000;
constexpr auto COLOR_UI_PRIMARY = "#ffd740";
#endif