ADSB: pass now timestamp as arguemnt of send_traffic_warning()

Saves some flash and CPU by not having to call hrt_absolute_time().

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
This commit is contained in:
Silvan Fuhrer
2024-12-19 09:35:38 +01:00
parent 741e3e8589
commit 1a1fd59302
2 changed files with 9 additions and 8 deletions
+8 -7
View File
@@ -183,7 +183,8 @@ bool AdsbConflict::handle_traffic_conflict()
take_action = send_traffic_warning((int)(math::degrees(_transponder_report.heading) + 180.f),
(int)fabsf(_crosstrack_error.distance), _transponder_report.flags,
_transponder_report.callsign,
_transponder_report.icao_address);
_transponder_report.icao_address,
now);
}
break;
@@ -233,7 +234,7 @@ void AdsbConflict::set_conflict_detection_params(float crosstrack_separation, fl
bool AdsbConflict::send_traffic_warning(int traffic_direction, int traffic_seperation, uint16_t tr_flags,
char tr_callsign[UTM_CALLSIGN_LENGTH], uint32_t icao_address)
char tr_callsign[UTM_CALLSIGN_LENGTH], uint32_t icao_address, hrt_abstime now)
{
switch (_conflict_detection_params.traffic_avoidance_mode) {
@@ -250,7 +251,7 @@ bool AdsbConflict::send_traffic_warning(int traffic_direction, int traffic_seper
}
_last_traffic_warning_time = hrt_absolute_time();
_last_traffic_warning_time = now;
break;
}
@@ -277,7 +278,7 @@ bool AdsbConflict::send_traffic_warning(int traffic_direction, int traffic_seper
"Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}",
icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time();
_last_traffic_warning_time = now;
break;
}
@@ -293,7 +294,7 @@ bool AdsbConflict::send_traffic_warning(int traffic_direction, int traffic_seper
"Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}, returning home",
icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time();
_last_traffic_warning_time = now;
return true;
@@ -311,7 +312,7 @@ bool AdsbConflict::send_traffic_warning(int traffic_direction, int traffic_seper
"Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}, landing",
icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time();
_last_traffic_warning_time = now;
return true;
@@ -330,7 +331,7 @@ bool AdsbConflict::send_traffic_warning(int traffic_direction, int traffic_seper
"Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}, holding position",
icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time();
_last_traffic_warning_time = now;
return true;
+1 -1
View File
@@ -118,7 +118,7 @@ public:
bool send_traffic_warning(int traffic_direction, int traffic_seperation, uint16_t tr_flags,
char tr_callsign[UTM_CALLSIGN_LENGTH], uint32_t icao_address);
char tr_callsign[UTM_CALLSIGN_LENGTH], uint32_t icao_address, hrt_abstime now);
transponder_report_s _transponder_report{};