Migrates residual Lts sources to generated rtiddsgen API

Adds NmeaManagement tests, fixes codegen includes and Qt6 SerialPort CMake target.
This commit is contained in:
berrux-dev committed 2026-09-23 12:05:37 +02:00
1 parent 5485a90385
commit 881d44f4dd
512 files changed
+6887 -6426

No files matched your search

@@ -48,18 +48,18 @@ CnrTvcProfile toDds(const Database::AvmCnrTvcProfile &circuitContainerDb, T circ
std::sort(circuitsDb.begin(), circuitsDb.end(), lessRadioCircuitsContent);
CnrTvcProfile circuitContainerDds(circuitContainerDb.id, circuitContainerDb.operatorId, circuitContainerDb.exerciseId, {});
circuitContainerDds.data().reserve(circuitsDb.size());
circuitContainerDds.data.reserve(circuitsDb.size());
for (const auto &currentCircuitDb : qAsConst(circuitsDb))
circuitContainerDds.data().push_back(toDds(currentCircuitDb));
circuitContainerDds.data.push_back(toDds(currentCircuitDb));
return circuitContainerDds;
}
Database::AvmCnrTvcProfile toDb(const CnrTvcProfile &profileDds)
{
Database::AvmCnrTvcProfile profileDb;
profileDb.id = profileDds.id();
profileDb.operatorId = profileDds.operatorId();
profileDb.exerciseId = profileDds.exerciseId();
profileDb.id = profileDds.id;
profileDb.operatorId = profileDds.operatorId;
profileDb.exerciseId = profileDds.exerciseId;
return profileDb;
}
@@ -69,14 +69,14 @@ Database::AvmCnrTvcProfileData toDb(const CnrTvcProfileData &circuitDds, int32_t
circuitDb.containerId = containerId;
circuitDb.sortIndex = sortIndex;
switch (circuitDds.radioSystemId().underlying())
switch (circuitDds.radioSystemId)
{
case RadioSystem::Cnr:
circuitDb.cnrConfigId = circuitDds.radioCircuitId();
circuitDb.cnrConfigId = circuitDds.radioCircuitId;
return circuitDb;
case RadioSystem::Tvc:
circuitDb.tvcConfigId = circuitDds.radioCircuitId();
circuitDb.tvcConfigId = circuitDds.radioCircuitId;
return circuitDb;
}
Q_ASSERT(false);
@@ -225,7 +225,7 @@ void CnrTvcProfileHandler::onModifyCnrTvcProfileRequest(const rti::core::SampleI
const CnrTvcProfile &request)
{
Core::FunctionReplyObject rep;
if (request.id() <= 0)
if (request.id <= 0)
rep = createProfile(request);
else
rep = modifyProfile(request);
@@ -249,7 +249,7 @@ void CnrTvcProfileHandler::onRemoveCnrTvcProfileRequest(const rti::core::SampleI
Core::FunctionReplyObject CnrTvcProfileHandler::createProfile(const CnrTvcProfile &createRequest)
{
Q_ASSERT(createRequest.id() <= 0);
Q_ASSERT(createRequest.id <= 0);
Core::FunctionReplyObject reply = validateRequest(createRequest);
if (reply.error())
@@ -263,7 +263,7 @@ Core::FunctionReplyObject CnrTvcProfileHandler::createProfile(const CnrTvcProfil
return reply.setStr(tr_lts("dds", "Failed to insert into 'avm.avm_cnr_tvc_profile'"));
reply.setId(dbEntry.id);
const auto circuitDataDb = insert(createRequest.data(), dbEntry.id, status);
const auto circuitDataDb = insert(createRequest.data, dbEntry.id, status);
if (!status)
return reply.setStr(tr_lts("dds", "Failed to insert into 'avm.avm_cnr_tvc_profile_data'"));
@@ -277,7 +277,7 @@ Core::FunctionReplyObject CnrTvcProfileHandler::createProfile(const CnrTvcProfil
Core::FunctionReplyObject CnrTvcProfileHandler::modifyProfile(const CnrTvcProfile &modifyRequest)
{
Q_ASSERT(modifyRequest.id() > 0);
Q_ASSERT(modifyRequest.id > 0);
Core::FunctionReplyObject reply = validateRequest(modifyRequest);
if (reply.error())
@@ -288,13 +288,13 @@ Core::FunctionReplyObject CnrTvcProfileHandler::modifyProfile(const CnrTvcProfil
bool status = m_db->update(dbEntry);
if (!status)
return reply.setStr(tr_lts("dds", "Failed to update 'avm.avm_cnr_tvc_profile' data with id %1")).arg(modifyRequest.id());
return reply.setStr(tr_lts("dds", "Failed to update 'avm.avm_cnr_tvc_profile' data with id %1")).arg(modifyRequest.id);
status = m_db->removeAvmCnrTvcProfileDataByContainerId(modifyRequest.id());
status = m_db->removeAvmCnrTvcProfileDataByContainerId(modifyRequest.id);
if (!status)
return reply.setStr(tr_lts("dds", "Failed to remove from 'avm.avm_cnr_tvc_profile_data' with container_id %1")).arg(modifyRequest.id());
return reply.setStr(tr_lts("dds", "Failed to remove from 'avm.avm_cnr_tvc_profile_data' with container_id %1")).arg(modifyRequest.id);
insert(modifyRequest.data(), modifyRequest.id(), status);
insert(modifyRequest.data, modifyRequest.id, status);
if (!status)
return reply.setStr(tr_lts("dds", "Failed to insert into 'avm.avm_cnr_tvc_profile_data'"));
@@ -312,16 +312,16 @@ Core::FunctionReplyObject CnrTvcProfileHandler::removeProfile(const Core::Remove
DBTransaction dbTransaction(m_db->database());
bool status = m_db->removeAvmCnrTvcProfileDataByContainerId(request.id());
bool status = m_db->removeAvmCnrTvcProfileDataByContainerId(request.id);
if (!status)
return reply.setStr(tr_lts("dds", "Failed to remove from 'avm.avm_cnr_tvc_profile_data' with container_id %1")).arg(request.id());
return reply.setStr(tr_lts("dds", "Failed to remove from 'avm.avm_cnr_tvc_profile_data' with container_id %1")).arg(request.id);
status = m_db->removeAvmCnrTvcProfile(request.id());
status = m_db->removeAvmCnrTvcProfile(request.id);
if (!status)
return reply.setStr(tr_lts("dds", "Failed to remove from 'avm.avm_cnr_tvc_profile' with id %1")).arg(request.id());
return reply.setStr(tr_lts("dds", "Failed to remove from 'avm.avm_cnr_tvc_profile' with id %1")).arg(request.id);
dbTransaction.commit();
removeProfile(request.id());
removeProfile(request.id);
return reply;
}
@@ -350,18 +350,18 @@ std::vector<Database::AvmCnrTvcProfileData> CnrTvcProfileHandler::insert(const s
void CnrTvcProfileHandler::addProfile(const CnrTvcProfile &profile)
{
Q_ASSERT(profile.id() > 0);
Q_ASSERT(!m_cache.contains(profile.id()));
Q_ASSERT(profile.id > 0);
Q_ASSERT(!m_cache.contains(profile.id));
OperatorExerciseKey key(profile);
Q_ASSERT(!m_uniqueKeys.contains(key));
m_cache[profile.id()] = profile;
m_cache[profile.id] = profile;
m_uniqueKeys.append(key);
bool status = m_dts->publish(profile);
if (!status)
ERROR_LOG(m_logger) << QStringLiteral("Failed to publish 'CnrTvcProfile' data with id %1 (create)").arg(profile.id());
ERROR_LOG(m_logger) << QStringLiteral("Failed to publish 'CnrTvcProfile' data with id %1 (create)").arg(profile.id);
}
void CnrTvcProfileHandler::removeProfile(int64_t id)
@@ -380,30 +380,30 @@ void CnrTvcProfileHandler::removeProfile(int64_t id)
void CnrTvcProfileHandler::updateProfile(const CnrTvcProfile &profile)
{
Q_ASSERT(profile.id() > 0);
Q_ASSERT(m_cache.contains(profile.id()));
Q_ASSERT(profile.id > 0);
Q_ASSERT(m_cache.contains(profile.id));
OperatorExerciseKey key(profile);
Q_ASSERT(m_uniqueKeys.contains(key));
if (m_cache[profile.id()] == profile)
if (m_cache[profile.id] == profile)
return;
m_cache[profile.id()] = profile;
m_cache[profile.id] = profile;
bool status = m_dts->publish(profile);
if (!status)
ERROR_LOG(m_logger) << QStringLiteral("Failed to publish 'CnrTvcProfile' data with id %1 (modify)").arg(profile.id());
ERROR_LOG(m_logger) << QStringLiteral("Failed to publish 'CnrTvcProfile' data with id %1 (modify)").arg(profile.id);
}
void CnrTvcProfileHandler::onCnrConfigChanged(const CnrConfig &cnrConfig)
{
onConfigChanged(cnrConfig.id(), RadioSystem::Cnr);
onConfigChanged(cnrConfig.id, RadioSystem::Cnr);
}
void CnrTvcProfileHandler::onTvcConfigChanged(const TvcConfig &tvcConfig)
{
onConfigChanged(tvcConfig.id(), RadioSystem::Tvc);
onConfigChanged(tvcConfig.id, RadioSystem::Tvc);
}
/**
@@ -461,38 +461,38 @@ Core::FunctionReplyObject CnrTvcProfileHandler::validateRequest(const CnrTvcProf
{
Core::FunctionReplyObject reply;
if (request.id() > 0)
if (request.id > 0)
{
// modify
reply.setId(request.id());
reply.setId(request.id);
if (!m_cache.contains(request.id()))
return reply.setStr(tr_lts("dds", "CnrTvcProfile for operator %1 in exercise %2 does not exist")).arg(request.operatorId()).arg(request.exerciseId());
if (!m_cache.contains(request.id))
return reply.setStr(tr_lts("dds", "CnrTvcProfile for operator %1 in exercise %2 does not exist")).arg(request.operatorId).arg(request.exerciseId);
if (OperatorExerciseKey(m_cache.value(request.id())) != OperatorExerciseKey(request))
if (OperatorExerciseKey(m_cache.value(request.id)) != OperatorExerciseKey(request))
return reply.setStr(tr_lts("dds", "operator or exercise may not be changed"));
}
else
{
// create
if (m_uniqueKeys.contains(OperatorExerciseKey(request)))
return reply.setStr(tr_lts("dds", "CnrTvcProfile for operator %1 already exists in exercise %2")).arg(request.operatorId()).arg(request.exerciseId());
return reply.setStr(tr_lts("dds", "CnrTvcProfile for operator %1 already exists in exercise %2")).arg(request.operatorId).arg(request.exerciseId);
}
if (request.data().size() == 0)
if (request.data.size() == 0)
return reply.setStr(tr_lts("dds", "CnrTvcProfile must not be empty"));
for (const auto &entry : request.data())
for (const auto &entry : request.data)
{
if (entry.radioSystemId() == RadioSystem::Tvc)
if (entry.radioSystemId == RadioSystem::Tvc)
{
auto reply2 = isValidTvc(entry.radioCircuitId(), request.exerciseId(), request.id());
auto reply2 = isValidTvc(entry.radioCircuitId, request.exerciseId, request.id);
if (reply2.error())
return reply2;
}
else if (entry.radioSystemId() == RadioSystem::Cnr)
else if (entry.radioSystemId == RadioSystem::Cnr)
{
auto reply2 = isValidCnr(entry.radioCircuitId(), request.exerciseId(), request.id());
auto reply2 = isValidCnr(entry.radioCircuitId, request.exerciseId, request.id);
if (reply2.error())
return reply2;
}
@@ -503,11 +503,11 @@ Core::FunctionReplyObject CnrTvcProfileHandler::validateRequest(const CnrTvcProf
Core::FunctionReplyObject CnrTvcProfileHandler::validateRequest(const Core::RemoveElementRequest &request) const
{
Q_ASSERT(request.id() > 0);
Core::FunctionReplyObject reply(request.id());
Q_ASSERT(request.id > 0);
Core::FunctionReplyObject reply(request.id);
if (!m_cache.contains(request.id()))
return reply.setStr(tr_lts("dds", "CnrTvcProfile %1 does not exist")).arg(request.id());
if (!m_cache.contains(request.id))
return reply.setStr(tr_lts("dds", "CnrTvcProfile %1 does not exist")).arg(request.id);
return reply;
}
@@ -571,8 +571,8 @@ void CnrTvcProfileHandler::onConfigChanged(int32_t configId, RadioSystem type)
// Find all CnrTvcProfiles where this config is referenced and reload those.
// Hint: reloading might modify m_cache. Thus the reloading is done in a separate loop.
for (const auto &profile : qAsConst(m_cache))
for (const auto &data : profile.data())
if (data.radioSystemId() == type && data.radioCircuitId() == configId)
for (const auto &data : profile.data)
if (data.radioSystemId == type && data.radioCircuitId == configId)
{
toBeReloaded.append(profile);
break;