diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index 1189c7aef19abcfc6abf3f3b548b93f7a4a93d55..afd0a1771b04f6b2e92094fa380ec78625e97741 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -120,12 +120,15 @@ win32 { # Special settings for debug #CONFIG += CONSOLE - LIBS += -L$$BASEDIR\lib\sdl\win32 \ - -lmingw32 -lSDLmain -lSDL -mwindows - - INCLUDEPATH += $$BASEDIR/lib/sdl/include #\ + + INCLUDEPATH += $$BASEDIR\lib\sdl\include #\ #"C:\Program Files\Microsoft SDKs\Windows\v7.0\Include" + LIBS += -L$$BASEDIR\lib\sdl\win32 \ + -lmingw32 -lSDLmain -lSDL -mwindows + + + debug { DESTDIR = $$BASEDIR/bin } diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index f1d37c7fa56e7346996dbb975ba8cefcdc2092fa..4528dcc923e249ba3ac42adf5b1108b503d90509 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -42,9 +42,14 @@ DEPENDPATH += . \ plugins INCLUDEPATH += . \ lib/QMapControl \ - ../mavlink/include \ - MAVLink/include \ - mavlink/include + ../mavlink/contrib/slugs/include \ + MAVLink/contrib/slugs/include \ + mavlink/contrib/slugs/include + + + # ../mavlink/include \ + #MAVLink/include \ + #mavlink/include # Input FORMS += src/ui/MainWindow.ui \ diff --git a/src/main.cc b/src/main.cc index 0c65955b3b9b500a06830a83c452ba9ac32efa7b..9a9d5f23cac45ac62ab73e299aae954bc779e6b1 100644 --- a/src/main.cc +++ b/src/main.cc @@ -33,10 +33,11 @@ This file is part of the PIXHAWK project #include "MainWindow.h" #include "configuration.h" + /* SDL does ugly things to main() */ -#ifdef main -# undef main -#endif +//#ifdef main +//# undef main +//#endif /** * @brief Starts the application diff --git a/src/uas/SlugsMAV.cc b/src/uas/SlugsMAV.cc index d5bf9f3469bfefe30b267ac9e44685994a74ce9d..6da07e3483ab91ced2c5ac0991df879df97006d3 100644 --- a/src/uas/SlugsMAV.cc +++ b/src/uas/SlugsMAV.cc @@ -21,12 +21,102 @@ void SlugsMAV::receiveMessage(LinkInterface* link, mavlink_message_t message) // Let UAS handle the default message set UAS::receiveMessage(link, message); - // Handle your special messages + + // Handle your special messages mavlink_message_t* msg = &message; switch (message.msgid) { case MAVLINK_MSG_ID_HEARTBEAT: { qDebug() << "SLUGS RECEIVED HEARTBEAT"; + break; + } + case MAVLINK_MSG_ID_CPU_LOAD: + { + mavlink_cpu_load_t cpu_load; + quint64 time = getUnixTime(0); + mavlink_msg_cpu_load_decode(&message,&cpu_load); + + emit valueChanged(uasId, "CPU Load", cpu_load.target, time); + emit valueChanged(uasId, "SensorDSC Load", cpu_load.sensLoad, time); + emit valueChanged(uasId, "ControlDSC Load", cpu_load.ctrlLoad, time); + emit valueChanged(uasId, "Battery Volt", cpu_load.batVolt, time); + + break; + } + case MAVLINK_MSG_ID_AIR_DATA: + { + mavlink_air_data_t air_data; + quint64 time = getUnixTime(0); + mavlink_msg_air_data_decode(&message,&air_data); + emit valueChanged(uasId, "Air Data",air_data.target,time); + emit valueChanged(uasId, "Presion Dinamica", air_data.dynamicPressure,time); + emit valueChanged(uasId, "Presion Estatica",air_data.staticPressure, time); + emit valueChanged(uasId, "Temperatura",air_data.temperature,time); + + break; + } + case MAVLINK_MSG_ID_SENSOR_BIAS: + { + mavlink_sensor_bias_t sensor_bias; + quint64 time = getUnixTime(0); + mavlink_msg_sensor_bias_decode(&message,&sensor_bias); + emit valueChanged(uasId,"Sensor Bias",sensor_bias.target, time); + emit valueChanged(uasId,"Acelerometro X",sensor_bias.axBias, time); + emit valueChanged(uasId,"Acelerometro y",sensor_bias.ayBias,time); + emit valueChanged(uasId,"Acelerometro Z",sensor_bias.azBias,time); + emit valueChanged(uasId,"Gyro X",sensor_bias.gxBias,time); + emit valueChanged(uasId,"Gyro Y",sensor_bias.gyBias,time); + emit valueChanged(uasId,"Gyro Z",sensor_bias.gzBias,time); + + break; + } + case MAVLINK_MSG_ID_DIAGNOSTIC: + { + mavlink_diagnostic_t diagnostic; + quint64 time = getUnixTime(0); + mavlink_msg_diagnostic_decode(&message,&diagnostic); + emit valueChanged(uasId,"Diagnostico",diagnostic.target,time); + emit valueChanged(uasId,"Diagnostico F1",diagnostic.diagFl1,time); + emit valueChanged(uasId,"Diagnostico F2",diagnostic.diagFl2,time); + emit valueChanged(uasId,"Diagnostico F3",diagnostic.diagFl3,time); + emit valueChanged(uasId,"Diagnostico S1",diagnostic.diagSh1,time); + emit valueChanged(uasId,"Diagnostico S2",diagnostic.diagSh2,time); + emit valueChanged(uasId,"Diagnostico S3",diagnostic.diagSh3,time); + + break; + } + case MAVLINK_MSG_ID_PILOT_CONSOLE: + { + mavlink_pilot_console_t pilot; + quint64 time = getUnixTime(0); + mavlink_msg_pilot_console_decode(&message,&pilot); + emit valueChanged(uasId,"Mensajes PWM",pilot.target,time); + emit valueChanged(uasId,"Aceleracion Consola",pilot.dt,time); + emit valueChanged(uasId,"Aleron Izq Consola",pilot.dla,time); + emit valueChanged(uasId,"Aleron Der Consola",pilot.dra,time); + emit valueChanged(uasId,"Timon Consola",pilot.dr,time); + emit valueChanged(uasId,"Elevador Consola",pilot.de,time); + + break; + } + case MAVLINK_MSG_ID_PWM_COMMANDS: + { + mavlink_pwm_commands_t pwm; + quint64 time = getUnixTime(0); + mavlink_msg_pwm_commands_decode(&message,&pwm); + emit valueChanged(uasId,"Superficies de Control",pwm.target,time); + emit valueChanged(uasId,"Comando Aceleracion PA",pwm.dt_c,time); + emit valueChanged(uasId,"Comando Aleron Izq PA",pwm.dla_c,time); + emit valueChanged(uasId,"Comando Aleron Der PA",pwm.dra_c,time); + emit valueChanged(uasId,"Comando Timon PA",pwm.dr_c,time); + emit valueChanged(uasId,"Comando elevador Izq PA",pwm.dle_c,time); + emit valueChanged(uasId,"Comando Elevador Der PA",pwm.dre_c,time); + emit valueChanged(uasId,"Comando Flap Izq PA",pwm.dlf_c,time); + emit valueChanged(uasId,"Comando Flap Der PA",pwm.drf_c,time); + emit valueChanged(uasId,"Comando Aux1 PA",pwm.aux1,time); + emit valueChanged(uasId,"Comando Aux2 PA",pwm.aux2,time); + + break; } default: diff --git a/src/uas/SlugsMAV.h b/src/uas/SlugsMAV.h index d983f86bc70bcfcabe76119cd10b15dfcda2b3e2..84f04ad4fa1e252fc4a9bf4a89f1a05bb25ca573 100644 --- a/src/uas/SlugsMAV.h +++ b/src/uas/SlugsMAV.h @@ -6,6 +6,7 @@ class SlugsMAV : public UAS { Q_OBJECT + Q_INTERFACES(UASInterface) public: SlugsMAV(MAVLinkProtocol* mavlink, int id = 0); diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 2dee93140b8f79b5eae01c7d86bda73d7dee9b24..67d19ec71bff57158ac7887f9d60116dec5cb917 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -666,6 +666,7 @@ void UAS::writeParametersToStorage() mavlink_message_t msg; // TODO Replace MG System ID with static function call and allow to change ID in GUI mavlink_msg_action_pack(MG::SYSTEM::ID, MG::SYSTEM::COMPID, &msg, this->getUASID(),MAV_COMP_ID_IMU, (uint8_t)MAV_ACTION_STORAGE_WRITE); + //mavlink_msg_action_pack(MG::SYSTEM::ID, MG::SYSTEM::COMPID, &msg, this->getUASID(),(uint8_t)MAV_ACTION_STORAGE_WRITE); sendMessage(msg); }