Files
qt5-legatus-legacy/Lts/Proxies/TrainingAreaBase/Plugins/AdlerJson/generatetelegrams.cpp
T
2026-08-13 18:33:10 +02:00

845 lines
31 KiB
C++
Executable File

#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<AdlerJson::WirkmittelFeuerkommandoRakete> &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<AdlerJson::WirkmittelFeuerkommando> 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<AdlerJson::Flugbahnpunkt> 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<AdlerJson::Flugbahnpunkt> 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"); }