Migrates residual Lts sources to generated rtiddsgen API
Adds NmeaManagement tests, fixes codegen includes and Qt6 SerialPort CMake target.
This commit is contained in:
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
|
||||
|
||||
Reference in new issue
Block a user