SlugsMAV.cc 13.2 KB
Newer Older
1 2
#include "SlugsMAV.h"

3 4
#include <QDebug>

5 6 7 8 9 10
SlugsMAV::SlugsMAV(MAVLinkProtocol* mavlink, int id) :
        UAS(mavlink, id)//,
        // Place other initializers here
{
}

11 12 13 14 15 16 17 18
/**
 * This function is called by MAVLink once a complete, uncorrupted (CRC check valid)
 * mavlink packet is received.
 *
 * @param link Hardware link the message came from (e.g. /dev/ttyUSB0 or UDP port).
 *             messages can be sent back to the system via this link
 * @param message MAVLink message, as received from the MAVLink protocol stack
 */
19 20
void SlugsMAV::receiveMessage(LinkInterface* link, mavlink_message_t message)
{
21 22 23
    // Let UAS handle the default message set
    UAS::receiveMessage(link, message);

unknown's avatar
unknown committed
24
    // Handle your special messages mavlink_message_t* msg = &message;
25 26 27 28
    switch (message.msgid)
    {
    case MAVLINK_MSG_ID_HEARTBEAT:
        {
29
            qDebug() << "SLUGS RECEIVED HEARTBEAT";
unknown's avatar
unknown committed
30 31
            break;
        }
32

tecnosapiens's avatar
tecnosapiens committed
33
#ifdef MAVLINK_ENABLED_SLUGS
34

35
    case MAVLINK_MSG_ID_CPU_LOAD://170
unknown's avatar
unknown committed
36 37 38 39 40
        {
            mavlink_cpu_load_t cpu_load;
            quint64 time = getUnixTime(0);
            mavlink_msg_cpu_load_decode(&message,&cpu_load);

41 42 43
                emit valueChanged(uasId, tr("SensorDSC Load"), cpu_load.sensLoad, time);
                emit valueChanged(uasId, tr("ControlDSC Load"), cpu_load.ctrlLoad, time);
                emit valueChanged(uasId, tr("Battery Volt"), cpu_load.batVolt, time);
unknown's avatar
unknown committed
44

45 46 47 48 49
                emit slugsCPULoad(uasId,
                                  cpu_load.sensLoad,
                                  cpu_load.ctrlLoad,
                                  cpu_load.batVolt,
                                  0);
50
//qDebug()<<"--------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_CPU_LOAD 170";
unknown's avatar
unknown committed
51 52
            break;
        }
53
    case MAVLINK_MSG_ID_AIR_DATA://171
unknown's avatar
unknown committed
54 55 56 57
        {
            mavlink_air_data_t air_data;
            quint64 time = getUnixTime(0);
            mavlink_msg_air_data_decode(&message,&air_data);
58 59 60
                emit valueChanged(uasId, tr("Dynamic Pressure"), air_data.dynamicPressure,time);
                emit valueChanged(uasId, tr("Static Pressure"),air_data.staticPressure, time);
                emit valueChanged(uasId, tr("Temp"),air_data.temperature,time);
unknown's avatar
unknown committed
61

62 63 64 65 66
                emit slugsAirData(uasId,
                                  air_data.dynamicPressure,
                                  air_data.staticPressure,
                                  air_data.temperature,
                                  time);
67
//qDebug()<<"--------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_AIR_DATA 171";
unknown's avatar
unknown committed
68 69
            break;
        }
70
    case MAVLINK_MSG_ID_SENSOR_BIAS://172
unknown's avatar
unknown committed
71 72 73 74
        {
            mavlink_sensor_bias_t sensor_bias;
            quint64 time = getUnixTime(0);
            mavlink_msg_sensor_bias_decode(&message,&sensor_bias);
75 76 77 78 79 80
                emit valueChanged(uasId,tr("Ax Bias"),sensor_bias.axBias, time);
                emit valueChanged(uasId,tr("Ay Bias"),sensor_bias.ayBias,time);
                emit valueChanged(uasId,tr("Az Bias"),sensor_bias.azBias,time);
                emit valueChanged(uasId,tr("Gx Bias"),sensor_bias.gxBias,time);
                emit valueChanged(uasId,tr("Gy Bias"),sensor_bias.gyBias,time);
                emit valueChanged(uasId,tr("Gz Bias"),sensor_bias.gzBias,time);
unknown's avatar
unknown committed
81

82
                emit slugsSensorBias(uasId,
83 84 85 86 87 88
                                     sensor_bias.axBias,
                                     sensor_bias.ayBias,
                                     sensor_bias.azBias,
                                     sensor_bias.gxBias,
                                     sensor_bias.gyBias,
                                     sensor_bias.gzBias,
tecnosapiens's avatar
tecnosapiens committed
89
                                     0);
90
          //     qDebug()<<"------------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_SENSOR_BIAS 172";
91 92


unknown's avatar
unknown committed
93 94
            break;
        }
95
    case MAVLINK_MSG_ID_DIAGNOSTIC://173
unknown's avatar
unknown committed
96 97 98 99
        {
            mavlink_diagnostic_t diagnostic;
            quint64 time = getUnixTime(0);
            mavlink_msg_diagnostic_decode(&message,&diagnostic);
100 101 102 103 104 105
                emit valueChanged(uasId,tr("Diag F1"),diagnostic.diagFl1,time);
                emit valueChanged(uasId,tr("Diag F2"),diagnostic.diagFl2,time);
                emit valueChanged(uasId,tr("Diag F3"),diagnostic.diagFl3,time);
                emit valueChanged(uasId,tr("Diag S1"),diagnostic.diagSh1,time);
                emit valueChanged(uasId,tr("Diag S2"),diagnostic.diagSh2,time);
                emit valueChanged(uasId,tr("Diag S3"),diagnostic.diagSh3,time);
unknown's avatar
unknown committed
106

107 108 109 110 111 112 113 114
                emit slugsDiagnostic(uasId,
                                     diagnostic.diagFl1,
                                     diagnostic.diagFl2,
                                     diagnostic.diagFl3,
                                     diagnostic.diagSh1,
                                     diagnostic.diagSh2,
                                     diagnostic.diagSh3,
                                     0);
115
//qDebug()<<"------->>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_DIAGNOSTIC 173";
unknown's avatar
unknown committed
116 117
            break;
        }
118
    case MAVLINK_MSG_ID_PILOT_CONSOLE://174
unknown's avatar
unknown committed
119 120 121 122
        {
            mavlink_pilot_console_t pilot;
            quint64 time = getUnixTime(0);
            mavlink_msg_pilot_console_decode(&message,&pilot);
123 124 125 126 127
                emit valueChanged(uasId,"dt",pilot.dt,time);
                emit valueChanged(uasId,"dla",pilot.dla,time);
                emit valueChanged(uasId,"dra",pilot.dra,time);
                emit valueChanged(uasId,"dr",pilot.dr,time);
                emit valueChanged(uasId,"de",pilot.de,time);
unknown's avatar
unknown committed
128

129 130 131 132 133 134 135
                emit slugsPilotConsolePWM(uasId,
                                          pilot.dt,
                                          pilot.dla,
                                          pilot.dra,
                                          pilot.dr,
                                          pilot.de,
                                          0);
136
             //   qDebug()<<"---------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_PILOT_CONSOLE 174";
137 138


unknown's avatar
unknown committed
139 140
            break;
        }
141
    case MAVLINK_MSG_ID_PWM_COMMANDS://175
unknown's avatar
unknown committed
142 143 144 145
        {
            mavlink_pwm_commands_t pwm;
            quint64 time = getUnixTime(0);
            mavlink_msg_pwm_commands_decode(&message,&pwm);
146 147 148 149 150 151 152 153 154 155
                emit valueChanged(uasId,"dt_c",pwm.dt_c,time);
                emit valueChanged(uasId,"dla_c",pwm.dla_c,time);
                emit valueChanged(uasId,"dra_c",pwm.dra_c,time);
                emit valueChanged(uasId,"dr_c",pwm.dr_c,time);
                emit valueChanged(uasId,"dle_c",pwm.dle_c,time);
                emit valueChanged(uasId,"dre_c",pwm.dre_c,time);
                emit valueChanged(uasId,"dlf_c",pwm.dlf_c,time);
                emit valueChanged(uasId,"drf_c",pwm.drf_c,time);
                emit valueChanged(uasId,"da1_c",pwm.aux1,time);
                emit valueChanged(uasId,"da2_c",pwm.aux2,time);
unknown's avatar
unknown committed
156

157 158 159 160 161 162 163 164 165 166 167 168
                emit slugsPWM(uasId,
                              pwm.dt_c,
                              pwm.dla_c,
                              pwm.dra_c,
                              pwm.dr_c,
                              pwm.dle_c,
                              pwm.dre_c,
                              pwm.dlf_c,
                              pwm.drf_c,
                              pwm.aux1,
                              pwm.aux2,
                              0);
169
//qDebug()<<"----------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_PWM_COMMANDS 175";
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

            break;
        }
    case MAVLINK_MSG_ID_SLUGS_NAVIGATION://176
        {
            mavlink_slugs_navigation_t nav;
            quint64 time = getUnixTime(0);
            mavlink_msg_slugs_navigation_decode(&message,&nav);
                emit valueChanged(uasId,"u_m",nav.u_m,time);
                emit valueChanged(uasId,"phi_c",nav.phi_c,time);
                emit valueChanged(uasId,"theta_c",nav.theta_c,time);
                emit valueChanged(uasId,"psiDot_c",nav.psiDot_c,time);
                emit valueChanged(uasId,"ay_body",nav.ay_body,time);
                emit valueChanged(uasId,"totalDist",nav.totalDist,time);
                emit valueChanged(uasId,"dist2Go",nav.dist2Go,time);
                emit valueChanged(uasId,"fromWP",nav.fromWP,time);
                emit valueChanged(uasId,"toWP",nav.toWP,time);

                emit slugsNavegation(uasId,
                                     nav.u_m,
                                     nav.phi_c,
                                     nav.theta_c,
                                     nav.psiDot_c,
                                     nav.ay_body,
                                     nav.totalDist,
                                     nav.dist2Go,
                                     nav.fromWP,
                                     nav.toWP,
                                     time);

200
           // qDebug()<<"-------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_SLUGS_NAVIGATION 176";
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224

            break;
        }
    case MAVLINK_MSG_ID_DATA_LOG://177
        {
            mavlink_data_log_t dataLog;
            quint64 time = getUnixTime(0);
            mavlink_msg_data_log_decode(&message,&dataLog);
                emit valueChanged(uasId,"fl_1",dataLog.fl_1,time);
                emit valueChanged(uasId,"fl_2",dataLog.fl_2,time);
                emit valueChanged(uasId,"fl_3",dataLog.fl_3,time);
                emit valueChanged(uasId,"fl_4",dataLog.fl_4,time);
                emit valueChanged(uasId,"fl_5",dataLog.fl_5,time);
                emit valueChanged(uasId,"fl_6",dataLog.fl_6,time);

                emit slugsDataLog(uasId,
                                  dataLog.fl_1,
                                  dataLog.fl_2,
                                  dataLog.fl_3,
                                  dataLog.fl_4,
                                  dataLog.fl_5,
                                  dataLog.fl_6,
                                  time);

225
             //   qDebug()<<"-------->>>>>>>>>>>>>>> EMITIENDO LOG DATA 177";
226

227

unknown's avatar
unknown committed
228

229 230
            break;
        }
tecnosapiens's avatar
tecnosapiens committed
231

232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261
    case MAVLINK_MSG_ID_FILTERED_DATA://178
        {

            mavlink_filtered_data_t fil;
            quint64 time = getUnixTime(0);
            mavlink_msg_filtered_data_decode(&message,&fil);
                emit valueChanged(uasId,"aX",fil.aX,time);
                emit valueChanged(uasId,"aY",fil.aY,time);
                emit valueChanged(uasId,"aZ",fil.aZ,time);
                emit valueChanged(uasId,"gX",fil.gX,time);
                emit valueChanged(uasId,"gY",fil.gY,time);
                emit valueChanged(uasId,"gZ",fil.gZ,time);
                emit valueChanged(uasId,"mX",fil.mX,time);
                emit valueChanged(uasId,"mY",fil.mY,time);
                emit valueChanged(uasId,"mZ",fil.mZ,time);

                emit slugsFilteredData(uasId,
                                       fil.aX,
                                       fil.aY,
                                       fil.aZ,
                                       fil.gX,
                                       fil.gY,
                                       fil.gZ,
                                       fil.mX,
                                       fil.mY,
                                       fil.mZ,
                                       time);



262
              //  qDebug()<<"-------->>>>>>>>>>>>>>> EMITIENDO filtering data 178";
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293



            break;
        }
    case MAVLINK_MSG_ID_GPS_DATE_TIME://179
        {
            mavlink_gps_date_time_t gps;
            quint64 time = getUnixTime(0);
            mavlink_msg_gps_date_time_decode(&message,&gps);
                emit valueChanged(uasId,"year",gps.year,time);
                emit valueChanged(uasId,"month",gps.month,time);
                emit valueChanged(uasId,"day",gps.day,time);
                emit valueChanged(uasId,"hour",gps.hour,time);
                emit valueChanged(uasId,"min",gps.min,time);
                emit valueChanged(uasId,"sec",gps.sec,time);
                emit valueChanged(uasId,"visSat",gps.visSat,time);


                emit slugsGPSDateTime(uasId,
                                       gps.year,
                                       gps.month,
                                       gps.day,
                                       gps.hour,
                                       gps.min,
                                       gps.sec,
                                       gps.visSat,
                                       time);



294
              //  qDebug()<<"-------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_GPS_DATE_TIME 179";
295 296 297 298 299



            break;
        }
300 301
//    case MAVLINK_MSG_ID_MID_LVL_CMDS://180
//        {
302 303


304
//             //   qDebug()<<"------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_MID_LVL_CMDS 180";
305 306 307



308 309 310 311
//            break;
//        }
//    case MAVLINK_MSG_ID_CTRL_SRFC_PT://181
//        {
312 313


314
//               // qDebug()<<"--------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_CTRL_SRFC_PT 181";
315 316 317



318 319 320 321
//            break;
//        }
//    case MAVLINK_MSG_ID_PID://182
//        {
322 323


324
//               // qDebug()<<"-------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_PID 182";
325 326 327



328 329 330 331
//            break;
//        }
//    case MAVLINK_MSG_ID_SLUGS_ACTION://183
//        {
332 333


334
//               // qDebug()<<"-------->>>>>>>>>>>>>>> EMITIENDO MAVLINK_MSG_ID_SLUGS_ACTION 183";
335 336 337



338 339
//            break;
//        }
340 341
#endif

342
    default:
343
        qDebug() << "\nSLUGS RECEIVED MESSAGE WITH ID" << message.msgid;
344 345 346
        break;
    }
}