@@ -1162,8 +1162,6 @@ bool GCS_MAVLINK_Copter::sane_vel_or_acc_vector(const Vector3f &vec) const
1162
1162
return true ;
1163
1163
}
1164
1164
1165
- void GCS_MAVLINK_Copter::handle_message (const mavlink_message_t &msg)
1166
- {
1167
1165
#if MODE_GUIDED_ENABLED == ENABLED
1168
1166
// for mavlink SET_POSITION_TARGET messages
1169
1167
constexpr uint32_t MAVLINK_SET_POS_TYPE_MASK_POS_IGNORE =
@@ -1189,18 +1187,16 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1189
1187
POSITION_TARGET_TYPEMASK_FORCE_SET;
1190
1188
#endif
1191
1189
1192
- switch (msg.msgid ) {
1193
-
1194
1190
#if MODE_GUIDED_ENABLED == ENABLED
1195
- case MAVLINK_MSG_ID_SET_ATTITUDE_TARGET: // MAV ID: 82
1196
- {
1191
+ void GCS_MAVLINK_Copter::handle_message_set_attitude_target ( const mavlink_message_t &msg)
1192
+ {
1197
1193
// decode packet
1198
1194
mavlink_set_attitude_target_t packet;
1199
1195
mavlink_msg_set_attitude_target_decode (&msg, &packet);
1200
1196
1201
1197
// exit if vehicle is not in Guided mode or Auto-Guided mode
1202
1198
if (!copter.flightmode ->in_guided_mode ()) {
1203
- break ;
1199
+ return ;
1204
1200
}
1205
1201
1206
1202
const bool roll_rate_ignore = packet.type_mask & ATTITUDE_TARGET_TYPEMASK_BODY_ROLL_RATE_IGNORE;
@@ -1211,7 +1207,7 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1211
1207
1212
1208
// ensure thrust field is not ignored
1213
1209
if (throttle_ignore) {
1214
- break ;
1210
+ return ;
1215
1211
}
1216
1212
1217
1213
Quaternion attitude_quat;
@@ -1225,7 +1221,7 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1225
1221
// this limit is somewhat greater than sqrt(FLT_EPSL)
1226
1222
if (!attitude_quat.is_unit_length ()) {
1227
1223
// The attitude quaternion is ill-defined
1228
- break ;
1224
+ return ;
1229
1225
}
1230
1226
}
1231
1227
@@ -1263,19 +1259,17 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1263
1259
1264
1260
copter.mode_guided .set_angle (attitude_quat, ang_vel,
1265
1261
climb_rate_or_thrust, use_thrust);
1262
+ }
1266
1263
1267
- break ;
1268
- }
1269
-
1270
- case MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED: // MAV ID: 84
1271
- {
1264
+ void GCS_MAVLINK_Copter::handle_message_set_position_target_local_ned (const mavlink_message_t &msg)
1265
+ {
1272
1266
// decode packet
1273
1267
mavlink_set_position_target_local_ned_t packet;
1274
1268
mavlink_msg_set_position_target_local_ned_decode (&msg, &packet);
1275
1269
1276
1270
// exit if vehicle is not in Guided mode or Auto-Guided mode
1277
1271
if (!copter.flightmode ->in_guided_mode ()) {
1278
- break ;
1272
+ return ;
1279
1273
}
1280
1274
1281
1275
// check for supported coordinate frames
@@ -1285,7 +1279,7 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1285
1279
packet.coordinate_frame != MAV_FRAME_BODY_OFFSET_NED) {
1286
1280
// input is not valid so stop
1287
1281
copter.mode_guided .init (true );
1288
- break ;
1282
+ return ;
1289
1283
}
1290
1284
1291
1285
bool pos_ignore = packet.type_mask & MAVLINK_SET_POS_TYPE_MASK_POS_IGNORE;
@@ -1298,7 +1292,7 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1298
1292
// Force inputs are not supported
1299
1293
// Do not accept command if force_set is true and acc_ignore is false
1300
1294
if (force_set && !acc_ignore) {
1301
- break ;
1295
+ return ;
1302
1296
}
1303
1297
1304
1298
// prepare position
@@ -1371,19 +1365,17 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1371
1365
// input is not valid so stop
1372
1366
copter.mode_guided .init (true );
1373
1367
}
1368
+ }
1374
1369
1375
- break ;
1376
- }
1377
-
1378
- case MAVLINK_MSG_ID_SET_POSITION_TARGET_GLOBAL_INT: // MAV ID: 86
1379
- {
1370
+ void GCS_MAVLINK_Copter::handle_message_set_position_target_global_int (const mavlink_message_t &msg)
1371
+ {
1380
1372
// decode packet
1381
1373
mavlink_set_position_target_global_int_t packet;
1382
1374
mavlink_msg_set_position_target_global_int_decode (&msg, &packet);
1383
1375
1384
1376
// exit if vehicle is not in Guided mode or Auto-Guided mode
1385
1377
if (!copter.flightmode ->in_guided_mode ()) {
1386
- break ;
1378
+ return ;
1387
1379
}
1388
1380
1389
1381
// todo: do we need to check for supported coordinate frames
@@ -1398,7 +1390,7 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1398
1390
// Force inputs are not supported
1399
1391
// Do not accept command if force_set is true and acc_ignore is false
1400
1392
if (force_set && !acc_ignore) {
1401
- break ;
1393
+ return ;
1402
1394
}
1403
1395
1404
1396
// extract location from message
@@ -1408,14 +1400,14 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1408
1400
if (!check_latlng (packet.lat_int , packet.lon_int )) {
1409
1401
// input is not valid so stop
1410
1402
copter.mode_guided .init (true );
1411
- break ;
1403
+ return ;
1412
1404
}
1413
1405
Location::AltFrame frame;
1414
1406
if (!mavlink_coordinate_frame_to_location_alt_frame ((MAV_FRAME)packet.coordinate_frame , frame)) {
1415
1407
// unknown coordinate frame
1416
1408
// input is not valid so stop
1417
1409
copter.mode_guided .init (true );
1418
- break ;
1410
+ return ;
1419
1411
}
1420
1412
loc = {packet.lat_int , packet.lon_int , int32_t (packet.alt *100 ), frame};
1421
1413
}
@@ -1456,13 +1448,13 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1456
1448
// posvel controller does not support alt-above-terrain
1457
1449
// input is not valid so stop
1458
1450
copter.mode_guided .init (true );
1459
- break ;
1451
+ return ;
1460
1452
}
1461
1453
Vector3f pos_neu_cm;
1462
1454
if (!loc.get_vector_from_origin_NEU (pos_neu_cm)) {
1463
1455
// input is not valid so stop
1464
1456
copter.mode_guided .init (true );
1465
- break ;
1457
+ return ;
1466
1458
}
1467
1459
copter.mode_guided .set_destination_posvel (pos_neu_cm, vel_vector, !yaw_ignore, yaw_cd, !yaw_rate_ignore, yaw_rate_cds);
1468
1460
} else if (pos_ignore && !vel_ignore) {
@@ -1475,30 +1467,40 @@ void GCS_MAVLINK_Copter::handle_message(const mavlink_message_t &msg)
1475
1467
// input is not valid so stop
1476
1468
copter.mode_guided .init (true );
1477
1469
}
1470
+ }
1471
+ #endif // MODE_GUIDED_ENABLED == ENABLED
1472
+
1473
+ void GCS_MAVLINK_Copter::handle_message (const mavlink_message_t &msg)
1474
+ {
1478
1475
1476
+ switch (msg.msgid ) {
1477
+ #if MODE_GUIDED_ENABLED == ENABLED
1478
+ case MAVLINK_MSG_ID_SET_ATTITUDE_TARGET:
1479
+ handle_message_set_attitude_target (msg);
1480
+ break ;
1481
+ case MAVLINK_MSG_ID_SET_POSITION_TARGET_LOCAL_NED:
1482
+ handle_message_set_position_target_local_ned (msg);
1483
+ break ;
1484
+ case MAVLINK_MSG_ID_SET_POSITION_TARGET_GLOBAL_INT:
1485
+ handle_message_set_position_target_global_int (msg);
1479
1486
break ;
1480
- }
1481
1487
#endif
1482
-
1488
+ # if AP_TERRAIN_AVAILABLE
1483
1489
case MAVLINK_MSG_ID_TERRAIN_DATA:
1484
1490
case MAVLINK_MSG_ID_TERRAIN_CHECK:
1485
- #if AP_TERRAIN_AVAILABLE
1486
1491
copter.terrain .handle_data (chan, msg);
1487
- #endif
1488
1492
break ;
1489
-
1493
+ # endif
1490
1494
#if TOY_MODE_ENABLED == ENABLED
1491
1495
case MAVLINK_MSG_ID_NAMED_VALUE_INT:
1492
1496
copter.g2 .toy_mode .handle_message (msg);
1493
1497
break ;
1494
1498
#endif
1495
-
1496
1499
default :
1497
1500
GCS_MAVLINK::handle_message (msg);
1498
1501
break ;
1499
- } // end switch
1500
- } // end handle mavlink
1501
-
1502
+ }
1503
+ }
1502
1504
1503
1505
MAV_RESULT GCS_MAVLINK_Copter::handle_flight_termination (const mavlink_command_int_t &packet) {
1504
1506
#if ADVANCED_FAILSAFE == ENABLED
0 commit comments