86 lines
2.1 KiB
C++
Executable File
86 lines
2.1 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* Alarm Configuration
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Mike Wille, SLSE, 2017-01-11
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LtsWidgets/lts_dialog.h>
|
|
#include <Services/AlarmManagement/alm_ftc.h>
|
|
#include <Services/AlarmManagement/alm_dtc.h>
|
|
#include <ParticipantManagement/ppm_dtc.h>
|
|
#include <LtsUtilsGuiDds/request_helper.h>
|
|
#include <AlarmManagement/logger.h>
|
|
|
|
class QCheckBox;
|
|
|
|
namespace Ui
|
|
{
|
|
class AlarmDialog;
|
|
}
|
|
|
|
namespace AlarmManagement
|
|
{
|
|
class ConfigAlarmModel;
|
|
class AlarmHistoryModel;
|
|
|
|
class AlarmDialog final : public LtsWidgets::LtsDialog
|
|
, protected AlarmManagement::Interface::Ftc::ConfigureAlarmsReplyHandler
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
struct AlarmAction
|
|
{
|
|
int eventTypeId = 0;
|
|
bool setMarker = false;
|
|
bool messageWindow = false;
|
|
};
|
|
|
|
struct AlarmCheckBox
|
|
{
|
|
QCheckBox *checkboxMarker = nullptr;
|
|
QCheckBox *checkboxWindow = nullptr;
|
|
QString name;
|
|
ProjectDataManagement::EventType eventTypeId = ProjectDataManagement::EventType::Unknown;
|
|
};
|
|
|
|
explicit AlarmDialog(QWidget *parent = nullptr);
|
|
~AlarmDialog();
|
|
|
|
bool init(const std::shared_ptr<AlarmManagement::Interface::Ftc> &ftc,
|
|
const std::shared_ptr<AlarmManagement::Interface::Dtc> &dtc,
|
|
const std::shared_ptr<ParticipantManagement::Interface::Dtc> &ppmDtc,
|
|
AlarmHistoryModel *alarmHistoryModel);
|
|
|
|
void retranslate() override;
|
|
bool apply() override;
|
|
|
|
protected:
|
|
void onConfigureAlarmsReply(const Core::FunctionReplyObject &replyObject) override final { m_requestHelper->requestReply(replyObject); }
|
|
|
|
private slots:
|
|
void onAlarmConfigChanged(const AlarmManagement::AlarmConfig &data, DataModification modType);
|
|
|
|
private:
|
|
std::vector<AlarmManagement::AlarmAction> getCheckedValues() const;
|
|
|
|
ConfigAlarmModel *m_configAlarmModel;
|
|
|
|
std::shared_ptr<AlarmManagement::Interface::Dtc> m_dtc;
|
|
std::shared_ptr<AlarmManagement::Interface::Ftc> m_ftc;
|
|
|
|
Ui::AlarmDialog *m_ui;
|
|
QVector<AlarmCheckBox> m_checkBoxes;
|
|
LtsUtils::RequestHelper *m_requestHelper;
|
|
int m_operatorId;
|
|
LOGGER_T m_logger;
|
|
};
|
|
|
|
} // namespace AlarmManagement
|