845 lines
31 KiB
C++
Executable File
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"); }
|