Files
qt5-legatus-legacy/Lts/Proxies/Buildings/BuildingControlUnit/BSM/bsm_api.h
T
2026-08-13 18:33:10 +02:00

64 lines
1.9 KiB
C++
Executable File

/**
* @RDE_HEADER@
* Api for BSM access
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Ehrlicher, SLSE, 2017-01-26
*/
#pragma once
#include <BSM/buildingcontrolbsm_export.h>
#include <QObject>
#include <logger.h>
#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<BsmState> 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<BsmState> &bsmStates);
private:
SocketHandler *m_socketHandler;
NGL::INGLLogger &m_logger;
};
} // namespace BSM
} // namespace BuildingControlUnit