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
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user