#ifndef SLUGSPIDCONTROL_H #define SLUGSPIDCONTROL_H #include #include #include "UASInterface.h" #include "QGCMAVLink.h" #include "SlugsMAV.h" #include "mavlink.h" #include #include namespace Ui { class SlugsPIDControl; } class SlugsPIDControl : public QWidget { Q_OBJECT public: explicit SlugsPIDControl(QWidget *parent = 0); ~SlugsPIDControl(); public slots: /** * @brief Called when the a new UAS is set to active. * * Called when the a new UAS is set to active. * * @param uas The new active UAS */ void activeUasSet(UASInterface* uas); /** */ void setRedColorStyle(); /** * @brief Set color StyleSheet GREEN * * @param */ void setGreenColorStyle(); /** * @brief Connect Set pushButtons to change the color GroupBox * * @param */ void connect_set_pushButtons(); /** * @brief Connect Set pushButtons to change the color GroupBox * * @param */ void connect_get_pushButtons(); /** * @brief Connect Edition Lines for PID Values * * @param */ void connect_editLinesPDIvalues(); /** * @brief send a PDI request message to UAS * * @param */ void sendMessagePIDStatus(int PIDtype); // Fuctions for Air Speed GroupBox /** * @brief Change color style to red when PID values of Air Speed are edited * * * @param */ void changeColor_RED_AirSpeed_groupBox(QString text); /** * @brief Change color style to green when PID values of Air Speed are send to UAS * * @param */ void changeColor_GREEN_AirSpeed_groupBox(); /** * @brief Connects the SIGNALS from the editline to SLOT changeColor_RED_AirSpeed_groupBox() * * @param */ void connect_AirSpeed_LineEdit(); /** * @brief get message PID Air Speed(loop index = 0) from UAS * * @param */ void get_AirSpeed_PID(); // Functions for Pitch Followei GroupBox /** * @brief Change color style to red when PID values of Pitch Followei are edited * * * @param */ void changeColor_RED_PitchFollowei_groupBox(QString text); /** * @brief Change color style to green when PID values of Pitch Followei are send to UAS * * @param */ void changeColor_GREEN_PitchFollowei_groupBox(); /** * @brief Connects the SIGNALS from the editline to SLOT PitchFlowei_groupBox * * @param */ void connect_PitchFollowei_LineEdit(); /** * @brief get message PID Pitch Followei(loop index = 2) from UAS * * @param */ void get_PitchFollowei_PID(); // Functions for Roll Control GroupBox /** * @brief Change color style to red when PID values of Roll Control are edited * * * @param */ void changeColor_RED_RollControl_groupBox(QString text); /** * @brief Change color style to green when PID values of Roll Control are send to UAS * * @param */ void changeColor_GREEN_RollControl_groupBox(); /** * @brief Connects the SIGNALS from the editline to SLOT RollControl_groupBox * * @param */ void connect_RollControl_LineEdit(); /** * @brief get message PID Roll Control(loop index = 4) from UAS * * @param */ void get_RollControl_PID(); // Functions for Heigth Error GroupBox /** * @brief Change color style to red when PID values of Heigth Error are edited * * * @param */ void changeColor_RED_HeigthError_groupBox(QString text); /** * @brief Change color style to green when PID values of Heigth Error are send to UAS * * @param */ void changeColor_GREEN_HeigthError_groupBox(); /** * @brief Connects the SIGNALS from the editline to SLOT HeigthError_groupBox * * @param */ void connect_HeigthError_LineEdit(); /** * @brief get message PID Heigth Error(loop index = 1) from UAS * * @param */ void get_HeigthError_PID(); // Functions for Yaw Damper GroupBox /** * @brief Change color style to red when PID values of Yaw Damper are edited * * * @param */ void changeColor_RED_YawDamper_groupBox(QString text); /** * @brief Change color style to green when PID values of Yaw Damper are send to UAS * * @param */ void changeColor_GREEN_YawDamper_groupBox(); /** * @brief Connects the SIGNALS from the editline to SLOT YawDamper_groupBox * * @param */ void connect_YawDamper_LineEdit(); /** * @brief get message PID Yaw Damper(loop index = 3) from UAS * * @param */ void get_YawDamper_PID(); // Functions for Pitch to dT GroupBox /** * @brief Change color style to red when PID values of Pitch to dT are edited * * * @param */ void changeColor_RED_Pitch2dT_groupBox(QString text); /** * @brief Change color style to green when PID values of Pitch to dT are send to UAS * * @param */ void changeColor_GREEN_Pitch2dT_groupBox(); /** * @brief Connects the SIGNALS from the editline to SLOT Pitch2dT_groupBox * * @param */ void connect_Pitch2dT_LineEdit(); /** * @brief get message PID Pitch2dT(loop index = 8) from UAS * * @param */ void get_Pitch2dT_PID(); /** * @brief get and updates the values on widget */ void slugsGetGeneral(); /** * @brief Sent all values to UAS */ void slugsSetGeneral(); void slugsTimerStartSet(); void slugsTimerStartGet(); void slugsTimerStop(); //Create, send and get Messages PID // void createMessagePID(); #ifdef MAVLINK_ENABLED_SLUGS void recibeMensaje(int systemId, const mavlink_action_ack_t& action); void receivePidValues(int systemId, const mavlink_pid_t& pidValues); #endif // MAVLINK_ENABLED_SLUG private: Ui::SlugsPIDControl *ui; UASInterface* activeUAS; int systemId; bool change_dT; //Color Styles QString REDcolorStyle; QString GREENcolorStyle; QString ORIGINcolorStyle; //SlugsMav Message #ifdef MAVLINK_ENABLED_SLUGS mavlink_pid_t pidMessage; mavlink_slugs_action_t actionSlugs; #endif QTimer* refreshTimerSet; ///< The main timer, controls the update view QTimer* refreshTimerGet; ///< The main timer, controls the update view int counterRefreshSet; int counterRefreshGet; QMutex valuesMutex; }; #endif // SLUGSPIDCONTROL_H