/** * @RDE_HEADER@ * main for BuildingControlUnit * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-01-27 */ #pragma once #include #include #include #include //#include #include #include "handle_http_request.h" #include "logger.h" class QWebSocket; namespace BuildingControlUnit { class MainHandler : public QObject { Q_OBJECT public: MainHandler(); ~MainHandler(); bool init(const QString &ammuXml, const QString &bldCfgXml, const QString &vwmXml, unsigned short listenPort, const bool initBuilding, const QString &controlEffectsCfg); private Q_SLOTS: void onHitResult(const HitResult &result, const QMap &contaminationStates, bool playSound); void setInitialOverrides(const QString &hostname); void onUnknownDirectHit(int sensorId); void onSetEffectStatesRequest(const QString &hostname, const QVector &effectStates); void onSwitchRelayRequest(const QString &hostname, const SwitchRelayValues &switchRelayValues); void webSocketSendInitialData(QWebSocket *ws); private: QVector getAffectedRoomIds(const QVector &allHitRooms) const; QVector getSegmentDamage(const QVector &allHitRooms, const int damagePercentNew) const; int getHitRoomId(const QVector &allHitRooms) const; void flashBuildingDestructionIndicator(int egcu); void cleanup(); private: BSM::Api *m_bsmApi; //EGCU::Api *m_egcuApi; Json::Api *m_jsonApi; VWM::Api *m_vwmApi; HandelEffects * m_handelEffectsBsm; HandleHttpRequest * m_handleHttpRequest; BuildingEgcuConfig m_egcuConfig; QVector m_handelEffectsVec; QMap< QString, QVector> m_effectStates; BcuEffectOverride m_bsmFlash; NGL::INGLLogger &m_logger; }; } // BuildingControlUnit