diff --git a/firmware/application/ais_app.cpp b/firmware/application/ais_app.cpp index 3eae505b7..9f90012b0 100644 --- a/firmware/application/ais_app.cpp +++ b/firmware/application/ais_app.cpp @@ -133,7 +133,7 @@ void AISRecentEntry::update(const ais::Packet& packet) { } } -void AISRecentEntries::on_packet(const ais::Packet& packet) { +const AISRecentEntry& AISRecentEntries::on_packet(const ais::Packet& packet) { const auto source_id = packet.source_id(); auto matching_recent = find_by_mmsi(source_id); if( matching_recent != std::end(entries) ) { @@ -145,7 +145,10 @@ void AISRecentEntries::on_packet(const ais::Packet& packet) { truncate_entries(); } - entries.front().update(packet); + auto& entry = entries.front(); + entry.update(packet); + + return entry; } AISRecentEntries::ContainerType::const_iterator AISRecentEntries::find_by_mmsi(const ais::MMSI key) const { diff --git a/firmware/application/ais_app.hpp b/firmware/application/ais_app.hpp index 8c0237ac8..4e5fe55e5 100644 --- a/firmware/application/ais_app.hpp +++ b/firmware/application/ais_app.hpp @@ -75,7 +75,7 @@ public: using ContainerType = std::list; using RangeType = std::pair; - void on_packet(const ais::Packet& packet); + const AISRecentEntry& on_packet(const ais::Packet& packet); ContainerType::const_reference front() const { return entries.front();