Files
qt5-legatus-legacy/Lts/Proxies/TrainingAreaBase/Plugins/UAS/uav_ia.h
T
2026-08-13 18:33:10 +02:00

71 lines
1.2 KiB
C++
Executable File

/**
* Starts / stops uav ia instances (for tms-if) per uav participant
* $Id$
* $HeadURL$
* $Author$
*
* Created by Mike Wille, ESZS, 2025-05-22
*/
#pragma once
#include <QObject>
namespace NGL
{
class INGLLogger;
}
namespace UAS
{
class UAVCommander;
using UasId = int;
struct UAVInterfaceAdapterConfig
{
public:
UAVInterfaceAdapterConfig(const QString &ip, int port, UasId uasId, bool useTcp)
: m_ip(ip)
, m_port(port)
, m_uasId(uasId)
, m_useTcp(useTcp)
{}
bool operator==(const UAVInterfaceAdapterConfig &o) const
{
return (o.m_ip == m_ip
&& o.m_port == m_port
&& o.m_uasId == m_uasId
&& o.m_useTcp == m_useTcp);
}
QString m_ip;
int m_port;
UasId m_uasId;
bool m_useTcp;
};
class UAVInterfaceAdapter : public QObject
{
Q_OBJECT
public:
UAVInterfaceAdapter(UAVInterfaceAdapterConfig uavConfig, UAVCommander *commander); // copy elision
~UAVInterfaceAdapter();
UAVInterfaceAdapterConfig config() const { return m_config; }
UAVCommander &commander() { return *m_commander; }
private:
UAVInterfaceAdapterConfig m_config;
UAVCommander *m_commander;
NGL::INGLLogger &m_logger;
};
} // namespace UAS