#include #include #include #include #include #include #include namespace TrackList { TracklistItem::TracklistItem(std::shared_ptr track,SensorData sensorData):trackID_(track->getIdentifier()) { updateTrack(track,sensorData); addSensorDataToSensorList(sensorData); } SimCore::Identifier TracklistItem::getID() { return trackID_; } void TracklistItem::setPosition(SimCore::Position position) { position_ = position; } SimCore::Position TracklistItem::getPosition() { return position_; } void TracklistItem::setSpeed(double speed) { speed_ = speed; } double TracklistItem::getSpeed() { return speed_; } void TracklistItem::setCourse(double course) { course_ = course; } double TracklistItem::getCourse() { return course_;; } void TracklistItem::setPitch(double pitch) { pitch_ = pitch; } double TracklistItem::getpitch() { return pitch_; } double TracklistItem::getBearing() { return bearing_; } double TracklistItem::getRange() { return range_; } SimCore::ObjectSource TracklistItem::getObjectSource() { return ObjectSource_; } std::chrono::time_point TracklistItem::getLastUpdateTimestamp() { return lastUpdateTimestamp_; } void TracklistItem::updateTrack(std::shared_ptr track,SensorData sensorData) { auto trackKind = track->getTrackkind(); if (trackKind == SimCore::TrackKind::RADAR_TRACK) { std::shared_ptr radarTrack = std::dynamic_pointer_cast(track); position_ = radarTrack->getPostion(); range_ = radarTrack->getRange(); bearing_ = radarTrack->getBearing(); course_ = radarTrack->getCourse(); speed_ = radarTrack->getSpeed(); lastUpdateTimestamp_ = std::chrono::steady_clock::now(); } if (isSensorinSensorlist(sensorData) != true) { addSensorDataToSensorList(sensorData); } } bool TracklistItem::isSensorinSensorlist(SensorData sensorData) { auto it = std::find(SensorList.begin(),SensorList.end(), sensorData); if (it != SensorList.end()) { return true; } else { return false; } } bool TracklistItem::isSensorIDKnown(SimCore::Identifier SensorID) { for (auto i: SensorList) { if (i.sensorID == SensorID) { return true; } } return false; } void TracklistItem::addSensorDataToSensorList(SensorData sensorData) { if (isSensorinSensorlist(sensorData) == false) { SensorList.emplace_back(sensorData); } } bool TracklistItem::checkIfSensorIDIsIn(SimCore::Identifier SensorID) { for (auto i:SensorList) { if (i.sensorID == SensorID) { return true; } } return false; } }