/** * @RDE_HEADER@ * Api for BSM access * $Id$ * $HeadURL$ * $Author$ * Created by Christian Ehrlicher, SLSE, 2017-01-26 */ #pragma once #include #include #include #include "bsm_types.h" namespace BuildingControlUnit { namespace BSM { class SocketHandler; class BUILDINGCONTROLBSM_EXPORT Api : public QObject { Q_OBJECT public: explicit Api(QObject *parent = nullptr); ~Api(); QVector bsmStates() const; bool init(const BuildingBsmConfig &bsmConfig); public Q_SLOTS: bool triggerFlashlight(int bsmId, const QString &hostname = QString(), int numberOfFlashes = 1, int pauseBetweenFlashesSec = 1); bool triggerFlashlightPulse(int bsmId, const QString &hostname = QString(), int numberOfFlashes = 1, int pauseDuration = 1, int choppedConfiguration = 10, int flashDuration = 30); bool triggerFlashlights(int numberOfFlashes, int pauseDuration, int choppedConfiguration, int flashDuration); bool getBsmConfiguration(int bsmId); bool getBsmBitTimeout(int bsmId); bool getBsmTechnicalStatus(int bsmId); Q_SIGNALS: void opticalShot(qint64 timeMSec, int sensorId, int originatorId, int ammunitionId, int deposition1, int deposition2); void opticalShotOC(qint64 timeMSec, int sensorId, int originatorId, int ammunitionId, DamageState damageState); void bsmStateChanged(const QVector &bsmStates); private: SocketHandler *m_socketHandler; NGL::INGLLogger &m_logger; }; } // namespace BSM } // namespace BuildingControlUnit