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

@@ -61,11 +61,11 @@ Database::AvmTvcConfig toDb(const ModifyTvcConfigRequest &request)
{
Database::AvmTvcConfig result;
result.id = request.id();
result.radioCircuit = QString::fromStdString(request.radioCircuit());
result.info = QString::fromStdString(request.info());
result.recording = request.recording();
result.tetraChannelId = request.tetraChannelId();
result.id = request.id;
result.radioCircuit = QString::fromStdString(request.radioCircuit);
result.info = QString::fromStdString(request.info);
result.recording = request.recording;
result.tetraChannelId = request.tetraChannelId;
if (request.exerciseId.is_set())
result.exerciseId = request.exerciseId.get();
@@ -92,36 +92,36 @@ public:
void create(const TvcConfig &config)
{
Q_ASSERT(!m_cache.contains(config.id()));
Q_ASSERT(!m_cache.contains(config.id));
Database::AvmDeviceConfig deviceConfig = toDeviceConfig(config);
if (!m_db->insert(deviceConfig))
ERROR_LOG(m_logger) << "Error while inserting device config into database";
m_cache.insert(config.id(), deviceConfig);
m_cache.insert(config.id, deviceConfig);
emit m_handler->avDbReloadNeeded();
}
void update(const TvcConfig &config)
{
Q_ASSERT(m_cache.contains(config.id()));
Q_ASSERT(m_cache.contains(config.id));
Database::AvmDeviceConfig deviceConfig = toDeviceConfig(config);
const Database::AvmDeviceConfig &oldDeviceConfig = m_cache[config.id()];
const Database::AvmDeviceConfig &oldDeviceConfig = m_cache[config.id];
deviceConfig.id = oldDeviceConfig.id;
if (!m_db->update(deviceConfig))
ERROR_LOG(m_logger) << "Error while updating device config";
m_cache[config.id()] = deviceConfig;
m_cache[config.id] = deviceConfig;
emit m_handler->avDbReloadNeeded();
}
void createOrUpdate(const TvcConfig &config)
{
if (m_cache.contains(config.id()))
if (m_cache.contains(config.id))
update(config);
else
create(config);
@@ -234,8 +234,8 @@ void TvcHandler::onModifyTvcConfigRequest(const rti::core::SampleIdentity &cooki
const ModifyTvcConfigRequest &request)
{
DEBUG_LOG(m_logger) << "onModifyTvcConfigRequest: " << request;
Q_ASSERT(request.id() >= 0);
auto ret = request.id() > 0 ? modifyTvcConfig(request) : createTvcConfig(request);
Q_ASSERT(request.id >= 0);
auto ret = request.id > 0 ? modifyTvcConfig(request) : createTvcConfig(request);
if (ret.error())
WARNING_LOG(m_logger) << ret();
m_fts->modifyTvcConfigReply(cookie, ret);
@@ -272,33 +272,33 @@ bool TvcHandler::isValidChannel(int64_t channelId) const
// If there are conflicts between the then-active exercises the start of the new exercise must be denied.
bool TvcHandler::isFreeChannel(const ModifyTvcConfigRequest &request) const
{
boost::optional<int> exerciseId = toBoost(request.exerciseId());
boost::optional<int> exerciseId = toBoost(request.exerciseId);
if (request.id() <= 0)
return isFreeChannel(request.tetraChannelId(), exerciseId);
return isFreeChannel(request.tetraChannelId(), exerciseId, request.id());
if (request.id <= 0)
return isFreeChannel(request.tetraChannelId, exerciseId);
return isFreeChannel(request.tetraChannelId, exerciseId, request.id);
}
bool TvcHandler::isFreeChannel(int32_t channelId, const boost::optional<int> &exerciseId, const boost::optional<int32_t> &excludeId) const
{
auto constraint = [&channelId] (const TvcConfig &config) { return config.tetraChannelId() != channelId; };
auto constraint = [&channelId] (const TvcConfig &config) { return config.tetraChannelId != channelId; };
return checkConstraint(constraint, exerciseId, excludeId);
}
bool TvcHandler::isNameUnique(const ModifyTvcConfigRequest &request) const
{
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);
}
// Needs to be revised.
// See isFreeChannel().
bool TvcHandler::isNameUnique(const std::string &name, const boost::optional<int> &exerciseId, const boost::optional<int32_t> &excludeId) const
{
auto constraint = [&name] (const TvcConfig &config) { return config.radioCircuit() != name; };
auto constraint = [&name] (const TvcConfig &config) { return config.radioCircuit != name; };
return checkConstraint(constraint, exerciseId, excludeId);
}
@@ -321,13 +321,13 @@ Core::FunctionReplyObject TvcHandler::createTvcConfig(const ModifyTvcConfigReque
}
TvcConfig tvcConfig = toDds(dbConfigData);
m_cache.insert(tvcConfig.id(), tvcConfig);
m_cache.insert(tvcConfig.id, tvcConfig);
m_dts->publish(tvcConfig);
if (needDeviceConfig(tvcConfig))
m_deviceConfig->create(tvcConfig);
return Core::FunctionReplyObject(tvcConfig.id());
return Core::FunctionReplyObject(tvcConfig.id);
}
Core::FunctionReplyObject TvcHandler::modifyTvcConfig(const ModifyTvcConfigRequest &request)
@@ -339,17 +339,17 @@ Core::FunctionReplyObject TvcHandler::modifyTvcConfig(const ModifyTvcConfigReque
Database::AvmTvcConfig dbConfigData = toDb(request);
if (!m_db->update(dbConfigData))
return reply.setStr(tr_lts("dds", "Could not update TVC config data in database with id %1")).arg(request.id());
return reply.setStr(tr_lts("dds", "Could not update TVC config data in database with id %1")).arg(request.id);
TvcConfig tvcConfig = toDds(dbConfigData);
m_cache[tvcConfig.id()] = tvcConfig;
m_cache[tvcConfig.id] = tvcConfig;
m_dts->publish(tvcConfig);
if (needDeviceConfig(tvcConfig))
m_deviceConfig->createOrUpdate(tvcConfig);
else
m_deviceConfig->tryRemove(tvcConfig.id());
m_deviceConfig->tryRemove(tvcConfig.id);
emit tvcConfigChanged(tvcConfig);
return reply;
@@ -357,7 +357,7 @@ Core::FunctionReplyObject TvcHandler::modifyTvcConfig(const ModifyTvcConfigReque
Core::FunctionReplyObject TvcHandler::removeTvcConfig(const Core::RemoveElementRequest &request)
{
int32_t configId = request.id();
int32_t configId = request.id;
Core::FunctionReplyObject reply(configId);
auto found = m_cache.find(configId);
@@ -371,7 +371,7 @@ Core::FunctionReplyObject TvcHandler::removeTvcConfig(const Core::RemoveElementR
m_dts->removeTvcConfigByKey(configId);
if (!m_db->removeAvmTvcConfig(configId))
return reply.setStr(tr_lts("dds", "Could not remove TVC config data with id %1")).arg(request.id());
return reply.setStr(tr_lts("dds", "Could not remove TVC config data with id %1")).arg(request.id);
return reply;
}
@@ -380,7 +380,7 @@ Database::AvmDeviceConfig TvcHandler::toDeviceConfig(const TvcConfig &tvcConfig)
{
Database::AvmDeviceConfig result;
Database::AvmTvcChannel tetraChannel = channelById(tvcConfig.tetraChannelId());
Database::AvmTvcChannel tetraChannel = channelById(tvcConfig.tetraChannelId);
QJsonObject settings = QJsonDocument::fromJson(tetraChannel.settings.toUtf8()).object();
QJsonObject data = settings[QStringLiteral("data")].toObject();
@@ -388,10 +388,10 @@ Database::AvmDeviceConfig TvcHandler::toDeviceConfig(const TvcConfig &tvcConfig)
{
result.context = exerciseList(tvcConfig);
result.type = QStringLiteral("TETRA_RT_CHANNEL");
result.name = QString::fromStdString(tvcConfig.radioCircuit());
result.name = QString::fromStdString(tvcConfig.radioCircuit);
result.controller = QStringLiteral("EXCAVS01");
result.definition = QStringLiteral("mode=1;ssrc=%1;port=%2").arg(data[QStringLiteral("ssrc")].toInt()).arg(data[QStringLiteral("port")].toInt());
if (tvcConfig.recording())
if (tvcConfig.recording)
result.definition.append(QStringLiteral(";recording=ECRS@%1").arg(result.controller));
result.link = 0;
}
@@ -399,10 +399,10 @@ Database::AvmDeviceConfig TvcHandler::toDeviceConfig(const TvcConfig &tvcConfig)
{
result.context = exerciseList(tvcConfig);
result.type = QStringLiteral("SOTAS_SIP_RT_CHANNEL");
result.name = QString::fromStdString(tvcConfig.radioCircuit());
result.name = QString::fromStdString(tvcConfig.radioCircuit);
result.controller = QStringLiteral("EXCAVS01");
result.definition = QStringLiteral("mode=1;sip=%1@%2").arg(data[QStringLiteral("role")].toString()).arg(data[QStringLiteral("host")].toString());
if (tvcConfig.recording())
if (tvcConfig.recording)
result.definition.append(QStringLiteral(";recording=ECRS@%1").arg(result.controller));
result.link = 0;
}
@@ -429,7 +429,7 @@ void TvcHandler::onContextActivated(const ExerciseContext &context)
bool isLocal = tvcConfig.exerciseId.is_set();
if (isLocal)
{
if (tvcConfig.exerciseId() == context.id())
if (tvcConfig.exerciseId == context.id())
m_deviceConfig->create(tvcConfig);
}
else
@@ -452,13 +452,13 @@ void TvcHandler::onContextDeactivated(const ExerciseContext &context)
if (isLocal)
{
if (tvcConfig.exerciseId() == context.id())
m_deviceConfig->remove(tvcConfig.id());
if (tvcConfig.exerciseId == context.id())
m_deviceConfig->remove(tvcConfig.id);
}
else
{
if (!haveActiveExercise)
m_deviceConfig->remove(tvcConfig.id());
m_deviceConfig->remove(tvcConfig.id);
else
m_deviceConfig->update(tvcConfig);
}
@@ -499,20 +499,20 @@ Core::FunctionReplyObject TvcHandler::validateRequest(const ModifyTvcConfigReque
{
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 TVC 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 TVC config because id %1 is unknown")).arg(request.id);
}
if (!isValidChannel(request.tetraChannelId()))
return reply.setStr(tr_lts("dds", "Could not create/modify TVC config because the channel with id %1 is invalid")).arg(request.tetraChannelId());
if (!isValidChannel(request.tetraChannelId))
return reply.setStr(tr_lts("dds", "Could not create/modify TVC config because the channel with id %1 is invalid")).arg(request.tetraChannelId);
if (!isFreeChannel(request))
return reply.setStr(tr_lts("dds", "Could not create/modify TVC config because channel id %1 is already taken")).arg(request.tetraChannelId());
return reply.setStr(tr_lts("dds", "Could not create/modify TVC config because channel id %1 is already taken")).arg(request.tetraChannelId);
if (!isStreamNameValid(request.radioCircuit()))
if (!isStreamNameValid(request.radioCircuit))
return reply.setStr(tr_lts("dds", "Could not create/modify TVC config because the circuit name is invalid"));
if (!isNameUnique(request))
@@ -528,7 +528,7 @@ bool TvcHandler::checkConstraint(const std::function<bool (const TvcConfig &)> &
{
for (const TvcConfig &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