Files
qt5-legatus-legacy/Lts/Services/AlarmManagement/handler_emergency_call.h
T
2026-08-13 18:33:10 +02:00

56 lines
1.7 KiB
C++
Executable File

/**
* Handler emergency call from tetra radio
* $Id$
* $HeadURL$
* $Author$
* Created by Astrid Müller, SGAS, 2018-02-23
*/
#pragma once
#include <QObject>
#include <AlarmManagement/alm_db.h>
#include "dds_handler.h"
#include "logger.h"
#include "alm_fts.h"
namespace AlarmManagement
{
class Initialization;
class HandlerConfigureAlarms;
class ObjectEmergencyCall;
class HandlerEmergencyCall final : public QObject
, protected Interface::Fts::EmergencyCallAcknowledgeRequestHandler
{
Q_OBJECT
public:
explicit HandlerEmergencyCall(const std::shared_ptr<HandlerConfigureAlarms> &configAlarmHandler,
Initialization *mainHandler);
~HandlerEmergencyCall();
bool init();
private:
bool createEmergencyCallObject(const AlmEmergencyCall &data);
void onEmergencyCallAcknowledgeRequest(const rti::core::SampleIdentity &cookie,
const EmergencyCallAcknowledgeRequest &request) override final;
Core::FunctionReplyObject emergencyCallAcknowledgeRequest(const EmergencyCallAcknowledgeRequest &request);
bool isExerciseValidForEmergencyCall() const;
bool isNewEmergencyCall(const AlmEmergencyCall &newdata);
private slots:
void onEmergencyCallChanged(const TrainingAreaBase::EmergencyCall &data, DataModification modType);
void onAcknowledgeSOSInExercises(const AlarmManagement::AcknowledgeSOSInAllExercises &data, DataModification modType);
private:
Initialization *m_mainHandler;
std::shared_ptr<HandlerConfigureAlarms> m_configAlarmHandler;
NGL::INGLLogger &m_logger;
QMap<int, ObjectEmergencyCall *> m_emergencyObjMap; // Key = DangerAreaId
};
} // namespace AlarmManagement