/** * Controler interface for the DMF vehicle terminal * $Id$ * $HeadURL$ * $Author$ * Created by Florian Schult, NLSE, 2018-06-06 */ #pragma once #include "logger.h" #include "handler_vehicle.h" #include "esc_helper.h" #include #include namespace EffectShowClient { class ConnectionHandler; class ControlUnitHandler : public QObject { Q_OBJECT public: public: explicit ControlUnitHandler(QObject *parent = nullptr); ~ControlUnitHandler(); bool init(); // Commands to the controler bool send(const CommandSignal command, const unsigned int roundCount = 0); signals: // Messages from the control unit to main/vehicle/etc void safetyStatus(const SafetyConfirmation_e &safetyConfirmation); void safetyWarnings(const SafetyStatus &safetyWarning); void vehicleType(const EffectShowManagement::Feature_e &type); void vehicleBattery(double battery); void vehicleRoundCount(int loadedRunds); void vehilceSmokeAmmunition(int ammunition); void vehicleShutDown(); void vehicleConnected(); void vehicleSafetyRevoked(); void vehicleFinshedVolley(int rounds); void vehicleStoppedVolley(int rounds); void vehicleFireUnits(const CardRidges &cardRidge); void vehicleErrorStatus(const CardRidges &cardRidge); void vehicleSmokeCardridgesStatus(const CardRidges &cardRidge); void vehicleSmokeCardridgesFireStatus(const CardRidges &cardRidge); private slots: void onDataReceived(const QByteArray &ba); void onConnectedToSerialConveter(); void onDisconnectedFromSerialConveter(); private: ConnectionHandler *m_connectionHandler; QTimer *m_timer; EffectShowManagement::Feature_e m_feature; NGL::INGLLogger &m_logger; }; } // namespace EffectShowClient