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;
|
std::string SensorName;
|
||||||
bool isActive;
|
bool isActive;
|
||||||
SimCore::Identifier SensorID;
|
SimCore::Identifier SensorID;
|
||||||
std::shared_ptr<WHISPER::InternalUDPSender> SensorSender;
|
// std::shared_ptr<WHISPER::InternalUDPSender> SensorSender;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct EffectorClientData
|
struct EffectorClientData
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ namespace TrackList
|
|||||||
|
|
||||||
SimCore::Identifier getTrackID(SimCore::ObjectSource source);
|
SimCore::Identifier getTrackID(SimCore::ObjectSource source);
|
||||||
|
|
||||||
|
void addTrack(std::shared_ptr<SimCore::Track> track);
|
||||||
|
|
||||||
void addTrack(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
void addTrack(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
||||||
|
|
||||||
std::shared_ptr<TracklistItem> getTrack(SimCore::Identifier TrackID);
|
std::shared_ptr<TracklistItem> getTrack(SimCore::Identifier TrackID);
|
||||||
@@ -45,6 +47,7 @@ namespace TrackList
|
|||||||
void tracklistSanitizer();
|
void tracklistSanitizer();
|
||||||
|
|
||||||
void addNewTrack(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
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_;
|
std::map<std::string, std::shared_ptr<TracklistItem>> TrackList_;
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ namespace TrackList {
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TracklistItem(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
TracklistItem(std::shared_ptr<SimCore::Track> track,SensorData sensorData);
|
||||||
|
TracklistItem(std::shared_ptr<SimCore::Track> track);
|
||||||
|
|
||||||
SimCore::Identifier getID();
|
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,SensorData sensorData);
|
||||||
|
|
||||||
|
void updateTrack(std::shared_ptr<SimCore::Track> track);
|
||||||
|
|
||||||
bool checkIfSensorIDIsIn(SimCore::Identifier SensorTrackID);
|
bool checkIfSensorIDIsIn(SimCore::Identifier SensorTrackID);
|
||||||
|
|
||||||
bool isSensorIDKnown(SimCore::Identifier);
|
bool isSensorIDKnown(SimCore::Identifier);
|
||||||
|
|
||||||
|
void addSensorDataToSensorList(SensorData sensorData);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -90,7 +94,6 @@ namespace TrackList {
|
|||||||
|
|
||||||
bool isSensorinSensorlist(SensorData sensorData);
|
bool isSensorinSensorlist(SensorData sensorData);
|
||||||
|
|
||||||
void addSensorDataToSensorList(SensorData sensorData);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Submodule libs/SimCore updated: f83fabd343...d4c12f3b09
@@ -15,6 +15,13 @@ namespace TrackList {
|
|||||||
updateTrack(track,sensorData);
|
updateTrack(track,sensorData);
|
||||||
addSensorDataToSensorList(sensorData);
|
addSensorDataToSensorList(sensorData);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
TracklistItem::TracklistItem(std::shared_ptr<SimCore::Track> track):trackID_(track->getIdentifier())
|
||||||
|
{
|
||||||
|
|
||||||
|
updateTrack(track);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SimCore::Identifier TracklistItem::getID()
|
SimCore::Identifier TracklistItem::getID()
|
||||||
@@ -86,7 +93,7 @@ namespace TrackList {
|
|||||||
{
|
{
|
||||||
|
|
||||||
auto trackKind = track->getTrackkind();
|
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);
|
std::shared_ptr<SimCore::RadarTrack> radarTrack = std::dynamic_pointer_cast<SimCore::RadarTrack>(track);
|
||||||
|
|
||||||
position_ = radarTrack->getPostion();
|
position_ = radarTrack->getPostion();
|
||||||
@@ -103,6 +110,27 @@ namespace TrackList {
|
|||||||
addSensorDataToSensorList(sensorData);
|
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);
|
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);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -88,6 +126,15 @@ namespace TrackList
|
|||||||
TrackList_.emplace(id,item);
|
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)
|
std::shared_ptr<TracklistItem> TrackList::getTrack(SimCore::Identifier TrackID)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user