/** * @RDE_HEADER@ * Main Test UI for ADLER WebsocketSimulator * $Id$ * $HeadURL$ * $Author$ * Created by Patric Karwat, ESZS, 2025-03-03 */ #pragma once #include #include namespace Ui { class ICDTest; } namespace AdlerJson { struct EXTelegramBase; enum class Szenarstatus; } // namespace AdlerJson namespace AdlerWebSocketSimulator { class ICDTest : public QWidget { Q_OBJECT public: explicit ICDTest(QWidget *parent = nullptr); ~ICDTest(); void initParty(int partyId, const QString &name, int saaId); void messsageFromProxy(const QString &message); signals: void messsageToProxy(const QString &message); void doRestart(); private slots: void generateConnectMessage(); void generateConnectMessageStandalone(); void sendDirectInputMessage(); void generateDisconnectMessage(); void generateTechnischeQuittierung(); void generateStatusMessageStop(); void generateStatusMessagePlanned(); void generateStatusMessageInactive(); void generateStatusMessageActive(); void generateStatusMessage(AdlerJson::Szenarstatus status); void generateConnectionTestMessage(); // fire void generateEXFQBABBFK(); // Planungsdaten void generateEXFQBABBFK_Gmlrs(); // Planungsdaten Gmlrs void generateEXFQBABBFK_Dm72(); // Planungsdaten DM72 void generateEXFQBABBFK_ESG(); // Planungsdaten Original ESG-Telegramm void generateEXFQBABBFK_SMART_ESG(); // Planungsdaten SMART Original ESG-Telegramm void generateEXFQFN(); // Feuern void generateEXFQFN_Gmlrs(); // Feuern Gmlrs void generateEXFQFN_Dm72(); // Feuern DM72 void generateEXFQFN_ESG(); // Feuern Original ESG-Telegramm void generateFlugbahndaten_ESG(); void generateEXFH(); // Feuer Halt / Einstellen void generateEXSQFS(); // Stellungsmeldung Feuerstellung void generateEXSQWS(); // Stellungsmeldung Waffensystem void generateEXSQWS_Gmlrs(); // Stellungsmeldung Waffensystem Gmlrs void generateEXSQWS_dm72(); // Stellungsmeldung Waffensystem DM72 void generateEXSQWS_ESG(); // Stellungsmeldung Waffensystem // dont fire void generateEXFQnFN(); // Nicht Feuern -> wird ausgeführt wenn Feuerhalt ausgeführt wurde // special EXSQWS void generateEXSQWS_8MTP(); // Stellungsmeldung Waffensystem void generateEXSQLP(); // Stellungsmeldung Ladeplatz void generateEXRES(); // Senden Erkundungsergebnisse void generateEXHQK(); // Fuehrungslinien (Koordinierungsmassnahmen zur Feuerunterstuetzung) void generateEXHQ_G_ALLE_EX_L24(); // EX-HQ(G) Aus Jira-Punkt E01562_388 void generateEXHQ_K_ALLE_EX_L25(); // EX-HQ(K) Aus Jira-Punkt E01562_388 void generateEXHQG(); // Fuehrungslinien und Grenzen void generateEXAQ(); // Freitextmeldung void generateEXFlugbahnberechnung(); // Flugbahnberechnung void generateEXFlugbahndaten(); // Flugbahndaten void onSendHeartbeatChanged(); private: void generateConnectionPage(); void generateEsgPage(); void generateFirePage(); void generatePositionReportsPage(); void generateTrajectoryGenerationPage(); void generateTextMessagePage(); void generateErkundungsergebnissePage(); void generateStatusPage(); void generateEXSQWS_1WS(const QString &verein, const QString &kenner); private: Ui::ICDTest *m_ui; int m_partyId{0}; int m_saaId{0}; QTimer m_heartbeatTimer; QString m_lastFeuerkampfReferenz; QString m_fixedReference; }; } // namespace AdlerWebSocketSimulator