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

@@ -30,12 +30,12 @@ namespace
bool isRadioStation(const InfrastructureManagement::MainStructureElement &mse)
{
return mse.structureElementTypeId() == InfrastructureManagement::StructureElementType::RadioStation;
return mse.structureElementTypeId == InfrastructureManagement::StructureElementType::RadioStation;
}
QString hostnameForRadioStation(const InfrastructureManagement::MainStructureElement &mse)
{
LtsUtils::JsonObject properties = LtsUtils::JsonObject::fromJson(mse.properties());
LtsUtils::JsonObject properties = LtsUtils::JsonObject::fromJson(mse.properties);
return properties.valueOr("hostname", QString());
}
@@ -55,7 +55,7 @@ CnrChannel toDds(const Database::AvmCnrChannel &channel)
channel.ssrc,
channel.addacChannel,
channel.pttControl,
static_cast<FrequencyBand::inner_enum>(channel.frequencyBand));
static_cast<FrequencyBand>(channel.frequencyBand));
}
ModifyCnrConfigRequest toRequest(const Database::AvmCnrConfig &dbData, const boost::optional<int32_t> &requestId = boost::none)
@@ -72,28 +72,28 @@ ModifyCnrConfigRequest toRequest(const Database::AvmCnrConfig &dbData, const boo
ModifyCnrConfigRequest toRequest(const CnrConfig &cnrConfig)
{
return ModifyCnrConfigRequest(cnrConfig.id(),
cnrConfig.cnrChannelId(),
cnrConfig.exerciseId(),
cnrConfig.radioCircuit(),
cnrConfig.recording(),
cnrConfig.unitId(),
cnrConfig.partyId(),
cnrConfig.callSign());
return ModifyCnrConfigRequest(cnrConfig.id,
cnrConfig.cnrChannelId,
cnrConfig.exerciseId,
cnrConfig.radioCircuit,
cnrConfig.recording,
cnrConfig.unitId,
cnrConfig.partyId,
cnrConfig.callSign);
}
Database::AvmCnrConfig toDb(const ModifyCnrConfigRequest &config)
{
Database::AvmCnrConfig result;
result.id = config.id();
result.cnrChannelId = config.cnrChannelId();
result.radioCircuit = QString::fromStdString(config.radioCircuit());
result.callSign = QString::fromStdString(config.callSign());
result.partyId = config.partyId();
result.id = config.id;
result.cnrChannelId = config.cnrChannelId;
result.radioCircuit = QString::fromStdString(config.radioCircuit);
result.callSign = QString::fromStdString(config.callSign);
result.partyId = config.partyId;
if (config.unitId.is_set())
result.unitId = config.unitId.get();
result.recording = config.recording();
result.recording = config.recording;
if (config.exerciseId.is_set())
result.exerciseId = config.exerciseId.get();
@@ -120,22 +120,22 @@ public:
void create(const CnrConfig &config)
{
Q_ASSERT(!m_cache.contains(config.id()));
Q_ASSERT(!m_cache.contains(config.id));
Database::AvmDeviceConfig deviceConfig = m_handler->toDeviceConfig(config);
bool status = m_db->insert(deviceConfig);
if (!status)
ERROR_LOG(m_logger) << "Error while inserting device config";
m_cache.insert(config.id(), deviceConfig);
m_cache.insert(config.id, deviceConfig);
emit m_handler->avDbReloadNeeded();
}
void update(const CnrConfig &config)
{
Q_ASSERT(m_cache.contains(config.id()));
Q_ASSERT(m_cache.contains(config.id));
Database::AvmDeviceConfig oldDeviceConfig = m_cache.value(config.id());
Database::AvmDeviceConfig oldDeviceConfig = m_cache.value(config.id);
Database::AvmDeviceConfig newDeviceConfig = m_handler->toDeviceConfig(config);
newDeviceConfig.id = oldDeviceConfig.id;
@@ -143,13 +143,13 @@ public:
if (!status)
ERROR_LOG(m_logger) << "Error while updating device config";
m_cache[config.id()] = newDeviceConfig;
m_cache[config.id] = newDeviceConfig;
emit m_handler->avDbReloadNeeded();
}
void createOrUpdate(const CnrConfig &config)
{
if (m_cache.contains(config.id()))
if (m_cache.contains(config.id))
update(config);
else
create(config);
@@ -283,7 +283,7 @@ void CnrHandler::onRemoveCnrConfigRequest(const rti::core::SampleIdentity &cooki
void CnrHandler::onModifyCnrConfigRequest(const rti::core::SampleIdentity &cookie,
const ModifyCnrConfigRequest &request)
{
auto ret = (request.id() < 1 ? createCnrConfig(request) : modifyCnrConfig(request));
auto ret = (request.id < 1 ? createCnrConfig(request) : modifyCnrConfig(request));
if (ret.error())
WARNING_LOG(m_logger) << ret();
m_fts->modifyCnrConfigReply(cookie, ret);
@@ -365,10 +365,10 @@ void CnrHandler::onRadioStationChanged(const InfrastructureManagement::MainStruc
{
case DataModification::eAdded:
case DataModification::eModified:
onRadioStationAdded(data.id(), QString::fromStdString(data.name()), hostnameForRadioStation(data));
onRadioStationAdded(data.id, QString::fromStdString(data.name), hostnameForRadioStation(data));
break;
case DataModification::eRemoved:
onRadioStationRemoved(data.id());
onRadioStationRemoved(data.id);
break;
}
}
@@ -400,7 +400,7 @@ void CnrHandler::updateDeviceConfig()
DBTransaction trans(m_db->database());
for (const auto &config : qAsConst(m_cache))
if (config.isActive())
if (config.isActive)
m_deviceConfig->update(config);
trans.commit();
@@ -419,7 +419,7 @@ CnrConfig CnrHandler::toDds(const Database::AvmCnrConfig &config) const
false);
if (needDeviceConfig(cnrConfig))
cnrConfig.isActive(true);
cnrConfig.isActive = true;
return cnrConfig;
}
@@ -429,11 +429,11 @@ Database::AvmDeviceConfig CnrHandler::toDeviceConfig(const CnrConfig &cnrConfig)
static const QString recordingServer = QStringLiteral("EXCAVS01");
Database::AvmDeviceConfig deviceConfig;
const Database::AvmCnrChannel channel = channelById(cnrConfig.cnrChannelId());
const Database::AvmCnrChannel channel = channelById(cnrConfig.cnrChannelId);
deviceConfig.id = 0;
deviceConfig.context = exerciseList(cnrConfig);
deviceConfig.type = channel.addacChannel == 0 ? QStringLiteral("CNR_GUEZ_RT_CHANNEL") : QStringLiteral("ADDAC_RT_CHANNEL");
deviceConfig.name = QString::fromStdString(cnrConfig.radioCircuit());
deviceConfig.name = QString::fromStdString(cnrConfig.radioCircuit);
deviceConfig.controller = stationList(channel.addacChannel);
deviceConfig.definition = QStringLiteral("mode=1;ssrc=%1").arg(channel.ssrc);
//for UAE we need pttc controll to!
@@ -443,7 +443,7 @@ Database::AvmDeviceConfig CnrHandler::toDeviceConfig(const CnrConfig &cnrConfig)
#endif
if (channel.addacChannel)
deviceConfig.definition += QStringLiteral(";channel=%1").arg(normalizedAddacChannel(channel.addacChannel));
if (cnrConfig.recording())
if (cnrConfig.recording)
deviceConfig.definition.append(QStringLiteral(";recording=ECRS@%1").arg(recordingServer));
deviceConfig.link = 0;
@@ -457,17 +457,17 @@ Core::FunctionReplyObject CnrHandler::validateRequest(const ModifyCnrConfigReque
{
Core::FunctionReplyObject reply;
if (request.id() > 0)
if (request.id > 0)
{
reply.setId(request.id());
if (!m_cache.contains(request.id()))
return reply.setStr(tr_lts("dds", "Could not modify CNR config because id %1 is unknown")).arg(request.id());
reply.setId(request.id);
if (!m_cache.contains(request.id))
return reply.setStr(tr_lts("dds", "Could not modify CNR config because id %1 is unknown")).arg(request.id);
}
if (!isValidChannel(request.cnrChannelId()))
return reply.setStr(tr_lts("dds", "Could not create/modify CNR config because the channel with id %1 is invalid")).arg(request.cnrChannelId());
if (!isValidChannel(request.cnrChannelId))
return reply.setStr(tr_lts("dds", "Could not create/modify CNR config because the channel with id %1 is invalid")).arg(request.cnrChannelId);
if (!isStreamNameValid(request.radioCircuit()))
if (!isStreamNameValid(request.radioCircuit))
return reply.setStr(tr_lts("dds", "Could not create/modify CNR config because the circuit name is invalid"));
if (!isNameUnique(request))
@@ -483,7 +483,7 @@ bool CnrHandler::checkConstraint(const std::function<bool (const CnrConfig &)> &
{
for (const CnrConfig &config : qAsConst(m_cache))
{
if (excludeId == config.id())
if (excludeId == config.id)
continue;
// If both configs are local the constraint must hold if they are in the same exercise
@@ -526,31 +526,31 @@ bool CnrHandler::isValidChannel(int64_t channelId) const
bool CnrHandler::isFreeChannel(const ModifyCnrConfigRequest &request) const
{
boost::optional<int> exerciseId = toBoost(request.exerciseId());
boost::optional<int> exerciseId = toBoost(request.exerciseId);
if (request.id() <= 0)
return isFreeChannel(request.cnrChannelId(), exerciseId);
return isFreeChannel(request.cnrChannelId(), exerciseId, request.id());
if (request.id <= 0)
return isFreeChannel(request.cnrChannelId, exerciseId);
return isFreeChannel(request.cnrChannelId, exerciseId, request.id);
}
bool CnrHandler::isFreeChannel(int32_t channelId, const boost::optional<int> &exerciseId, const boost::optional<int32_t> &excludeId) const
{
auto constraint = [&channelId] (const CnrConfig &config) { return config.cnrChannelId() != channelId; };
auto constraint = [&channelId] (const CnrConfig &config) { return config.cnrChannelId != channelId; };
return checkConstraint(constraint, exerciseId, excludeId);
}
bool CnrHandler::isNameUnique(const ModifyCnrConfigRequest &request)
{
boost::optional<int> exerciseId = toBoost(request.exerciseId());
boost::optional<int> exerciseId = toBoost(request.exerciseId);
if (request.id() <= 0)
return isNameUnique(request.radioCircuit(), exerciseId);
return isNameUnique(request.radioCircuit(), exerciseId, request.id());
if (request.id <= 0)
return isNameUnique(request.radioCircuit, exerciseId);
return isNameUnique(request.radioCircuit, exerciseId, request.id);
}
bool CnrHandler::isNameUnique(const std::string &name, const boost::optional<int> &exerciseId, const boost::optional<int32_t> &excludeId) const
{
auto constraint = [&name] (const CnrConfig &config) { return config.radioCircuit() != name; };
auto constraint = [&name] (const CnrConfig &config) { return config.radioCircuit != name; };
return checkConstraint(constraint, exerciseId, excludeId);
}
@@ -576,10 +576,10 @@ Core::FunctionReplyObject CnrHandler::createCnrConfig(const ModifyCnrConfigReque
}
CnrConfig cnrConfig = toDds(dbConfigData);
m_cache.insert(cnrConfig.id(), cnrConfig);
m_cache.insert(cnrConfig.id, cnrConfig);
m_dts->publish(cnrConfig);
if (cnrConfig.isActive())
if (cnrConfig.isActive)
m_deviceConfig->create(cnrConfig);
return Core::FunctionReplyObject(dbConfigData.id);
@@ -593,7 +593,7 @@ Core::FunctionReplyObject CnrHandler::modifyCnrConfig(const ModifyCnrConfigReque
if (reply.error())
return reply;
auto found = m_cache.find(request.id());
auto found = m_cache.find(request.id);
Q_ASSERT(found != m_cache.end());
const CnrConfig &oldCnrConfig = *found;
@@ -604,24 +604,24 @@ Core::FunctionReplyObject CnrHandler::modifyCnrConfig(const ModifyCnrConfigReque
// But not every entry from the FrequencySet can be assigned, e.g. a CnrConfig of (channel-)type VHF cannot
// be assigned to a FrequencySet-entry of type HF.
// Thus changing the CnrChannel would possibly invalidate those assignments in the FrequencyPlanning.
if (request.cnrChannelId() != oldCnrConfig.cnrChannelId())
if (request.cnrChannelId != oldCnrConfig.cnrChannelId)
return reply.setStr(tr_lts("dds", "Changing the CNR channel is not allowed"));
Database::AvmCnrConfig dbConfigData = toDb(request);
CnrConfig newCnrConfig = toDds(dbConfigData);
if (newCnrConfig.isActive())
if (newCnrConfig.isActive)
m_deviceConfig->createOrUpdate(newCnrConfig);
else
m_deviceConfig->tryRemove(newCnrConfig.id());
m_deviceConfig->tryRemove(newCnrConfig.id);
if (newCnrConfig == oldCnrConfig)
return reply;
if (!m_db->update(dbConfigData))
return reply.setStr(tr_lts("dds", "Error updating CNR config data with id %1 in database")).arg(request.id());
return reply.setStr(tr_lts("dds", "Error updating CNR config data with id %1 in database")).arg(request.id);
m_cache[newCnrConfig.id()] = newCnrConfig;
m_cache[newCnrConfig.id] = newCnrConfig;
m_dts->publish(newCnrConfig);
@@ -633,7 +633,7 @@ Core::FunctionReplyObject CnrHandler::removeCnrConfig(const Core::RemoveElementR
{
DEBUG_LOG(m_logger) << "RemoveCnrConfigRequest: " << request;
int32_t configId = request.id();
int32_t configId = request.id;
Core::FunctionReplyObject reply(configId);
auto found = m_cache.find(configId);
@@ -647,7 +647,7 @@ Core::FunctionReplyObject CnrHandler::removeCnrConfig(const Core::RemoveElementR
m_dts->removeCnrConfigByKey(configId);
if (!m_db->removeAvmCnrConfig(configId))
return reply.setStr(tr_lts("dds", "Could not remove CNR config data with id %1")).arg(request.id());
return reply.setStr(tr_lts("dds", "Could not remove CNR config data with id %1")).arg(request.id);
emit cnrConfigRemoved(configId);
@@ -675,7 +675,7 @@ bool CnrHandler::needDeviceConfig(const CnrConfig &config) const
return false;
// Config needs to be referenced. (Wonder if its possible to have a non-referenced one...)
if (m_frequencyPlanningHandler->isReferencedByActivePlan(exerciseId, config.id()))
if (m_frequencyPlanningHandler->isReferencedByActivePlan(exerciseId, config.id))
return true;
return false;