Migrates remaining services and plugins to generated rtiddsgen API

Converts accessor calls to plain member access across the residual service set.
This commit is contained in:
berrux-dev committed 2026-09-21 02:47:48 +02:00
1 parent 6a8c31b735
commit c3eda18234
104 files changed
+2424 -2430

No files matched your search

@@ -88,10 +88,10 @@ void HandlerMinelayerData::onSpecialSensorDataChanged(const TrainingAreaBase::Sp
if (modType != DataModification::eAdded &&
modType != DataModification::eModified)
return;
if (data.operationalState() != MV_VERLEGEN &&
data.operationalState() != WMV_VERLEGEN)
if (data.operationalState != MV_VERLEGEN &&
data.operationalState != WMV_VERLEGEN)
return;
if (!data.position().is_set())
if (!data.position.is_set())
return;
{
// convert TrainingAreaBase::LaneData back to sondersensorik_fahrspur_rt
@@ -99,10 +99,10 @@ void HandlerMinelayerData::onSpecialSensorDataChanged(const TrainingAreaBase::Sp
//Interpretationsstatus auf 0 setzen
daten_intern.intstat = 0;
daten_intern.daten.header.identitaet = data.equipmentNumber();
daten_intern.daten.gps_zeit.gps_zeit = data.sampleTime() / 1000;
daten_intern.daten.gps_position = relativeFromGeographic(data.position().get().lon(), data.position().get().lat());
daten_intern.daten.ss_betriebszustand = data.operationalState();
daten_intern.daten.header.identitaet = data.equipmentNumber;
daten_intern.daten.gps_zeit.gps_zeit = data.sampleTime / 1000;
daten_intern.daten.gps_position = relativeFromGeographic(data.position.get().lon, data.position.get().lat);
daten_intern.daten.ss_betriebszustand = data.operationalState;
// old code copied from zssi_wi_Empfaenger.cpp
/*
@@ -132,16 +132,16 @@ void HandlerMinelayerData::onSpecialSensorDataChanged(const TrainingAreaBase::Sp
template<typename T>
void HandlerMinelayerData::convertMinelayerDataToXdrData(const TrainingAreaBase::MinelayerTrailerData &inData, T &outData)
{
outData.header.identitaet = inData.equipmentNumber();
outData.gps_zeit.gps_zeit = inData.sampleTime() / 1000; // derived from Tetra telegram
outData.header.identitaet = inData.equipmentNumber;
outData.gps_zeit.gps_zeit = inData.sampleTime / 1000; // derived from Tetra telegram
outData.gps_position = relativeFromGeographic(inData.position().lon(), inData.position().lat());
outData.verlegedaten.sperren_id = inData.barrierId();
outData.verlegedaten.verlegedichte = inData.layingDensity();
outData.verlegedaten.wirkbeginn.gps_zeit = inData.effectStart() / 1000; // derived from Tetra telegram
outData.verlegedaten.wirkzeit = inData.effectDuration();
outData.verlegedaten.minentyp = inData.chargeTypeId();
outData.verlegedaten.anzahl_verlegter_minen = inData.mineCount();
outData.gps_position = relativeFromGeographic(inData.position.lon, inData.position.lat);
outData.verlegedaten.sperren_id = inData.barrierId;
outData.verlegedaten.verlegedichte = inData.layingDensity;
outData.verlegedaten.wirkbeginn.gps_zeit = inData.effectStart / 1000; // derived from Tetra telegram
outData.verlegedaten.wirkzeit = inData.effectDuration;
outData.verlegedaten.minentyp = inData.chargeTypeId;
outData.verlegedaten.anzahl_verlegter_minen = inData.mineCount;
}
void HandlerMinelayerData::onMinelayerTrailerData(const TrainingAreaBase::MinelayerTrailerData &data, DataModification modType)
@@ -194,7 +194,7 @@ void HandlerMinelayerData::onMinelayerThrowerData(const TrainingAreaBase::Minela
{
VERLEGEDATEN_INTERN daten_intern;
convertMinelayerDataToXdrData(data, daten_intern.daten);
daten_intern.daten.verlegedaten.ausstossart = static_cast<ausstossart_et>(data.throwingType().underlying());
daten_intern.daten.verlegedaten.ausstossart = static_cast<ausstossart_et>(data.throwingType);
/*
if ( checkeTelegrammZeit(telegramm_rt.gps_zeit.gps_zeit) ) {
@@ -240,8 +240,8 @@ Core::GeoPosition2D HandlerMinelayerData::geographicFromRelative(const gps_posit
const QPointF point(m_baseCoord.geographic(position.utm_ostwert - m_baseCoord.x, position.utm_nordwert - m_baseCoord.y));
Core::GeoPosition2D ret;
ret.lon(point.x());
ret.lat(point.y());
ret.lon = point.x();
ret.lat = point.y();
return ret;
}
@@ -267,9 +267,9 @@ int HandlerMinelayerData::partyIdFromEquipmentNumber(int eqNumber) const
std::function<bool(const ParticipantManagement::Participant &data)> cb =
[eqNumber, &partyId](const ParticipantManagement::Participant & participant) -> bool
{
if (participant.equipmentNumber() == eqNumber)
if (participant.equipmentNumber == eqNumber)
{
partyId = participant.partyId();
partyId = participant.partyId;
return true;
}
return false;
@@ -292,18 +292,18 @@ static inline double compassFromMathAngleForSfm(int mathAngle)
void HandlerMinelayerData::onSendMinefield(const wirkfeld_minensperre_rt &minefield, int fzArt)
{
AreaEffectSimulation::MineArea outData;
outData.participantId(minefield.header.identitaet);
outData.partyId(partyIdFromEquipmentNumber(minefield.header.identitaet)); // Get from PPM;
outData.name(QString::fromUtf8(tr_lts("dds", "_%1")).arg(minefield.beschreibung.kennung).toStdString());
outData.effectStart(minefield.beschreibung.wirkbeginn.gps_zeit * 1000LL); // derived from Tetra telegram
outData.effectDuration(minefield.beschreibung.wirkdauer * (1000 * 60 * 60)); // orig resolution is 1h based
outData.density(minefield.beschreibung.verlegedichte / 100.0); // derived from Tetra telegram
outData.chargeStruct().chargeTypeId(minefield.beschreibung.minentyp); // is already in TAB converted to chargeTypeId
outData.layingProcedureType(static_cast<AreaEffectSimulation::AesMaLayingProcedureType::inner_enum>(fzArt));
outData.width(minefield.beschreibung.verlegetiefe);
outData.isLaidHidden(false);
outData.layingProcedureType(AreaEffectSimulation::AesMaLayingProcedureType::LptPioneer);
outData.isCenterLine(true);
outData.participantId = minefield.header.identitaet;
outData.partyId = partyIdFromEquipmentNumber(minefield.header.identitaet); // Get from PPM;
outData.name = QString::fromUtf8(tr_lts("dds", "_%1")).arg(minefield.beschreibung.kennung).toStdString();
outData.effectStart = minefield.beschreibung.wirkbeginn.gps_zeit * 1000LL; // derived from Tetra telegram
outData.effectDuration = minefield.beschreibung.wirkdauer * (1000 * 60 * 60); // orig resolution is 1h based
outData.density = minefield.beschreibung.verlegedichte / 100.0; // derived from Tetra telegram
outData.chargeStruct.chargeTypeId = minefield.beschreibung.minentyp; // is already in TAB converted to chargeTypeId
outData.layingProcedureType = static_cast<AreaEffectSimulation::AesMaLayingProcedureType>(fzArt);
outData.width = minefield.beschreibung.verlegetiefe;
outData.isLaidHidden = false;
outData.layingProcedureType = AreaEffectSimulation::AesMaLayingProcedureType::LptPioneer;
outData.isCenterLine = true;
// segments
std::vector<AreaEffectSimulation::MineSegment> segVec;
@@ -311,23 +311,23 @@ void HandlerMinelayerData::onSendMinefield(const wirkfeld_minensperre_rt &minefi
for (const auto &seg : minefield.beschreibung.segmente)
{
AreaEffectSimulation::MineSegment segment;
segment.positionStart(geographicFromRelative(seg.startpunkt));
const LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic({segment.positionStart().lon(), segment.positionStart().lat()});
segment.positionStart = geographicFromRelative(seg.startpunkt);
const LtsCoordTrans::UtmCoordinate startPositionUtm = LtsCoordTrans::UtmCoordinate::fromGeographic({segment.positionStart.lon, segment.positionStart.lat});
QLineF line;
line.setP1({startPositionUtm.x, startPositionUtm.y});
line.setAngle(seg.drehwinkel);
line.setLength(double(seg.anzahl / outData.density()));
line.setLength(double(seg.anzahl / outData.density));
LtsCoordTrans::UtmCoordinate endPositionUtm = startPositionUtm;
endPositionUtm.x = line.p2().x();
endPositionUtm.y = line.p2().y();
QPointF endPos = endPositionUtm.geographic();
segment.positionEnd({endPos.x(), endPos.y()});
segment.positionEnd = {endPos.x(), endPos.y()};
segVec.emplace_back(segment);
}
outData.segments(segVec);
outData.segments = segVec;
INFO_LOG(m_logger) << "Sending new minefield from generator to AES: " << outData;