CHG: sensor info are not longer needed when adding a track to a tracklist
This commit is contained in:
@@ -32,7 +32,7 @@ namespace Entities {
|
||||
std::string SensorName;
|
||||
bool isActive;
|
||||
SimCore::Identifier SensorID;
|
||||
std::shared_ptr<WHISPER::InternalUDPSender> SensorSender;
|
||||
// std::shared_ptr<WHISPER::InternalUDPSender> SensorSender;
|
||||
};
|
||||
|
||||
struct EffectorClientData
|
||||
|
||||
@@ -28,6 +28,8 @@ namespace TrackList
|
||||
|
||||
SimCore::Identifier getTrackID(SimCore::ObjectSource source);
|
||||
|
||||
void addTrack(std::shared_ptr<SimCore::Track> track);
|
||||
|
||||
void addTrack(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
||||
|
||||
std::shared_ptr<TracklistItem> getTrack(SimCore::Identifier TrackID);
|
||||
@@ -45,7 +47,8 @@ namespace TrackList
|
||||
void tracklistSanitizer();
|
||||
|
||||
void addNewTrack(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
||||
|
||||
void addNewTrack(std::shared_ptr<SimCore::Track> track);
|
||||
|
||||
std::map<std::string, std::shared_ptr<TracklistItem>> TrackList_;
|
||||
|
||||
mutable std::mutex mutex_;
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace TrackList {
|
||||
{
|
||||
public:
|
||||
TracklistItem(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
||||
TracklistItem(std::shared_ptr<SimCore::Track> track);
|
||||
|
||||
SimCore::Identifier getID();
|
||||
|
||||
@@ -56,10 +57,13 @@ namespace TrackList {
|
||||
|
||||
void updateTrack(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
||||
|
||||
void updateTrack(std::shared_ptr<SimCore::Track> track);
|
||||
|
||||
bool checkIfSensorIDIsIn(SimCore::Identifier SensorTrackID);
|
||||
|
||||
bool isSensorIDKnown(SimCore::Identifier);
|
||||
|
||||
void addSensorDataToSensorList(SensorData sensorData);
|
||||
|
||||
|
||||
private:
|
||||
@@ -90,7 +94,6 @@ namespace TrackList {
|
||||
|
||||
bool isSensorinSensorlist(SensorData sensorData);
|
||||
|
||||
void addSensorDataToSensorList(SensorData sensorData);
|
||||
|
||||
|
||||
|
||||
|
||||
Submodule libs/SimCore updated: f83fabd343...d4c12f3b09
@@ -15,6 +15,13 @@ namespace TrackList {
|
||||
updateTrack(track,sensorData);
|
||||
addSensorDataToSensorList(sensorData);
|
||||
|
||||
}
|
||||
|
||||
TracklistItem::TracklistItem(std::shared_ptr<SimCore::Track> track):trackID_(track->getIdentifier())
|
||||
{
|
||||
|
||||
updateTrack(track);
|
||||
|
||||
}
|
||||
|
||||
SimCore::Identifier TracklistItem::getID()
|
||||
@@ -86,7 +93,7 @@ namespace TrackList {
|
||||
{
|
||||
|
||||
auto trackKind = track->getTrackkind();
|
||||
if (trackKind == SimCore::TrackKind::RADAR_TRACK) {
|
||||
if (trackKind == SimCore::TrackKind::RADAR_TRACK | trackKind == SimCore::TrackKind::GROUND_TRUTH_TRACK) {
|
||||
std::shared_ptr<SimCore::RadarTrack> radarTrack = std::dynamic_pointer_cast<SimCore::RadarTrack>(track);
|
||||
|
||||
position_ = radarTrack->getPostion();
|
||||
@@ -103,6 +110,27 @@ namespace TrackList {
|
||||
addSensorDataToSensorList(sensorData);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void TracklistItem::updateTrack(std::shared_ptr<SimCore::Track> track )
|
||||
{
|
||||
|
||||
auto trackKind = track->getTrackkind();
|
||||
if (trackKind == SimCore::TrackKind::RADAR_TRACK | trackKind == SimCore::TrackKind::GROUND_TRUTH_TRACK) {
|
||||
std::shared_ptr<SimCore::RadarTrack> radarTrack = std::dynamic_pointer_cast<SimCore::RadarTrack>(track);
|
||||
|
||||
position_ = radarTrack->getPostion();
|
||||
range_ = radarTrack->getRange();
|
||||
bearing_ = radarTrack->getBearing();
|
||||
course_ = radarTrack->getCourse();
|
||||
speed_ = radarTrack->getSpeed();
|
||||
lastUpdateTimestamp_ = std::chrono::steady_clock::now();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -67,6 +67,44 @@ namespace TrackList
|
||||
addNewTrack( track, sensorData);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// @brief
|
||||
/// @param track
|
||||
void TrackList::addTrack(std::shared_ptr<SimCore::Track> track)
|
||||
{
|
||||
|
||||
auto AllIDs = getAllIDs();
|
||||
// std::unique_lock<std::mutex> lock(mutex_);
|
||||
// lock.unlock();
|
||||
|
||||
if (AllIDs.size() == 0) {
|
||||
addNewTrack( track);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (auto ID:AllIDs) {
|
||||
// std::lock_guard<std::mutex> lock(mutex_);
|
||||
|
||||
auto TracklistItem = TrackList_.find(ID.serialize());
|
||||
|
||||
if (TracklistItem != TrackList_.end()) {
|
||||
|
||||
TracklistItem->second->updateTrack(track);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// lock.unlock();
|
||||
|
||||
addNewTrack( track);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -87,6 +125,15 @@ namespace TrackList
|
||||
std::string id = track->getIdentifier().serialize();
|
||||
TrackList_.emplace(id,item);
|
||||
}
|
||||
|
||||
void TrackList::addNewTrack(std::shared_ptr<SimCore::Track> track)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex_);
|
||||
|
||||
auto item = std::make_shared<TracklistItem>( track);
|
||||
std::string id = track->getIdentifier().serialize();
|
||||
TrackList_.emplace(id,item);
|
||||
}
|
||||
|
||||
|
||||
std::shared_ptr<TracklistItem> TrackList::getTrack(SimCore::Identifier TrackID)
|
||||
|
||||
Reference in New Issue
Block a user