#ifndef ISIMULATOR_H #define ISIMULATOR_H #include #include #include #include #include "uavtalk/telemetrymanager.h" #include "uavobjectmanager.h" #include "actuatordesired.h" #include "altitudeactual.h" #include "attitudeactual.h" #include "velocityactual.h" #include "positionactual.h" #include "gcstelemetrystats.h" class Simulator : public QObject { Q_OBJECT public: // static ISimulator* Instance(); // protected: Simulator(); ~ISimulator(); bool isAutopilotConnected(); bool isFGConnected(); signals: void myStart(); void autopilotConnected(); void autopilotDisconnected(); void fgConnected(); void fgDisconnected(); private slots: void onStart(); void transmitUpdate(); void receiveUpdate(); void onAutopilotConnect(); void onAutopilotDisconnect(); void onFGConnectionTimeout(); void telStatsUpdated(UAVObject *obj); private: // static ISimulator* _instance; QUdpSocket *inSocket; QUdpSocket *outSocket; ActuatorDesired *actDesired; AltitudeActual *altActual; VelocityActual *velActual; AttitudeActual *attActual; PositionActual *posActual; GCSTelemetryStats *telStats; QHostAddress fgHost; int inPort; int outPort; int updatePeriod; QTimer *txTimer; QTimer *fgTimer; bool autopilotConnectionStatus; bool fgConnectionStatus; int fgTimeout; void processUpdate(QString & data); void setupOutputObject(UAVObject *obj, int updatePeriod); void setupInputObject(UAVObject *obj, int updatePeriod); void setupObjects(); }; #endif // ISIMULATOR_H