@@ -1325,10 +1325,15 @@ bool AP_DDS_Client::init_transport()
13251325 bool initTransportStatus = ddsSerialInit ();
13261326 is_using_serial = initTransportStatus;
13271327
1328+ if (is_using_serial) {
1329+ GCS_SEND_TEXT (MAV_SEVERITY_INFO, " %s Using Serial" , msg_prefix);
1330+ }
1331+
13281332#if AP_DDS_UDP_ENABLED
13291333 // fallback to UDP if available
13301334 if (!initTransportStatus) {
13311335 initTransportStatus = ddsUdpInit ();
1336+ GCS_SEND_TEXT (MAV_SEVERITY_INFO, " %s Using UDP" , msg_prefix);
13321337 }
13331338#endif
13341339
@@ -1431,7 +1436,15 @@ bool AP_DDS_Client::create()
14311436 requests[1 ] = pub_req_id;
14321437 requests[2 ] = dwriter_req_id;
14331438
1434- if (!uxr_run_session_until_all_status (&session, requestTimeoutMs, requests, status, nRequests)) {
1439+ bool success = false ;
1440+ for (uint8_t retry = 0 ; retry < 3 ; retry++) {
1441+ success = uxr_run_session_until_all_status (&session, requestTimeoutMs * (retry + 1 ), requests, status, nRequests);
1442+ if (success) {
1443+ break ;
1444+ }
1445+ GCS_SEND_TEXT (MAV_SEVERITY_WARNING, " %s Topic/Pub/Writer session request retry for index '%u'" , msg_prefix, i);
1446+ }
1447+ if (!success) {
14351448 GCS_SEND_TEXT (MAV_SEVERITY_ERROR, " %s Topic/Pub/Writer session request failure for index '%u'" , msg_prefix, i);
14361449 for (uint8_t s = 0 ; s < nRequests; s++) {
14371450 GCS_SEND_TEXT (MAV_SEVERITY_ERROR, " %s Status '%d' result '%u'" , msg_prefix, s, status[s]);
@@ -1459,7 +1472,15 @@ bool AP_DDS_Client::create()
14591472 requests[1 ] = sub_req_id;
14601473 requests[2 ] = dreader_req_id;
14611474
1462- if (!uxr_run_session_until_all_status (&session, requestTimeoutMs, requests, status, nRequests)) {
1475+ bool success = false ;
1476+ for (uint8_t retry = 0 ; retry < 3 ; retry++) {
1477+ success = uxr_run_session_until_all_status (&session, requestTimeoutMs * (retry + 1 ), requests, status, nRequests);
1478+ if (success) {
1479+ break ;
1480+ }
1481+ GCS_SEND_TEXT (MAV_SEVERITY_WARNING, " %s Topic/Sub/Reader session request retry for index '%u'" , msg_prefix, i);
1482+ }
1483+ if (!success) {
14631484 GCS_SEND_TEXT (MAV_SEVERITY_ERROR, " %s Topic/Sub/Reader session request failure for index '%u'" , msg_prefix, i);
14641485 for (uint8_t s = 0 ; s < nRequests; s++) {
14651486 GCS_SEND_TEXT (MAV_SEVERITY_ERROR, " %s Status '%d' result '%u'" , msg_prefix, s, status[s]);
@@ -1491,7 +1512,15 @@ bool AP_DDS_Client::create()
14911512 uint16_t request = replier_req_id;
14921513 uint8_t status;
14931514
1494- if (!uxr_run_session_until_all_status (&session, requestTimeoutMs, &request, &status, 1 )) {
1515+ bool success = false ;
1516+ for (uint8_t retry = 0 ; retry < 3 ; retry++) {
1517+ success = uxr_run_session_until_all_status (&session, requestTimeoutMs * (retry + 1 ), &request, &status, 1 );
1518+ if (success) {
1519+ break ;
1520+ }
1521+ GCS_SEND_TEXT (MAV_SEVERITY_WARNING, " %s Service/Replier session request retry for index '%u'" , msg_prefix, i);
1522+ }
1523+ if (!success) {
14951524 GCS_SEND_TEXT (MAV_SEVERITY_ERROR, " %s Service/Replier session request failure for index '%u'" , msg_prefix, i);
14961525 GCS_SEND_TEXT (MAV_SEVERITY_ERROR, " %s Status result '%u'" , msg_prefix, status);
14971526 // TODO add a failure log message sharing the status results
0 commit comments