#include "generatetelegrams.h" GenerateTelegrams::GenerateTelegrams() {} void GenerateTelegrams::addHeaderData(AdlerJson::EXTelegramBase &tele, const int saaId, const QString referenceUuid) { tele.sender = QStringLiteral("SAA%1@GUEZ.DE").arg(saaId); tele.receiver = QStringLiteral("EXCON@GUEZ.DE"); tele.timestamp = QDateTime::currentDateTime().toString(Qt::DateFormat::ISODate); tele.referenceUuid = referenceUuid; } void GenerateTelegrams::generateConnectMessage(AdlerJson::EXRegistration &exRegistration, int partyId, bool isVerbund) { exRegistration.partyId = partyId; exRegistration.adlerVerbund = isVerbund; exRegistration.szenar = QStringLiteral("UI Test"); } void GenerateTelegrams::generateConnectResponseMessage(AdlerJson::ExAnmeldebestaetigung &exAnmeldebestaetigung) { exAnmeldebestaetigung.anBestaetigungsdaten.error = AdlerJson::L45_AnmeldebestaetigungFehlercode::Ok; } void GenerateTelegrams::generateDisconnectMessage(AdlerJson::EXDeregistration &eXDeregistration, int partyId) { eXDeregistration.partyId = partyId; } void GenerateTelegrams::generateStatusMessage(AdlerJson::EXStatus &exStatus, AdlerJson::Szenarstatus status) { exStatus.status = status; } void GenerateTelegrams::generateConnectionTestMessage() {} void GenerateTelegrams::generateZieldaten(AdlerJson::Zieldaten &wzd) { wzd.nummer = 7; wzd.geometrie = ProjectDataManagement::L4_TargetGeometry::Point; // EX-L4 // koordinate AdlerJson::KoordinateMitHoehe zap; // EX-L14 zap.hoehe = 0; AdlerJson::Koordinate zkn; zkn.latitude = 53.0672; zkn.longitude = 8.86687; zap.koordinate = zkn; wzd.koordinate = zap; // relativKoordinate AdlerJson::KoordinateMitHoehe zapr; // EX-L14 zapr.hoehe = 5; zapr.koordinate.latitude = 53.8; zapr.koordinate.longitude = 8.8; wzd.relativKoordinate = zapr; // wfp.feuerkommandos = fk; wzd.breiteRadius = 25; wzd.tiefe = 26; wzd.zielachse = 17; wzd.zog = 7; wzd.elemente = 1; wzd.typ = QStringLiteral("PERS"); // EX-L20 pdm_targe_type wzd.subTyp = QStringLiteral("APERS"); // EX-L21 pdm_target_subtype } void GenerateTelegrams::generateWirkmittelFeuerkommando_Gmlrs(QVector &wfrs) { AdlerJson::Treffpunkt treffpunkt; treffpunkt.anzahl = 1; treffpunkt.koordinate.koordinate.latitude = 5.5; treffpunkt.koordinate.koordinate.longitude = 6.6; treffpunkt.koordinate.hoehe = 7; AdlerJson::WirkmittelFeuerkommandoRakete wfr; wfr.kenner = ProjectDataManagement::L27_EffectorId::B1; wfr.treffpunkte.append(treffpunkt); wfr.flugzeit = 456.3; wfr.gipfelhoehe = 300; wfr.schussrichtung = 30.0; wfr.fallwinkel = 5; wfr.anflug = ProjectDataManagement::L48_TrajectoryRocket::Nominal; wfr.gps = ProjectDataManagement::L46_GpsFrequency::L1; wfr.wirkzeit = 55; wfrs.append(wfr); } void GenerateTelegrams::generateEXFQBABBFK(AdlerJson::ExAwesPlanning &req) { // Beginn WirkfeldPlanungsDaten AdlerJson::WirkfeldplanungData wfp; wfp.feuerkampfReferenz = QStringLiteral("REF:%1").arg(qrand()); generateZieldaten(wfp.zieldaten); // Zieldaten EX-L12 wfp.abfeuerungsArt = AdlerJson::Abfeuerungsart::A; wfp.forderung = ProjectDataManagement::L7_Request::VER; wfp.dauer = 0; // Beginn Feuerkommando AdlerJson::Feuerkommando fk; { fk.verein = QStringLiteral("AB7X"); fk.typ = ProjectDataManagement::L26_EffectingSystemType::RRohr; QVector fkl; // Beginn Wirkmittel liste) { AdlerJson::WirkmittelFeuerkommando wfk; wfk.kenner = ProjectDataManagement::L27_EffectorId::B1; // Beginn AuftreffPunkt AdlerJson::KoordinateMitHoehe ap; ap.hoehe = 0; AdlerJson::Koordinate kn; kn.latitude = 53.0672; kn.longitude = 8.86687; ap.koordinate = kn; // Setzte Auftreffpunkt wfk.auftreffpunkt = ap; wfk.flugzeit = 30; wfk.gipfelhoehe = 377; wfk.schussrichtung = 177; AdlerJson::FeuerkommandoGeschosse wfg; // BEginn FeuerkommandoGeschosse { wfg.geschosssorte = QStringLiteral("Spreng DM121"); wfg.ladung = QStringLiteral("M DM72"); // L10_Load::M_DM72 (table pdm_load_type); wfg.zuender = QStringLiteral("Aufschlag BB DM371"); // L11_Igniter::Aufschlag_DM241 (table pdm_igniter_type); wfg.zuenderFunktion = QStringLiteral("AZoV"); // L41_IgniterFunction::AZoV (table pdm_igniter_funciton) wfg.zuenderZeit = 0; wfg.anzahl = 7; wfg.intervall = 1.0; } wfk.geschoss = wfg; QVector fpl; // Begin Flugbahnpunkt Liste { AdlerJson::Flugbahnpunkt fp; fp.zRelativ = 300; fp.xRelativ = 200; fp.yRelativ = 77; fp.zeit = 17; fpl.append(fp); fp.zRelativ = 700; fp.xRelativ = 900; fp.yRelativ = 177; fp.zeit = 19; fpl.append(fp); fp.zRelativ = 777; fp.xRelativ = 977; fp.yRelativ = 277; fp.zeit = 33; fpl.append(fp); } // Ende Flugbahnpunkt Liste wfk.flugbahnpunkt = fpl; // Streuung AdlerJson::Streuungsdaten streuung; streuung.seitenstreuungH = 0.7; streuung.laengsstreuungH = 0.3; streuung.seitenstreuung = 0.7; streuung.laengsstreuung = 7.7; // Setzte Streuung zu Wirkfeldfeuerkommando wfk.streuung = streuung; fkl.append(wfk); // wfk. = fkl; } // Ende Wirkmittel Liste fk.wirkmittel = fkl; // Ende Feuerkommando } wfp.feuerkommando = fk; generateWirkmittelFeuerkommando_Gmlrs(wfp.feuerkommando.wirkmittelRakete); // set Wfp to data req.wirkfeldplanungData = wfp; } void GenerateTelegrams::generateEXFQBABBFK_Gmlrs(AdlerJson::ExAwesPlanning &req) { //Beginn WirkfeldPlanungsDaten AdlerJson::WirkfeldplanungData wfp; wfp.feuerkampfReferenz = QStringLiteral("REF:%1").arg(qrand()); wfp.zieldaten.nummer = 143; wfp.abfeuerungsArt = AdlerJson::Abfeuerungsart::F; wfp.dauer = 0; //Beginn Feuerkommando AdlerJson::Feuerkommando fk; { fk.verein = QStringLiteral("AB13X"); fk.typ = ProjectDataManagement::L26_EffectingSystemType::Mars; // "typ": "Mars", // Beginn Wirkmittel liste) { AdlerJson::WirkmittelFeuerkommandoRakete wfk; wfk.kenner = ProjectDataManagement::L27_EffectorId::NO_211; wfk.fallwinkel = 0; wfk.anflug = ProjectDataManagement::L48_TrajectoryRocket::Nominal; //Beginn Treffpunkte AdlerJson::Treffpunkt tp; tp.anzahl = 1; tp.koordinate.hoehe = 99; tp.koordinate.koordinate.latitude = 53.0214; tp.koordinate.koordinate.longitude = 8.9886; wfk.treffpunkte.append(tp); tp.koordinate.koordinate.latitude = 53.0207; tp.koordinate.koordinate.longitude = 8.98852; wfk.treffpunkte.append(tp); tp.koordinate.koordinate.latitude = 53.0189; tp.koordinate.koordinate.longitude = 8.98855; wfk.treffpunkte.append(tp); tp.koordinate.koordinate.latitude = 53.0196; tp.koordinate.koordinate.longitude = 8.98712; wfk.treffpunkte.append(tp); tp.koordinate.koordinate.latitude = 53.0201; tp.koordinate.koordinate.longitude = 8.99008; tp.anzahl = 2; wfk.treffpunkte.append(tp); wfk.flugzeit = 66.03185272216797; wfk.gipfelhoehe = 0; wfk.schussrichtung = 3134.477668706035; wfk.gps = ProjectDataManagement::L46_GpsFrequency::L1; wfk.wirkzeit = 0; // beginn FeuerkommandoGeschosse AdlerJson::FeuerkommandoGeschosse wfg; wfg.anzahl = 6; wfg.geschosssorte = QStringLiteral("Unitary M31"); wfg.intervall = 5.0; wfg.zuenderFunktion = QStringLiteral("AZoV"); wfg.zuenderZeit = 29; wfk.geschoss = wfg; fk.wirkmittelRakete.append(wfk); } //Ende Wirkmittel Liste //Ende Feuerkommando } wfp.feuerkommando = fk; //set Wfp to data req.wirkfeldplanungData = wfp; } void GenerateTelegrams::generateEXFQBABBFK_Dm72(AdlerJson::ExAwesPlanning &req) { //Beginn WirkfeldPlanungsDaten AdlerJson::WirkfeldplanungData wfp; wfp.feuerkampfReferenz = QStringLiteral("REF:%1").arg(qrand()); wfp.zieldaten.nummer = 143; wfp.abfeuerungsArt = AdlerJson::Abfeuerungsart::B; wfp.dauer = 0; //Beginn Feuerkommando AdlerJson::Feuerkommando fk; { fk.verein = QStringLiteral("AB72X"); fk.typ = ProjectDataManagement::L26_EffectingSystemType::Mars; // "typ": "Mars", // Beginn Wirkmittel liste) { AdlerJson::WirkmittelFeuerkommandoRakete wfk; wfk.kenner = ProjectDataManagement::L27_EffectorId::NO_212; wfk.fallwinkel = 605; //Beginn Treffpunkte AdlerJson::Treffpunkt tp; tp.anzahl = 6; tp.koordinate.hoehe = 99; tp.koordinate.koordinate.latitude = 53.0279; tp.koordinate.koordinate.longitude = 8.73684; wfk.treffpunkte.append(tp); wfk.flugzeit = 66.03185272216797; wfk.gipfelhoehe = 0; wfk.schussrichtung = 0.0; wfk.wirkzeit = 3; // beginn FeuerkommandoGeschosse AdlerJson::FeuerkommandoGeschosse wfg; wfg.anzahl = 6; wfg.geschosssorte = QStringLiteral("Mine DM72"); wfg.intervall = 5.0; wfg.zuenderZeit = 49; wfk.geschoss = wfg; fk.wirkmittelRakete.append(wfk); } //Ende Wirkmittel Liste }//Ende Feuerkommando wfp.feuerkommando = fk; //set Wfp to data req.wirkfeldplanungData = wfp; } void GenerateTelegrams::generateFeuerbereit(AdlerJson::ExFeuerbereit &req) { req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1"); req.feuerkampfdaten.verein = QStringLiteral("AB7X"); req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1; } void GenerateTelegrams::generateFeuern(AdlerJson::ExFeuern &req) { req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1"); req.feuerkampfdaten.verein = QStringLiteral("AB7X"); req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1; } void GenerateTelegrams::generateFeuern_Gmlrs(AdlerJson::ExFeuern &req) { req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1"); req.feuerkampfdaten.verein = QStringLiteral("AB13X"); req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_211; } void GenerateTelegrams::generateFeuern_Dm72(AdlerJson::ExFeuern &req) { req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1"); req.feuerkampfdaten.verein = QStringLiteral("AB72X"); req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_212; } void GenerateTelegrams::generateNichtFeuern(AdlerJson::exNichtFeuern &req) { req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1"); req.feuerkampfdaten.verein = QStringLiteral("AB7X"); req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1; } void GenerateTelegrams::generateAbgefeuert(AdlerJson::ExAbgefeuert &req) { req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1"); req.feuerkampfdaten.verein = QStringLiteral("AB7X"); req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1; } void GenerateTelegrams::generateVollzugsmeldung(AdlerJson::ExVollzugsmeldung &req) { req.feuerkampfdaten.feuerkampfReferenz = QStringLiteral("feuerkampfReferenz 1"); req.feuerkampfdaten.verein = QStringLiteral("AB7X"); req.feuerkampfdaten.kenner = ProjectDataManagement::L27_EffectorId::B1; } void GenerateTelegrams::generateAbmeldung(AdlerJson::EXDeregistration &req) { req.partyId = 2; } // void GenerateTelegrams::generateErkundungsanfrage(AdlerJson::ExErkundungsanfrage &req) // { // Q_UNUSED(req); // // kein Data-Bereich bei Erkundungsanfrage // } void GenerateTelegrams::generateErkundungsergebnisse(AdlerJson::ExErkundungsergebnisse &req) { AdlerJson::Erkundungseinheit einheit; // EX-L29 AdlerJson::KoordinateMitHoehe ladeplatz; // EX-L14 AdlerJson::Erkundungsstellungen stellungen; // EX-L30 AdlerJson::Wirkungsbereich wirkungsbereich; // EX-L18 Wirkungsbereich einheit.r = 5; einheit.verein = QStringLiteral("verein Erkundungsdaten"); ladeplatz.hoehe = 55; ladeplatz.koordinate.latitude = 53.37790; ladeplatz.koordinate.longitude = 8.758; AdlerJson::KoordinateMitHoehe waffenplatz1; AdlerJson::KoordinateMitHoehe waffenplatz2; waffenplatz1.hoehe = 56; waffenplatz1.koordinate.latitude = 53.37791; waffenplatz1.koordinate.longitude = 8.759; waffenplatz2.hoehe = 57; waffenplatz2.koordinate.latitude = 53.37792; waffenplatz2.koordinate.longitude = 8.760; stellungen.waffenplaetze.append(waffenplatz1); stellungen.waffenplaetze.append(waffenplatz2); wirkungsbereich.grundrichtung = 33; wirkungsbereich.links = 44; wirkungsbereich.rechts = 55; stellungen.wirkungsbereich = wirkungsbereich; req.erkundungsdaten.einheit = einheit; req.erkundungsdaten.ladeplatz = ladeplatz; req.erkundungsdaten.stellungen = stellungen; } void GenerateTelegrams::generateFeuerkampf(AdlerJson::ExFeuerkampf &req) { AdlerJson::KoordinateMitHoehe auftreffpunkt; auftreffpunkt.hoehe = 56; auftreffpunkt.koordinate.latitude = 53.37791; auftreffpunkt.koordinate.longitude = 8.759; AdlerJson::FeuerkommandoGeschosse geschoss; geschoss.geschosssorte = QStringLiteral("Spreng DM121"); geschoss.ladung = QStringLiteral("M DM72"); // L10_Load::M_DM72 (table pdm_load_type); geschoss.zuender = 4; // L11_Igniter::Aufschlag_DM241 (table pdm_igniter_type); geschoss.zuenderFunktion = 2; // L41_IgniterFunction::AZoV (table pdm_igniter_funciton) geschoss.zuenderZeit = 0; geschoss.anzahl = 1; geschoss.intervall = 1.0; QVector fpl; // Begin Flugbahnpunkt Liste { AdlerJson::Flugbahnpunkt fp; fp.zRelativ = 300; fp.xRelativ = 200; fp.yRelativ = 77; fp.zeit = 17; fpl.append(fp); fp.zRelativ = 700; fp.xRelativ = 900; fp.yRelativ = 177; fp.zeit = 19; fpl.append(fp); } // Ende Flugbahnpunkt Liste AdlerJson::WirkmittelFeuerkommando wirkmittelFeuerkommando; wirkmittelFeuerkommando.kenner = ProjectDataManagement::L27_EffectorId::C2; wirkmittelFeuerkommando.auftreffpunkt = auftreffpunkt; wirkmittelFeuerkommando.flugzeit = 77; wirkmittelFeuerkommando.gipfelhoehe = 78; wirkmittelFeuerkommando.schussrichtung = 79; wirkmittelFeuerkommando.geschoss = geschoss; wirkmittelFeuerkommando.flugbahnpunkt = fpl; AdlerJson::Feuerkommando feuerkommando; feuerkommando.verein = QStringLiteral("verein Feuerkommando"); feuerkommando.wirkmittel.append(wirkmittelFeuerkommando); // qCritical() << "wirkmittelFeuerkommando.size=" << feuerkommando.wirkmittel.size(); AdlerJson::Zielmeldedaten zielmeldedaten; generateZieldaten(zielmeldedaten.zieldaten); zielmeldedaten.abfeuerungsArt = AdlerJson::Abfeuerungsart::F; zielmeldedaten.forderung = ProjectDataManagement::L7_Request::BEL; zielmeldedaten.dauer = 88; zielmeldedaten.feuerkommandos.append(feuerkommando); req.zielmeldedaten = zielmeldedaten; } void GenerateTelegrams::generateFeuerhalt(AdlerJson::ExFeuerhalt &req) { req.feuerHaltDaten.verein = QStringLiteral("123456"); req.feuerHaltDaten.kenner = ProjectDataManagement::L27_EffectorId::A; req.feuerHaltDaten.kategorie = ProjectDataManagement::L22_FireHaltCategory::R; req.feuerHaltDaten.feuerkampfReferenz = QStringLiteral("feuerHaltDaten"); req.feuerHaltDaten.zpNummer = 5; req.feuerHaltDaten.koordinate.latitude = 53.11172; req.feuerHaltDaten.koordinate.longitude = 8.86687; req.feuerHaltDaten.radius = 50; req.feuerHaltDaten.entladenSchuss = true; } void GenerateTelegrams::generateStellungsmeldungFS(AdlerJson::ExFeuerstellungFS &req) { req.feuerstellungsdaten.typ = ProjectDataManagement::L26_EffectingSystemType::RRohr; req.feuerstellungsdaten.status = ProjectDataManagement::L28_Status::Einsatzbereit; req.feuerstellungsdaten.feuereinheit.verein = QStringLiteral("verein ExFeuerstellungFS"); req.feuerstellungsdaten.feuereinheit.r = 5; req.feuerstellungsdaten.feuereinheit.oi = ProjectDataManagement::L19_Oi::F3; req.feuerstellungsdaten.mittelpunkt.koordinate.latitude = 53.37791; req.feuerstellungsdaten.mittelpunkt.koordinate.longitude = 8.759; req.feuerstellungsdaten.mittelpunkt.hoehe = 20; AdlerJson::KoordinateMitHoehe koordinate1; AdlerJson::KoordinateMitHoehe koordinate2; koordinate1.hoehe = 22; koordinate1.koordinate.latitude = 53.37792; koordinate1.koordinate.longitude = 8.760; koordinate2.hoehe = 23; koordinate2.koordinate.latitude = 53.37793; koordinate2.koordinate.longitude = 8.761; req.feuerstellungsdaten.koordinaten.append(koordinate1); req.feuerstellungsdaten.koordinaten.append(koordinate2); AdlerJson::Geschoss geschoss1; AdlerJson::Geschoss geschoss2; geschoss1.geschosssorte = QStringLiteral("Mine DM72"); geschoss1.ladung = QStringLiteral("M DM72"); // L10_Load::M_DM72 (table pdm_load_type); geschoss1.zuender = 11; // L11_Igniter::Doppel_DM183 (table pdm_igniter_type) geschoss1.anzahl = 6; geschoss2.geschosssorte = QStringLiteral("Leucht DM116"); geschoss2.ladung = QStringLiteral("B L8A1"); // L10_Load::B_L8A1 (table pdm_load_type) geschoss2.zuender = 3; // L11_Igniter::Aufschlag_BB_DM371 (table pdm_igniter_type) geschoss2.anzahl = 7; req.feuerstellungsdaten.geschosse.append(geschoss1); req.feuerstellungsdaten.geschosse.append(geschoss2); } void GenerateTelegrams::generateStellungsmeldungWS(AdlerJson::ExFeuerstellungWS &req) { req.waffensystemdaten.typ = ProjectDataManagement::L26_EffectingSystemType::RRohr; req.waffensystemdaten.kenner = ProjectDataManagement::L27_EffectorId::B1; req.waffensystemdaten.status = ProjectDataManagement::L28_Status::Einsatzbereit; req.waffensystemdaten.einheit.verein = QStringLiteral("AB7X"); req.waffensystemdaten.einheit.r = 6; req.waffensystemdaten.einheit.oi = ProjectDataManagement::L19_Oi::F6; AdlerJson::Geschoss geschoss1; AdlerJson::Geschoss geschoss2; geschoss1.geschosssorte = QStringLiteral("Mine DM72"); geschoss1.ladung = QStringLiteral("M DM72"); // L10_Load::M_DM72 (table pdm_load_type); geschoss1.zuender = QStringLiteral("Doppel DM183"); // L11_Igniter::Doppel_DM183 (table pdm_igniter_type) geschoss1.anzahl = 6; geschoss2.geschosssorte = QStringLiteral("Leucht DM116"); geschoss2.ladung = QStringLiteral("B L8A1"); // L10_Load::B_L8A1 (table pdm_load_type) geschoss2.zuender = QStringLiteral("Aufschlag BB DM371"); // L11_Igniter::Aufschlag_BB_DM371 (table pdm_igniter_type) geschoss2.anzahl = 7; req.waffensystemdaten.geschosse.append(geschoss1); req.waffensystemdaten.geschosse.append(geschoss2); req.waffensystemdaten.koordinate.koordinate.latitude = 53.088354; req.waffensystemdaten.koordinate.koordinate.longitude = 8.853092; req.waffensystemdaten.koordinate.hoehe = 20; req.waffensystemdaten.wirkungsbereich.grundrichtung = 1; req.waffensystemdaten.wirkungsbereich.links = 2; req.waffensystemdaten.wirkungsbereich.rechts = 3; } void GenerateTelegrams::generateStellungsmeldungWS_Gmlrs(AdlerJson::ExFeuerstellungWS &req) { req.waffensystemdaten.typ = ProjectDataManagement::L26_EffectingSystemType::Mars; req.waffensystemdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_211; req.waffensystemdaten.status = ProjectDataManagement::L28_Status::NichtEinsatzbereit; req.waffensystemdaten.einheit.verein = QStringLiteral("AB13X"); req.waffensystemdaten.einheit.r = 6; req.waffensystemdaten.einheit.oi = ProjectDataManagement::L19_Oi::F6; AdlerJson::Geschoss geschoss1; AdlerJson::Geschoss geschoss2; geschoss1.geschosssorte = QStringLiteral("GMLRS Unitary M31"); geschoss1.ladung = QStringLiteral("Default"); // L10_Load::M_DM72 (table pdm_load_type); geschoss1.zuender = QStringLiteral("Default"); // L11_Igniter::Doppel_DM183 (table pdm_igniter_type) geschoss1.anzahl = 6; geschoss2.geschosssorte = QStringLiteral("GMLRS Unitary M31"); geschoss2.ladung = QStringLiteral("Default"); // L10_Load::M_DM72 (table pdm_load_type); geschoss2.zuender = QStringLiteral("Default"); // L11_Igniter::Doppel_DM183 (table pdm_igniter_type) geschoss2.anzahl = 6; req.waffensystemdaten.geschosse.append(geschoss1); req.waffensystemdaten.geschosse.append(geschoss2); req.waffensystemdaten.koordinate.koordinate.latitude = 53.088354; req.waffensystemdaten.koordinate.koordinate.longitude = 8.853092; req.waffensystemdaten.koordinate.hoehe = 20; req.waffensystemdaten.wirkungsbereich.grundrichtung = 1; req.waffensystemdaten.wirkungsbereich.links = 2; req.waffensystemdaten.wirkungsbereich.rechts = 3; } void GenerateTelegrams::generateStellungsmeldungWS_Dm72(AdlerJson::ExFeuerstellungWS &req) { req.waffensystemdaten.typ = ProjectDataManagement::L26_EffectingSystemType::Mars; req.waffensystemdaten.kenner = ProjectDataManagement::L27_EffectorId::NO_212; req.waffensystemdaten.status = ProjectDataManagement::L28_Status::NichtEinsatzbereit; req.waffensystemdaten.einheit.verein = QStringLiteral("AB72X"); req.waffensystemdaten.einheit.r = 1; req.waffensystemdaten.einheit.oi = ProjectDataManagement::L19_Oi::F1; AdlerJson::Geschoss geschoss1; AdlerJson::Geschoss geschoss2; geschoss1.geschosssorte = QStringLiteral("Mine DM72"); geschoss1.ladung = QStringLiteral("Default"); geschoss1.zuender = QStringLiteral("Default"); geschoss1.anzahl = 6; geschoss2.geschosssorte = QStringLiteral("Mine DM72"); geschoss2.ladung = QStringLiteral("Default"); geschoss2.zuender = QStringLiteral("Default"); geschoss2.anzahl = 6; req.waffensystemdaten.geschosse.append(geschoss1); req.waffensystemdaten.geschosse.append(geschoss2); req.waffensystemdaten.koordinate.koordinate.latitude = 53.0737; req.waffensystemdaten.koordinate.koordinate.longitude = 8.89542; req.waffensystemdaten.koordinate.hoehe = 20; req.waffensystemdaten.wirkungsbereich.grundrichtung = 1; req.waffensystemdaten.wirkungsbereich.links = 2; req.waffensystemdaten.wirkungsbereich.rechts = 3; } void GenerateTelegrams::generateStellungsmeldungLP(AdlerJson::ExFeuerstellungLP &req) { req.ladeplatzdaten.einheit.r = 5; req.ladeplatzdaten.einheit.verein = QStringLiteral("verein StellungsmeldungLP"); req.ladeplatzdaten.einheit.oi = ProjectDataManagement::L19_Oi::F3; req.ladeplatzdaten.koordinate.koordinate.latitude = 53.37791; req.ladeplatzdaten.koordinate.koordinate.longitude = 8.759; req.ladeplatzdaten.koordinate.hoehe = 20; AdlerJson::Geschoss geschoss1; AdlerJson::Geschoss geschoss2; geschoss1.geschosssorte = QStringLiteral("Mine DM72"); geschoss1.ladung = QStringLiteral("M DM72"); // L10_Load::M_DM72 (table pdm_load_type); geschoss1.zuender = QStringLiteral("Doppel DM183"); // L11_Igniter::Doppel_DM183 (table pdm_igniter_type); geschoss1.anzahl = 6; geschoss2.geschosssorte = QStringLiteral("Leucht DM116"); geschoss2.ladung = QStringLiteral("B L8A1"); // L10_Load::B_L8A1 (table pdm_load_type) geschoss2.zuender = QStringLiteral("Aufschlag_BB_DM371"); // L11_Igniter::Aufschlag_BB_DM371(table pdm_igniter_type); geschoss2.anzahl = 7; req.ladeplatzdaten.geschosse.append(geschoss1); req.ladeplatzdaten.geschosse.append(geschoss2); } void GenerateTelegrams::generateStellungswechsel(AdlerJson::ExStellungswechsel &req) { req.stellungswechseldaten.oi = ProjectDataManagement::L19_Oi::F3; req.stellungswechseldaten.r = 5; req.stellungswechseldaten.verein = QStringLiteral("verein ExStellungswechsel"); } void GenerateTelegrams::generateZeit1(AdlerJson::Zeitangabe_DTG &zeit) { zeit.stunden = 5; zeit.minuten = 35; zeit.sekunden = 55; zeit.tag = 12; zeit.monat = 11; zeit.jahr = 2025; zeit.ZVz = QStringLiteral("ZVz"); zeit.ZDS = QStringLiteral("ZDS"); zeit.ZDM = QStringLiteral("ZDM"); } void GenerateTelegrams::generateZeit2(AdlerJson::Zeitangabe_DTG &zeit) { zeit.stunden = 5; zeit.minuten = 35; zeit.sekunden = 55; zeit.tag = 13; zeit.monat = 11; zeit.jahr = 2025; zeit.ZVz = QStringLiteral("ZVz"); zeit.ZDS = QStringLiteral("ZDS"); zeit.ZDM = QStringLiteral("ZDM"); } void GenerateTelegrams::generateKoordinierungsmassnahmen(AdlerJson::ExHqKoordinierungsmassnahmen &req) { req.koordinierungsdaten.art = ProjectDataManagement::L25_KindGuidingLine::NFA; // EX-L25 req.koordinierungsdaten.name = QStringLiteral("Name ExHqKoordinierungsmassnahme"); req.koordinierungsdaten.truppenteil = QStringLiteral("Truppenteil ExHqKoordinierungsmassnahme"); generateZeit1(req.koordinierungsdaten.ab); generateZeit2(req.koordinierungsdaten.bis); AdlerJson::Koordinate koordinate1; AdlerJson::Koordinate koordinate2; koordinate1.latitude = 53.37792; koordinate1.longitude = 8.760; koordinate2.latitude = 53.37793; koordinate2.longitude = 8.761; req.koordinierungsdaten.koordinaten.append(koordinate1); req.koordinierungsdaten.koordinaten.append(koordinate2); req.koordinierungsdaten.mittelpunkt.latitude = 53.37794; req.koordinierungsdaten.mittelpunkt.longitude = 8.762; req.koordinierungsdaten.radius = 66; req.koordinierungsdaten.maxGipfel = 123; } void GenerateTelegrams::generateKoordinierungsmassnahmen_EX_L25(AdlerJson::ExHqKoordinierungsmassnahmen &req, ProjectDataManagement::L25_KindGuidingLine kind, int i) { req.koordinierungsdaten.art = kind; // EX-L25 req.koordinierungsdaten.meldungsnummer = i; req.koordinierungsdaten.name = QStringLiteral("Name ExHqKoordinierungsmassnahme"); req.koordinierungsdaten.truppenteil = QStringLiteral("Truppenteil ExHqKoordinierungsmassnahme"); generateZeit1(req.koordinierungsdaten.ab); generateZeit2(req.koordinierungsdaten.bis); AdlerJson::Koordinate koordinate1; AdlerJson::Koordinate koordinate2; AdlerJson::Koordinate koordinate3; koordinate1.latitude = 52.49303888888889; koordinate1.longitude = 11.53173888888889; koordinate2.latitude = 52.49305277777784; koordinate2.longitude = 11.53527777777777; koordinate3.latitude = 52.49056944444446; koordinate3.longitude = 11.53326388888889; req.koordinierungsdaten.koordinaten.append(koordinate1); req.koordinierungsdaten.koordinaten.append(koordinate2); req.koordinierungsdaten.koordinaten.append(koordinate3); req.koordinierungsdaten.mittelpunkt.latitude = 52.49222037; req.koordinierungsdaten.mittelpunkt.longitude = 11.53342685; req.koordinierungsdaten.radius = 66; req.koordinierungsdaten.maxGipfel = 123; } void GenerateTelegrams::generateFuehrungslinien(AdlerJson::ExHqFuehrungslinien &req) { req.fuehrungsdaten.art = AdlerJson::Art_L24::AO; req.fuehrungsdaten.name = QStringLiteral("Name EX-HQ(G) Führungslinien und Grenzen"); generateZeit1(req.fuehrungsdaten.ab); generateZeit2(req.fuehrungsdaten.bis); AdlerJson::Koordinate koordinate1; AdlerJson::Koordinate koordinate2; koordinate1.latitude = 53.37792; koordinate1.longitude = 8.760; koordinate2.latitude = 53.37793; koordinate2.longitude = 8.761; req.fuehrungsdaten.koordinaten.append(koordinate1); req.fuehrungsdaten.koordinaten.append(koordinate2); req.fuehrungsdaten.linkerNachbar = QStringLiteral("linker Nachbar"); req.fuehrungsdaten.rechterNachbar = QStringLiteral("rechter Nachbar"); } void GenerateTelegrams::generateFuehrungslinien_EX_L24(AdlerJson::ExHqFuehrungslinien &req, AdlerJson::Art_L24 art24, int meldungsnummer) { req.fuehrungsdaten.koordinaten.clear(); req.fuehrungsdaten.art = art24; req.fuehrungsdaten.name = QStringLiteral("Fuehrungslinie"); req.fuehrungsdaten.meldungsnummer = meldungsnummer; generateZeit1(req.fuehrungsdaten.ab); generateZeit2(req.fuehrungsdaten.bis); AdlerJson::Koordinate koordinate1; AdlerJson::Koordinate koordinate2; AdlerJson::Koordinate koordinate3; koordinate1.latitude = 52.49303888888889; koordinate1.longitude = 11.53173888888889; koordinate2.latitude = 52.49305277777784; koordinate2.longitude = 11.53527777777777; koordinate3.latitude = 52.49056944444446; koordinate3.longitude = 11.53326388888889; req.fuehrungsdaten.koordinaten.append(koordinate1); req.fuehrungsdaten.koordinaten.append(koordinate2); req.fuehrungsdaten.koordinaten.append(koordinate3); req.fuehrungsdaten.linkerNachbar = QStringLiteral("linker Nachbar"); req.fuehrungsdaten.rechterNachbar = QStringLiteral("rechter Nachbar"); } void GenerateTelegrams::generateTechnischeQuittung(AdlerJson::ExTqTechnischeQuittung &req) { req.technischeDaten.status = AdlerJson::Status_L32::INV; req.technischeDaten.beschreibung = QStringLiteral("Beschreibung technischer Status"); } void GenerateTelegrams::generateManuelleQuittung(AdlerJson::ExMqManuelleQuittung &req) { req.mqManuelleQuittungDaten.feuerkampfreferenz = QStringLiteral("Manuelle Quittung"); } void GenerateTelegrams::generateFlugbahnberechnung(AdlerJson::ExFlugbahnberechnung &req) { req.flugbahnberechnungDaten.geschoss.geschosssorte = QStringLiteral("SMArt DM702"); req.flugbahnberechnungDaten.geschoss.ladung = QStringLiteral("M DM72"); // L10_Load::M_DM72 (table pdm_load_type); req.flugbahnberechnungDaten.geschoss.zuender = QStringLiteral("Zeit DM52"); // L11_Igniter::Zeit_DM52 (table pdm_igniter_type) req.flugbahnberechnungDaten.geschoss.zuenderFunktion = QStringLiteral("ZZ"); // L41_IgniterFunction::ZZ (table pdm_igniter_funciton) req.flugbahnberechnungDaten.sprenghoehe = 0; req.flugbahnberechnungDaten.standort.hoehe = 55; req.flugbahnberechnungDaten.standort.koordinate.latitude = 53.37787; req.flugbahnberechnungDaten.standort.koordinate.longitude = 8.7573; req.flugbahnberechnungDaten.zielkoordinate.hoehe = 56; req.flugbahnberechnungDaten.zielkoordinate.koordinate.latitude = 53.37788; req.flugbahnberechnungDaten.zielkoordinate.koordinate.longitude = 8.7574; req.flugbahnberechnungDaten.waffensystem = ProjectDataManagement::L26_EffectingSystemType::RRohr; req.flugbahnberechnungDaten.winkelgruppe = AdlerJson::Winkelgruppe::Untere; } void GenerateTelegrams::generateFlugbahndaten(AdlerJson::ExFlugbahndaten &req) { req.flugbahndaten.fehlercode = AdlerJson::FlugbahnberechnungFehlercode::Ok; req.flugbahndaten.zielkoordinate.hoehe = 56; req.flugbahndaten.zielkoordinate.koordinate.latitude = 52.482048; req.flugbahndaten.zielkoordinate.koordinate.longitude = 11.583; req.flugbahndaten.waffensystem = ProjectDataManagement::L26_EffectingSystemType::RRohr; req.flugbahndaten.flugzeit = 300; req.flugbahndaten.gipfelhoehe = 200; req.flugbahndaten.schussrichtung = 45; req.flugbahndaten.fallwinkel = 55; AdlerJson::Flugbahnpunkt flugbahnpunkt; for (int i = 0; i < 30; ++i) { flugbahnpunkt.zeit += 1.0; flugbahnpunkt.xRelativ += 100; flugbahnpunkt.yRelativ += 200; flugbahnpunkt.zRelativ += 10; req.flugbahndaten.flugbahnpunkt.append(flugbahnpunkt); } for (int i = 0; i < 30; ++i) { flugbahnpunkt.zeit += 1.0; flugbahnpunkt.xRelativ -= 100; flugbahnpunkt.yRelativ -= 200; flugbahnpunkt.zRelativ -= 10; req.flugbahndaten.flugbahnpunkt.append(flugbahnpunkt); } req.flugbahndaten.streuung.laengsstreuung = 2.2; req.flugbahndaten.streuung.seitenstreuung = 3.3; req.flugbahndaten.streuung.laengsstreuungH = 4.4; req.flugbahndaten.streuung.seitenstreuungH = 5.5; req.flugbahndaten.geschoss.geschosssorte = QStringLiteral("Spreng DM121"); req.flugbahndaten.geschoss.ladung = QStringLiteral("M DM72"); // L10_Load::M_DM72 (table pdm_load_type); req.flugbahndaten.geschoss.ladungsNummer = 5; req.flugbahndaten.geschoss.zuender = QStringLiteral("Aufschlag DM241"); // L11_Igniter::Aufschlag_DM241;(table pdm_igniter_type) req.flugbahndaten.geschoss.zuenderFunktion = QStringLiteral("AZoV"); // L41_IgniterFunction::AZoV;(table pdm_igniter_function) req.flugbahndaten.geschoss.zuenderZeit = 1000; } void GenerateTelegrams::generateFreitextmeldung(AdlerJson::ExAqFreitextmeldung &req) { req.freitextDaten.text = QStringLiteral("Freier Text"); }