- training_area_telegrams.cpp: Fixed QJsonObject initializer syntax (Qt6 requires {{}} not ({}))
- training_area_telegrams.cpp: Fixed fromJson() methods to access m_* members directly
- training_area_telegrams.cpp: Fixed brace mismatches in multiple toJson() methods
- training_area_telegrams.h: Changed Header struct to public members for consistency
- tx_mixin.cpp: Fixed getEquipmentNumber() template for direct member access
- lts_coordinate.cpp: Added missing #include <iomanip>
- MIGRATION_STATUS.md: Added migration progress tracking document
C++17 constraint enforced due to RTI Connext DDS 7.7.0 incompatibility with C++20+
Build status: BUILD_RTI=OFF successful (0 errors, warnings only)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
160 lines
3.0 KiB
C++
160 lines
3.0 KiB
C++
#pragma once
|
|
|
|
// STUB - RTI DDS not available
|
|
// This stub provides minimal functionality for building without RTI Connext DDS
|
|
|
|
#include <LtsSession/ltssession_export.h>
|
|
#include <QtCore/QObject>
|
|
#include <QtCore/QString>
|
|
#include <memory>
|
|
|
|
// Forward declaration - actual type from LtsWidgets
|
|
namespace LtsWidgets {
|
|
struct TopicInfo {
|
|
// Minimal stub for TopicInfo
|
|
QString topicName;
|
|
int entityId{0};
|
|
};
|
|
}
|
|
|
|
namespace LtsSession
|
|
{
|
|
|
|
// STUB: TopicLockHandler - minimal implementation without RTI DDS
|
|
class LTSSESSION_EXPORT TopicLockHandler : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
TopicLockHandler() = default;
|
|
~TopicLockHandler() = default;
|
|
|
|
bool init(void* coreFtc, int exerciseId)
|
|
{
|
|
Q_UNUSED(coreFtc);
|
|
Q_UNUSED(exerciseId);
|
|
return false; // RTI not available
|
|
}
|
|
|
|
bool isLocked() const
|
|
{
|
|
return m_locked;
|
|
}
|
|
|
|
LtsWidgets::TopicInfo getTopicInfo() const
|
|
{
|
|
return m_topicInfo;
|
|
}
|
|
|
|
public slots:
|
|
void slotTryLock(const LtsWidgets::TopicInfo& topicInfo)
|
|
{
|
|
Q_UNUSED(topicInfo);
|
|
// STUB: no-op
|
|
}
|
|
|
|
bool slotUnlock()
|
|
{
|
|
return false; // STUB: cannot unlock without RTI
|
|
}
|
|
|
|
void slotFinalize()
|
|
{
|
|
// STUB: no-op
|
|
}
|
|
|
|
signals:
|
|
void signalLockDialog(const QString& lockedBy);
|
|
void signalUnlockDialog();
|
|
|
|
private:
|
|
bool lock()
|
|
{
|
|
return false; // STUB
|
|
}
|
|
|
|
bool unlock()
|
|
{
|
|
return false; // STUB
|
|
}
|
|
|
|
std::string objStateAsString() const
|
|
{
|
|
return "STUB";
|
|
}
|
|
|
|
void* m_coreFtc{nullptr}; // STUB: was std::shared_ptr<Core::Interface::Ftc>
|
|
LtsWidgets::TopicInfo m_topicInfo;
|
|
int m_lockEntityId{0};
|
|
int m_exerciseId{0};
|
|
bool m_locked{false};
|
|
bool m_askedForLock{false};
|
|
bool m_deleteAfterAnswer{false};
|
|
};
|
|
|
|
// STUB: TopicLockHanderData - minimal implementation without RTI DDS
|
|
class LTSSESSION_EXPORT TopicLockHanderData : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
TopicLockHanderData() = default;
|
|
~TopicLockHanderData() = default;
|
|
|
|
void init(void* coreFtc, int exerciseId)
|
|
{
|
|
Q_UNUSED(coreFtc);
|
|
Q_UNUSED(exerciseId);
|
|
}
|
|
|
|
void unlock()
|
|
{
|
|
// STUB: no-op
|
|
}
|
|
|
|
void slotTryLock(const LtsWidgets::TopicInfo& topicInfo)
|
|
{
|
|
Q_UNUSED(topicInfo);
|
|
// STUB: no-op
|
|
}
|
|
|
|
bool isLocked() const
|
|
{
|
|
return false; // STUB
|
|
}
|
|
|
|
LtsWidgets::TopicInfo getTopicInfo() const
|
|
{
|
|
return LtsWidgets::TopicInfo{}; // STUB
|
|
}
|
|
|
|
const QString& getLockedBy() const
|
|
{
|
|
return m_lockedBy;
|
|
}
|
|
|
|
Q_SIGNALS:
|
|
void lockDataChanged();
|
|
|
|
public:
|
|
QString m_debugName;
|
|
|
|
private Q_SLOTS:
|
|
void slotLock(const QString& lockedBy)
|
|
{
|
|
Q_UNUSED(lockedBy);
|
|
// STUB: no-op
|
|
}
|
|
|
|
void slotUnlock()
|
|
{
|
|
// STUB: no-op
|
|
}
|
|
|
|
private:
|
|
// STUB: No actual TopicLockHandler without RTI
|
|
QObject* m_topicLockHandler{nullptr}; // Was QPointer<TopicLockHandler>
|
|
QString m_lockedBy;
|
|
};
|
|
|
|
} // namespace LtsSession
|