/** * Handler for all Language HMI objects * $Id$ * $HeadURL$ * $Author$ * Created by Hanna E. Rathje, SLSE, 2015-09-03 */ #pragma once #include #include #include #include "handler_vehicle.h" #include "dds_handler.h" #include "esc_convert_from_tab.h" #include "logger.h" #include "esc_helper.h" namespace EffectShowClient { class MainHandler; class HandlerFiringExplosion : public QObject , protected Interface::Fts::ManuallyExplosionRequestHandler { Q_OBJECT public: explicit HandlerFiringExplosion(MainHandler *mainHandler, QObject *parent = nullptr); ~HandlerFiringExplosion(); bool init(); struct OrderExecutionStatus_t { int remainingShots = 0; int remainingTime = 0; bool enablePbFire = false; bool enablePbCarriedOut = false; }; void setFiringClearanceDuration(); bool onEffectShowInterrupted(); int getCurrentorderId() { return m_firingExplosionEntity.idOrder(); } private Q_SLOTS: void onStartHandlerFiring(const Database::EscOrder &escOrder); void onEndHandlerFiring(const Database::EscOrder &escOrder); void onEffectShowStopped(qint16 idEffectShow); void onEffectShowContinued(const ConvertFromTab::EffectShowContinue_t &effectShowContinue); void onSafetyConfirmation(const SafetyConfirmation_e &safetyConfirmation); void onReadyForExplosionFiring(bool ready); void onStatusExplosionFiring(const StatusExplosionFiring_t &statusExplosionFiring); void onEffectShowStarted(); private: void onManuallyExplosionRequest(const rti::core::SampleIdentity &cookie, const ManuallyExplosionRequest &request); private: MainHandler *m_mainHandler; EffectShowClient::FiringExplosionEntity m_firingExplosionEntity; bool m_isInterrupted = false; bool m_isNew = true; SafetyConfirmation_e m_lastState; NGL::INGLLogger &m_logger; }; }