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), take_action = send_traffic_warning((int)(math::degrees(_transponder_report.heading) + 180.f),
(int)fabsf(_crosstrack_error.distance), _transponder_report.flags, (int)fabsf(_crosstrack_error.distance), _transponder_report.flags,
_transponder_report.callsign, _transponder_report.callsign,
_transponder_report.icao_address); _transponder_report.icao_address,
now);
} }
break; 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, 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) { 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; 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}", "Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}",
icao_address, traffic_seperation, traffic_direction); icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time(); _last_traffic_warning_time = now;
break; 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", "Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}, returning home",
icao_address, traffic_seperation, traffic_direction); icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time(); _last_traffic_warning_time = now;
return true; 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", "Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}, landing",
icao_address, traffic_seperation, traffic_direction); icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time(); _last_traffic_warning_time = now;
return true; 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", "Traffic alert - ICAO Address {1}! Separation Distance {2}, Heading {3}, holding position",
icao_address, traffic_seperation, traffic_direction); icao_address, traffic_seperation, traffic_direction);
_last_traffic_warning_time = hrt_absolute_time(); _last_traffic_warning_time = now;
return true; 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, 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{}; transponder_report_s _transponder_report{};