Files
autopilot/ai_controller/aienginegimbalserver.h
T
2025-04-01 15:38:31 +00:00

44 lines
1.2 KiB
C++

#pragma once
#include <QObject>
#include <QMap>
#include <QUdpSocket>
#include "aienginedefinitions.h"
#include "aienginegimbalserveractions.h"
#include "aienginegimbalserverudpcommand.h"
#include "aienginegimbalserverudpresponse.h"
#include "aienginegimbalserverudp.h"
class AiEngineGimbalServer : public QObject
{
Q_OBJECT
public:
explicit AiEngineGimbalServer(QObject *parent = nullptr);
bool isAvailable(void);
public slots:
void dronePositionSlot(AiEngineDronePosition);
void zoomToAiTargetSlot(AiEngineCameraTarget);
void cameraPositionSlot(AiEngineCameraPosition);
signals:
void aiTargetZoomed(AiEngineTargetPosition);
void newCameraPosition(AiEngineCameraPosition);
private:
AiEngineGimbalServerUDP mUdpSocket;
AiEngineGimbalStatus mGimbalStatus;
AiEngineDronePosition mDronePosition;
AiEngineGimbalServerUDPCommand mUdpCommand;
AiEngineGimbalServerUDPResponse mUdpResponse;
AiEngineGimbalServerActions mActions;
bool mIsAvailable;
QUdpSocket *mReceiveUdpSocket; // UDP socket for receiving commands
private slots:
// void processPendingDatagrams(void); // Handles incoming UDP messages
void processUdpCommands(void);
};