![]() |
Eclipse SUMO - Simulation of Urban MObility
|
A device which collects info on the vehicle trip (mainly on departure and arrival) More...
#include <MSDevice_SSM.h>
Data Structures | |
class | Encounter |
An encounter is an episode involving two vehicles, which are closer to each other than some specified distance. More... | |
struct | EncounterApproachInfo |
Structure to collect some info on the encounter needed during ssm calculation by various functions. More... | |
struct | FoeInfo |
struct | UpstreamScanStartInfo |
Auxiliary structure used to handle upstream scanning start points Upstream scan has to be started after downstream scan is completed, see #5644. More... | |
Public Member Functions | |
void | addTo (const StoringVisitor &cont) const |
Adds this object to the given container. More... | |
const std::string | deviceName () const |
return the name for this type of device More... | |
void | generateOutput () const |
Finalizes output. Called on vehicle removal. More... | |
const std::string & | getDescription () const |
SUMOVehicle & | getHolder () const |
Returns the vehicle that holds this device. More... | |
const std::string & | getID () const |
Returns the id. More... | |
const MSLane * | getLane () const |
Returns the lane the reminder works on. More... | |
SUMOVehicle::NumericalID | getNumericalID () const |
virtual std::string | getParameter (const std::string &key) const |
try to retrieve the given parameter from this device. Throw exception for unsupported key More... | |
virtual void | loadState (const SUMOSAXAttributes &attrs) |
Loads the state of the device from the given description. More... | |
virtual void | notifyMoveInternal (const SUMOTrafficObject &veh, const double frontOnLane, const double timeOnLane, const double meanSpeedFrontOnLane, const double meanSpeedVehicleOnLane, const double travelledDistanceFrontOnLane, const double travelledDistanceVehicleOnLane, const double meanLengthOnLane) |
Internal notification about the vehicle moves. More... | |
virtual void | saveState (OutputDevice &out) const |
Saves the state of the device. More... | |
void | setDescription (const std::string &description) |
void | setID (const std::string &newID) |
resets the id More... | |
virtual void | setParameter (const std::string &key, const std::string &value) |
try to set the given parameter for this device. Throw exception for unsupported key More... | |
void | updateAndWriteOutput () |
This is called once per time step in MSNet::writeOutput() and collects the surrounding vehicles, updates information on encounters and flushes the encounters qualified as conflicts (. More... | |
~MSDevice_SSM () | |
Destructor. More... | |
Methods called on vehicle movement / state change, overwriting MSDevice | |
bool | notifyMove (SUMOTrafficObject &veh, double oldPos, double newPos, double newSpeed) |
Checks for waiting steps when the vehicle moves. More... | |
bool | notifyEnter (SUMOTrafficObject &veh, MSMoveReminder::Notification reason, const MSLane *enteredLane=0) |
Called whenever the holder enteres a lane. More... | |
bool | notifyLeave (SUMOTrafficObject &veh, double lastPos, MSMoveReminder::Notification reason, const MSLane *enteredLane=0) |
Called whenever the holder leaves a lane. More... | |
Interface methods, to be derived by subclasses | |
void | updateDetector (SUMOTrafficObject &veh, double entryPos, double leavePos, SUMOTime entryTime, SUMOTime currentTime, SUMOTime leaveTime, bool cleanUp) |
Static Public Member Functions | |
static void | buildTransportableDevices (MSTransportable &p, std::vector< MSTransportableDevice *> &into) |
Build devices for the given person, if needed. More... | |
static void | buildVehicleDevices (SUMOVehicle &v, std::vector< MSVehicleDevice *> &into) |
Build devices for the given vehicle, if needed. More... | |
static bool | checkOptions (OptionsCont &oc) |
check device-specific options More... | |
static void | cleanup () |
Clean up remaining devices instances. More... | |
static void | cleanupAll () |
perform cleanup for all devices More... | |
static void | findSurroundingVehicles (const MSVehicle &veh, double range, FoeInfoMap &foeCollector) |
Returns all vehicles, which are within the given range of the given vehicle. More... | |
static std::mt19937 * | getEquipmentRNG () |
template<class T > | |
static std::string | getIDSecure (const T *obj, const std::string &fallBack="NULL") |
get an identifier for Named-like object which may be Null More... | |
static const std::set< MSDevice_SSM *, ComparatorNumericalIdLess > & | getInstances () |
returns all currently existing SSM devices More... | |
static void | getUpstreamVehicles (const UpstreamScanStartInfo &scanStart, FoeInfoMap &foeCollector, std::set< const MSJunction *> &seenJunctions) |
Collects all vehicles within range 'range' upstream of the position 'pos' on the edge 'edge' into foeCollector. More... | |
static void | getVehiclesOnJunction (const MSJunction *, double egoDistToConflictLane, const MSLane *const egoConflictLane, FoeInfoMap &foeCollector) |
Collects all vehicles on the junction into foeCollector. More... | |
static void | insertOptions (OptionsCont &oc) |
Inserts MSDevice_SSM-options. More... | |
static std::string | toString (EncounterType type) |
Protected Member Functions | |
void | removeFromVehicleUpdateValues (SUMOTrafficObject &veh) |
Static Protected Member Functions | |
Helper methods for device assignment | |
static void | insertDefaultAssignmentOptions (const std::string &deviceName, const std::string &optionsTopic, OptionsCont &oc, const bool isPerson=false) |
Adds common command options that allow to assign devices to vehicles. More... | |
template<class DEVICEHOLDER > | |
static bool | equippedByDefaultAssignmentOptions (const OptionsCont &oc, const std::string &deviceName, DEVICEHOLDER &v, bool outputOptionSet, const bool isPerson=false) |
Determines whether a vehicle should get a certain device. More... | |
Helper methods for parsing parameters | |
static std::string | getStringParam (const SUMOVehicle &v, const OptionsCont &oc, std::string paramName, std::string deflt, bool required) |
static double | getFloatParam (const SUMOVehicle &v, const OptionsCont &oc, std::string paramName, double deflt, bool required) |
static bool | getBoolParam (const SUMOVehicle &v, const OptionsCont &oc, std::string paramName, bool deflt, bool required) |
Protected Attributes | |
std::string | myDescription |
a description of this moveReminder More... | |
SUMOVehicle & | myHolder |
The vehicle that stores the device. More... | |
std::string | myID |
The name of the object. More... | |
MSLane *const | myLane |
Lane on which the reminder works. More... | |
Private Types | |
typedef std::priority_queue< Encounter *, std::vector< Encounter * >, Encounter::compare > | EncounterQueue |
typedef std::vector< Encounter * > | EncounterVector |
typedef std::map< const MSVehicle *, FoeInfo * > | FoeInfoMap |
enum | SSMParameterWarning { SSM_WARN_MEASURES = 1, SSM_WARN_THRESHOLDS = 1 << 1, SSM_WARN_TRAJECTORIES = 1 << 2, SSM_WARN_RANGE = 1 << 3, SSM_WARN_EXTRATIME = 1 << 4, SSM_WARN_FILE = 1 << 5, SSM_WARN_GEO = 1 << 6 } |
Private Member Functions | |
EncounterType | classifyEncounter (const FoeInfo *foeInfo, EncounterApproachInfo &eInfo) const |
Classifies the current type of the encounter provided some information on the opponents. More... | |
void | closeEncounter (Encounter *e) |
Finalizes the encounter and calculates SSM values. More... | |
void | computeGlobalMeasures () |
Stores measures, that are not associated to a specific encounter as headways and brake rates. More... | |
void | computeSSMs (EncounterApproachInfo &e) const |
Compute current values of the logged SSMs (myMeasures) for the given encounter 'e' and update 'e' accordingly (add point to SSM time-series, update maximal/minimal value) This is called just after adding the current vehicle positions and velocity vectors to the encounter. More... | |
double | computeTTC (double gap, double followerSpeed, double leaderSpeed) const |
Computes the time to collision (in seconds) for two vehicles with a given initial gap under the assumption that both maintain their current speeds. Returns INVALID if no collision would occur under this assumption. More... | |
void | createEncounters (FoeInfoMap &foes) |
Makes new encounters for all given vehicles (these should be the ones entering the device's range in the current timestep) More... | |
void | determinePET (EncounterApproachInfo &eInfo) const |
Discriminates between different encounter types and correspondingly determines the PET for those cases and writes the result to eInfo.pet (after both vehicles have left the conflict area) More... | |
void | determineTTCandDRAC (EncounterApproachInfo &eInfo) const |
Discriminates between different encounter types and correspondingly determines TTC and DRAC for those cases and writes the result to eInfo.ttc and eInfo.drac. More... | |
const MSLane * | findFoeConflictLane (const MSVehicle *foe, const MSLane *egoConflictLane, double &distToConflictLane) const |
Computes the conflict lane for the foe. More... | |
void | flushConflicts (bool all=false) |
Writes out all past conflicts that have begun earlier than the oldest active encounter. More... | |
void | flushGlobalMeasures () |
Write out all non-encounter specific measures as headways and braking rates. More... | |
MSDevice_SSM (SUMOVehicle &holder, const std::string &id, std::string outputFilename, std::map< std::string, double > thresholds, bool trajectories, double range, double extraTime, bool useGeoCoords) | |
Constructor. More... | |
MSDevice_SSM (const MSDevice_SSM &) | |
Invalidated copy constructor. More... | |
MSDevice_SSM & | operator= (const MSDevice_SSM &) |
Invalidated assignment operator. More... | |
void | processEncounters (FoeInfoMap &foes, bool forceClose=false) |
Finds encounters for which the foe vehicle has disappeared from range. remainingExtraTime is decreased until it reaches zero, which triggers closing the encounter. If an ended encounter is qualified as a conflict, it is transferred to myPastConflicts All vehicles for which an encounter instance already exists (vehicle is already tracked) are removed from 'foes' during processing. More... | |
bool | qualifiesAsConflict (Encounter *e) |
Tests if the SSM values exceed the threshold for qualification as conflict. More... | |
void | resetEncounters () |
Closes all current Encounters and moves conflicts to myPastConflicts,. More... | |
void | storeEncountersExceedingMaxLength () |
Closes encounters, whose duration exceeds the maximal encounter length. If it is classified as conflict, the encounter is saved. In any case, a new active encounter is created holding the trailing part (of length myOverlapTime) of the original. More... | |
void | update () |
bool | updateEncounter (Encounter *e, FoeInfo *foeInfo) |
Updates the encounter (adds a new trajectory point). More... | |
void | updatePassedEncounter (Encounter *e, FoeInfo *foeInfo, EncounterApproachInfo &eInfo) |
Updates an encounter, which was classified as ENCOUNTER_TYPE_NOCONFLICT_AHEAD this may be the case because the foe is out of the detection range but the encounter is still in extra time (in this case foeInfo==0), or because the foe does not head for a lane conflicting with the route of the ego vehicle. It is also used for an ongoing crossing conflict, where only the covered distances are traced until the situation is over. (A crossing conflict is ongoing, if one vehicle entered the conflict area) Writes the type of encounter which is determined for the current state into eInfo. And if appropriate some information concerning vehicles positions in relation to a crossed crossing point (for PET calculation). More... | |
void | writeOutConflict (Encounter *e) |
Static Private Member Functions | |
static void | checkConflictEntryAndExit (EncounterApproachInfo &eInfo) |
Checks whether ego or foe have entered or left the conflict area in the last step and eventually writes the corresponding entry or exit times to eInfo.encounter. For ongoing crossing conflicts, it also manages the evolution of the conflict type. More... | |
static double | computeDRAC (double gap, double followerSpeed, double leaderSpeed) |
Computes the DRAC (deceleration to avoid a collision) for a lead/follow situation as defined, e.g., in Guido et al. (2011, Safety performance measures: a comparison between microsimulation and observational data) for two vehicles with a given gap. Returns 0.0 if no deceleration is required by the follower to avoid a crash, INVALID if collision is detected. More... | |
static double | computeDRAC (const EncounterApproachInfo &eInfo) |
Computes the DRAC a crossing situation, determining the minimal constant deceleration needed for one of the vehicles to reach the conflict area after the other has left. for estimated leaving times, current deceleration is extrapolated, and acceleration is neglected. Returns 0.0 if no deceleration is required by the follower to avoid a crash, INVALID if collision is detected. More... | |
static void | determineConflictPoint (EncounterApproachInfo &eInfo) |
Calculates the (x,y)-coordinate for the eventually predicted conflict point and stores the result in eInfo.conflictPoint. In case of MERGING and CROSSING, this is the entry point to conflict area for follower In case of FOLLOWING it is the position of leader's back. More... | |
static void | estimateConflictTimes (EncounterApproachInfo &eInfo) |
Estimates the time until conflict for the vehicles based on the distance to the conflict entry points. For acceleration profiles, we assume that the acceleration is <= 0 (that is, braking is extrapolated, while for acceleration it is assumed that the vehicle will continue with its current speed) More... | |
static std::string | makeStringWithNAs (std::vector< double > v, double NA, std::string sep=" ") |
make a string of a double vector and treat a special value as invalid ("NA") More... | |
static std::string | makeStringWithNAs (std::vector< double > v, std::vector< double > NAs, std::string sep=" ") |
static void | toGeo (Position &x) |
convert SUMO-positions to geo coordinates (in place) More... | |
static void | toGeo (PositionVector &x) |
convert SUMO-positions to geo coordinates (in place) More... | |
parameter load helpers (introduced for readability of buildVehicleDevices()) | |
static std::string | getOutputFilename (const SUMOVehicle &v, std::string deviceID) |
static double | getDetectionRange (const SUMOVehicle &v) |
static double | getExtraTime (const SUMOVehicle &v) |
static bool | useGeoCoords (const SUMOVehicle &v) |
static bool | requestsTrajectories (const SUMOVehicle &v) |
static bool | getMeasuresAndThresholds (const SUMOVehicle &v, std::string deviceID, std::map< std::string, double > &thresholds) |
Private Attributes | |
OutputDevice * | myOutputFile |
Output device. More... | |
Device parameters | |
thresholds for the ssms, i.e., critical values above or below which a value indicates that a conflict has occurred. These are used in qualifiesAsConflict() and decide whether an encounter is saved. | |
std::map< std::string, double > | myThresholds |
bool | mySaveTrajectories |
This determines whether the whole trajectories of the vehicles (position, speed, ssms) shall be saved in the ssm-output or only the most critical value shall be reported. More... | |
double | myRange |
Detection range. For vehicles closer than this distance from the ego vehicle, SSMs are traced. More... | |
double | myExtraTime |
Extra time in seconds to be logged after a conflict is over. More... | |
bool | myUseGeoCoords |
Whether to use the original coordinate system for output. More... | |
bool | myComputeTTC |
Flags for switching on / off comutation of different SSMs, derived from myMeasures. More... | |
bool | myComputeDRAC |
bool | myComputePET |
bool | myComputeBR |
bool | myComputeSGAP |
bool | myComputeTGAP |
MSVehicle * | myHolderMS |
Internal storage for encounters/conflicts | |
Currently observed encounters/conflicts | |
EncounterVector | myActiveEncounters |
double | myOldestActiveEncounterBegin |
begin time of the oldest active encounter More... | |
EncounterQueue | myPastConflicts |
Past encounters that where qualified as conflicts and are not yet flushed to the output file. More... | |
Internal storage for global measures | |
std::vector< double > | myGlobalMeasuresTimeSpan |
std::vector< double > | myBRspan |
All values for brake rate. More... | |
std::vector< double > | mySGAPspan |
All values for space gap. More... | |
std::vector< double > | myTGAPspan |
All values for time gap. More... | |
std::pair< std::pair< double, Position >, double > | myMaxBR |
Extremal values for the global measures (as <<<time, Position>, value>, [leaderID]>-pairs) More... | |
std::pair< std::pair< std::pair< double, Position >, double >, std::string > | myMinSGAP |
std::pair< std::pair< std::pair< double, Position >, double >, std::string > | myMinTGAP |
Static Private Attributes | |
static std::set< std::string > | createdOutputFiles |
remember which files were created already (don't duplicate xml root-elements) More... | |
static int | issuedParameterWarnFlags = 0 |
bitset storing info whether warning has already been issued about unset parameter (warn only once!) More... | |
static std::set< MSDevice_SSM *, ComparatorNumericalIdLess > * | myInstances = new std::set<MSDevice_SSM*, ComparatorNumericalIdLess>() |
All currently existing SSM devices. More... | |
A device which collects info on the vehicle trip (mainly on departure and arrival)
Each device collects departure time, lane and speed and the same for arrival.
Definition at line 57 of file MSDevice_SSM.h.
|
private |
Definition at line 354 of file MSDevice_SSM.h.
|
private |
Definition at line 355 of file MSDevice_SSM.h.
|
private |
Definition at line 356 of file MSDevice_SSM.h.
Different types of encounters corresponding to relative positions of the vehicles. The name describes the type from the ego perspective.
Definition at line 66 of file MSDevice_SSM.h.
|
inherited |
Definition of a vehicle state.
Definition at line 89 of file MSMoveReminder.h.
|
private |
Enumerator | |
---|---|
SSM_WARN_MEASURES | |
SSM_WARN_THRESHOLDS | |
SSM_WARN_TRAJECTORIES | |
SSM_WARN_RANGE | |
SSM_WARN_EXTRATIME | |
SSM_WARN_FILE | |
SSM_WARN_GEO |
Definition at line 748 of file MSDevice_SSM.h.
MSDevice_SSM::~MSDevice_SSM | ( | ) |
Destructor.
Definition at line 2774 of file MSDevice_SSM.cpp.
References flushConflicts(), flushGlobalMeasures(), myInstances, and resetEncounters().
|
private |
Constructor.
[in] | holder | The vehicle that holds this device |
[in] | id | The ID of the device |
measures | Vector of Surrogate Safety Measure IDs | |
thresholds | Vector of corresponding thresholds | |
trajectories | Flag indicating whether complete trajectories should be saved for an encounter (if false only extremal values are logged) | |
range | Detection range. For vehicles closer than this distance from the ego vehicle, SSMs are traced | |
extraTime | Extra time in seconds to be logged after a conflict is over | |
useGeoCoords | Whether coordinates should be written out in the original coordinate reference system or as sumo's x,y values |
Definition at line 2719 of file MSDevice_SSM.cpp.
References createdOutputFiles, DEBUG_COND, OutputDevice::getDevice(), joinToString(), myActiveEncounters, myComputeBR, myComputeDRAC, myComputePET, myComputeSGAP, myComputeTGAP, myComputeTTC, myExtraTime, myHolderMS, myInstances, myOutputFile, myPastConflicts, myRange, mySaveTrajectories, myThresholds, myUseGeoCoords, and OutputDevice::writeXMLHeader().
Referenced by buildVehicleDevices(), and deviceName().
|
private |
Invalidated copy constructor.
|
inlineinherited |
Adds this object to the given container.
Definition at line 127 of file Named.h.
References Named::StoringVisitor::add().
|
staticinherited |
Build devices for the given person, if needed.
[in] | p | The person for which a device may be built |
Definition at line 112 of file MSDevice.cpp.
References MSTransportableDevice_FCD::buildDevices(), and MSTransportableDevice_Routing::buildDevices().
Referenced by MSTransportable::MSTransportable().
|
static |
Build devices for the given vehicle, if needed.
The options are read and evaluated whether a example-device shall be built for the given vehicle.
The built device is stored in the given vector.
[in] | v | The vehicle for which a device may be built |
Definition at line 230 of file MSDevice_SSM.cpp.
References MSDevice::equippedByDefaultAssignmentOptions(), getDetectionRange(), getExtraTime(), SUMOTrafficObject::getID(), getMeasuresAndThresholds(), OptionsCont::getOptions(), getOutputFilename(), MSGlobals::gUseMesoSim, MSDevice_SSM(), requestsTrajectories(), useGeoCoords(), and WRITE_WARNING.
Referenced by MSDevice::buildVehicleDevices().
|
staticprivate |
Checks whether ego or foe have entered or left the conflict area in the last step and eventually writes the corresponding entry or exit times to eInfo.encounter. For ongoing crossing conflicts, it also manages the evolution of the conflict type.
Definition at line 1492 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::currentType, DEBUG_COND_ENCOUNTER, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::Encounter::egoConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::Encounter::egoConflictExitTime, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_COLLISION, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::Encounter::foeConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::foeConflictExitDist, MSDevice_SSM::Encounter::foeConflictExitTime, MSDevice_SSM::Encounter::foeID, MSVehicle::getLastStepDist(), MSBaseVehicle::getLength(), MSVehicle::getPreviousSpeed(), MSVehicle::getSpeed(), INVALID, MSCFModel::passingTime(), SIMTIME, MSDevice_SSM::Encounter::size(), TS, and MSDevice_SSM::EncounterApproachInfo::type.
Referenced by deviceName(), and updateEncounter().
|
staticinherited |
check device-specific options
Definition at line 86 of file MSDevice.cpp.
References MSDevice_Routing::checkOptions().
Referenced by MSFrame::checkOptions().
|
private |
Classifies the current type of the encounter provided some information on the opponents.
[in] | foeInfo | Info on distance to conflict point for the device holder. |
Definition at line 1798 of file MSDevice_SSM.cpp.
References DEBUG_COND_ENCOUNTER, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::FoeInfo::egoConflictLane, MSDevice_SSM::FoeInfo::egoDistToConflictLane, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_CROSSING, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, ENCOUNTER_TYPE_MERGING, ENCOUNTER_TYPE_MERGING_ADJACENT, ENCOUNTER_TYPE_NOCONFLICT_AHEAD, ENCOUNTER_TYPE_ON_ADJACENT_LANES, ENCOUNTER_TYPE_ONCOMING, findFoeConflictLane(), MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::foeConflictExitDist, MSVehicle::getBackPositionOnLane(), MSLane::getCanonicalSuccessorLane(), MSLink::getCorrespondingExitLink(), MSLane::getEdge(), MSLane::getEntryLink(), MSLane::getFirstInternalInConnection(), MSLink::getFoeLinks(), Named::getID(), MSBaseVehicle::getID(), MSLane::getIncomingLanes(), MSLink::getInternalLaneBefore(), MSLink::getInternalLengthsAfter(), MSLink::getLane(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSVehicle::getLateralPositionOnLane(), MSBaseVehicle::getLength(), MSLane::getLength(), MSLink::getLengthsBeforeCrossing(), MSLane::getLinkCont(), MSVehicle::getPositionOnLane(), MSLane::getShape(), MSEdge::getToJunction(), MSBaseVehicle::getVehicleType(), MSLink::getViaLane(), MSVehicleType::getWidth(), MSBaseVehicle::getWidth(), MSLane::getWidth(), INVALID, MSLane::isInternal(), MSLink::isInternalJunctionLink(), MSAbstractLaneChangeModel::isOpposite(), M_PI, PositionVector::rotationAtOffset(), MSDevice_SSM::EncounterApproachInfo::type, and MSDevice_SSM::Encounter::typeSpan.
Referenced by deviceName(), and updateEncounter().
|
static |
Clean up remaining devices instances.
Definition at line 191 of file MSDevice_SSM.cpp.
References OutputDevice::closeTag(), createdOutputFiles, fn, OutputDevice::getDevice(), and myInstances.
Referenced by MSNet::clearAll().
|
staticinherited |
perform cleanup for all devices
Definition at line 119 of file MSDevice.cpp.
References MSDevice_FCD::cleanup(), MSRoutingEngine::cleanup(), and MSDevice_Tripinfo::cleanup().
Referenced by MSNet::clearAll(), and MSDevice::getEquipmentRNG().
|
private |
Finalizes the encounter and calculates SSM values.
Definition at line 656 of file MSDevice_SSM.cpp.
References DEBUG_COND, MSDevice_SSM::Encounter::ego, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::Encounter::end, MSDevice_SSM::Encounter::foe, MSDevice_SSM::Encounter::foeID, MSBaseVehicle::getID(), myHolderMS, myPastConflicts, qualifiesAsConflict(), SIMTIME, MSDevice_SSM::Encounter::size(), and MSDevice_SSM::Encounter::timeSpan.
Referenced by deviceName(), and processEncounters().
|
staticprivate |
Computes the DRAC (deceleration to avoid a collision) for a lead/follow situation as defined, e.g., in Guido et al. (2011, Safety performance measures: a comparison between microsimulation and observational data) for two vehicles with a given gap. Returns 0.0 if no deceleration is required by the follower to avoid a crash, INVALID if collision is detected.
Definition at line 1356 of file MSDevice_SSM.cpp.
References INVALID.
Referenced by computeDRAC(), determineTTCandDRAC(), and deviceName().
|
staticprivate |
Computes the DRAC a crossing situation, determining the minimal constant deceleration needed for one of the vehicles to reach the conflict area after the other has left. for estimated leaving times, current deceleration is extrapolated, and acceleration is neglected. Returns 0.0 if no deceleration is required by the follower to avoid a crash, INVALID if collision is detected.
[in] | eInfo | infos on the encounter. Used variables: dEntry1,dEntry2 The distances to the conflict area entry dExit1,dExit2 The distances to the conflict area exit v1,v2 The current speeds tEntry1,tEntry2 The estimated conflict entry times (including extrapolation of current acceleration) tExit1,tExit2 The estimated conflict exit times (including extrapolation of current acceleration) |
Definition at line 1374 of file MSDevice_SSM.cpp.
References computeDRAC(), DEBUG_COND, MSDevice_SSM::EncounterApproachInfo::drac, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::EncounterApproachInfo::egoEstimatedConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::egoEstimatedConflictExitTime, MSDevice_SSM::EncounterApproachInfo::encounter, MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::foeConflictExitDist, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictExitTime, MSVehicle::getSpeed(), INVALID, MIN2(), SIMTIME, and toString().
|
private |
Stores measures, that are not associated to a specific encounter as headways and brake rates.
Definition at line 453 of file MSDevice_SSM.cpp.
References MSVehicle::getAcceleration(), MSVehicle::getLeader(), MSVehicle::getPosition(), MSVehicle::getSpeed(), INVALID, MAX2(), myBRspan, myComputeBR, myComputeSGAP, myComputeTGAP, myGlobalMeasuresTimeSpan, myHolderMS, myMaxBR, myMinSGAP, myMinTGAP, mySGAPspan, myTGAPspan, myThresholds, and SIMTIME.
Referenced by deviceName(), and update().
|
private |
Compute current values of the logged SSMs (myMeasures) for the given encounter 'e' and update 'e' accordingly (add point to SSM time-series, update maximal/minimal value) This is called just after adding the current vehicle positions and velocity vectors to the encounter.
Definition at line 990 of file MSDevice_SSM.cpp.
References DEBUG_COND, determinePET(), determineTTCandDRAC(), MSDevice_SSM::EncounterApproachInfo::drac, MSDevice_SSM::Encounter::ego, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_COLLISION, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, ENCOUNTER_TYPE_FOLLOWING_PASSED, ENCOUNTER_TYPE_MERGING_ADJACENT, ENCOUNTER_TYPE_MERGING_FOLLOWER, ENCOUNTER_TYPE_MERGING_LEADER, ENCOUNTER_TYPE_MERGING_PASSED, ENCOUNTER_TYPE_NOCONFLICT_AHEAD, ENCOUNTER_TYPE_ON_ADJACENT_LANES, ENCOUNTER_TYPE_ONCOMING, MSDevice_SSM::Encounter::foe, MSDevice_SSM::Encounter::foeID, MSBaseVehicle::getID(), INVALID, myComputeDRAC, myComputeTTC, myHolderMS, MSDevice_SSM::EncounterApproachInfo::pet, SIMTIME, toString(), MSDevice_SSM::EncounterApproachInfo::ttc, MSDevice_SSM::EncounterApproachInfo::type, and WRITE_WARNING.
Referenced by deviceName(), and updateEncounter().
|
private |
Computes the time to collision (in seconds) for two vehicles with a given initial gap under the assumption that both maintain their current speeds. Returns INVALID if no collision would occur under this assumption.
Definition at line 1334 of file MSDevice_SSM.cpp.
References DEBUG_COND, INVALID, and myHolderMS.
Referenced by determineTTCandDRAC(), and deviceName().
|
private |
Makes new encounters for all given vehicles (these should be the ones entering the device's range in the current timestep)
Definition at line 506 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::begin, DEBUG_COND, Named::getID(), INVALID, myActiveEncounters, myExtraTime, myHolderMS, myOldestActiveEncounterBegin, SIMTIME, and updateEncounter().
Referenced by deviceName(), and update().
|
staticprivate |
Calculates the (x,y)-coordinate for the eventually predicted conflict point and stores the result in eInfo.conflictPoint. In case of MERGING and CROSSING, this is the entry point to conflict area for follower In case of FOLLOWING it is the position of leader's back.
Definition at line 804 of file MSDevice_SSM.cpp.
References MSDevice_SSM::EncounterApproachInfo::conflictPoint, MSDevice_SSM::Encounter::conflictPointSpan, DEBUG_COND, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_COLLISION, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, ENCOUNTER_TYPE_MERGING_FOLLOWER, ENCOUNTER_TYPE_MERGING_LEADER, ENCOUNTER_TYPE_ONCOMING, MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSBaseVehicle::getLength(), MSVehicle::getPosition(), MSVehicle::getPositionAlongBestLanes(), SIMTIME, MSDevice_SSM::Encounter::size(), and MSDevice_SSM::EncounterApproachInfo::type.
Referenced by deviceName(), and updateEncounter().
|
private |
Discriminates between different encounter types and correspondingly determines the PET for those cases and writes the result to eInfo.pet (after both vehicles have left the conflict area)
Definition at line 1045 of file MSDevice_SSM.cpp.
References DEBUG_COND, MSDevice_SSM::Encounter::egoConflictEntryTime, MSDevice_SSM::Encounter::egoConflictExitTime, MSDevice_SSM::Encounter::egoDistsToConflict, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, MSDevice_SSM::Encounter::foeConflictEntryTime, MSDevice_SSM::Encounter::foeConflictExitTime, MSDevice_SSM::Encounter::foeDistsToConflict, MSDevice_SSM::Encounter::foeID, INVALID, myHolderMS, MSDevice_SSM::Encounter::PET, MSDevice_SSM::EncounterApproachInfo::pet, SIMTIME, MSDevice_SSM::Encounter::size(), toString(), MSDevice_SSM::EncounterApproachInfo::type, MSDevice_SSM::Encounter::typeSpan, and MSDevice_SSM::Encounter::ConflictPointInfo::value.
Referenced by computeSSMs(), and deviceName().
|
private |
Discriminates between different encounter types and correspondingly determines TTC and DRAC for those cases and writes the result to eInfo.ttc and eInfo.drac.
Definition at line 1147 of file MSDevice_SSM.cpp.
References computeDRAC(), computeTTC(), DEBUG_COND, MSDevice_SSM::EncounterApproachInfo::drac, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::EncounterApproachInfo::egoEstimatedConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::egoEstimatedConflictExitTime, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, ENCOUNTER_TYPE_MERGING_FOLLOWER, ENCOUNTER_TYPE_MERGING_LEADER, ENCOUNTER_TYPE_ONCOMING, MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::foeConflictExitDist, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictExitTime, MSDevice_SSM::Encounter::foeID, MSBaseVehicle::getLength(), MSVehicle::getSpeed(), INVALID, MAX2(), MIN2(), myComputeDRAC, myComputeTTC, myHolderMS, SIMTIME, toString(), MSDevice_SSM::EncounterApproachInfo::ttc, MSDevice_SSM::EncounterApproachInfo::type, and WRITE_WARNING.
Referenced by computeSSMs(), and deviceName().
|
inlinevirtual |
return the name for this type of device
Implements MSDevice.
Definition at line 473 of file MSDevice_SSM.h.
References checkConflictEntryAndExit(), classifyEncounter(), closeEncounter(), computeDRAC(), computeGlobalMeasures(), computeSSMs(), computeTTC(), createEncounters(), determineConflictPoint(), determinePET(), determineTTCandDRAC(), estimateConflictTimes(), findFoeConflictLane(), flushConflicts(), flushGlobalMeasures(), MSDevice_SSM::Encounter::foe, generateOutput(), getDetectionRange(), getExtraTime(), getMeasuresAndThresholds(), getOutputFilename(), makeStringWithNAs(), MSDevice_SSM(), processEncounters(), qualifiesAsConflict(), requestsTrajectories(), resetEncounters(), storeEncountersExceedingMaxLength(), updateEncounter(), updatePassedEncounter(), useGeoCoords(), and MSDevice_SSM::Encounter::Trajectory::v.
|
staticprotectedinherited |
Determines whether a vehicle should get a certain device.
[in] | oc | The options container to get the information about assignment from |
[in] | deviceName | The name of the device type |
[in] | v | The vehicle to determine whether it shall be equipped or not |
Definition at line 204 of file MSDevice.h.
References MSDevice::deviceName(), OptionsCont::exists(), OptionsCont::getBool(), OptionsCont::getFloat(), MSNet::getInstance(), OptionsCont::getOptions(), MSVehicleControl::getQuota(), OptionsCont::getStringVector(), MSNet::getVehicleControl(), OptionsCont::isSet(), MSDevice::myEquipmentRNG, MSDevice::myExplicitIDs, RandHelper::rand(), and StringUtils::toBool().
Referenced by MSTransportableDevice_FCD::buildDevices(), MSTransportableDevice_Routing::buildDevices(), MSDevice_Battery::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice_Bluelight::buildVehicleDevices(), MSDevice_FCD::buildVehicleDevices(), MSDevice_BTreceiver::buildVehicleDevices(), MSDevice_BTsender::buildVehicleDevices(), MSDevice_DriverState::buildVehicleDevices(), MSDevice_Emissions::buildVehicleDevices(), MSDevice_Routing::buildVehicleDevices(), MSDevice_ToC::buildVehicleDevices(), buildVehicleDevices(), and MSDevice::setParameter().
|
staticprivate |
Estimates the time until conflict for the vehicles based on the distance to the conflict entry points. For acceleration profiles, we assume that the acceleration is <= 0 (that is, braking is extrapolated, while for acceleration it is assumed that the vehicle will continue with its current speed)
Definition at line 857 of file MSDevice_SSM.cpp.
References DEBUG_COND, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::EncounterApproachInfo::egoEstimatedConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::egoEstimatedConflictExitTime, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_COLLISION, ENCOUNTER_TYPE_CROSSING, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, ENCOUNTER_TYPE_MERGING, ENCOUNTER_TYPE_MERGING_ADJACENT, ENCOUNTER_TYPE_MERGING_FOLLOWER, ENCOUNTER_TYPE_MERGING_LEADER, ENCOUNTER_TYPE_NOCONFLICT_AHEAD, ENCOUNTER_TYPE_ON_ADJACENT_LANES, ENCOUNTER_TYPE_ONCOMING, MSCFModel::estimateArrivalTime(), MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::foeConflictExitDist, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictExitTime, MSDevice_SSM::Encounter::foeID, MSVehicle::getAcceleration(), MSVehicle::getCarFollowModel(), MSVehicleType::getLength(), MSVehicle::getMaxSpeedOnLane(), MSVehicle::getSpeed(), MSBaseVehicle::getVehicleType(), INVALID, MIN2(), SIMTIME, toString(), MSDevice_SSM::EncounterApproachInfo::type, and WRITE_WARNING.
Referenced by deviceName(), and updateEncounter().
|
private |
Computes the conflict lane for the foe.
foe | Foe vehicle | |
egoConflictLane | Lane, on which the ego would enter the possible conflict | |
routeToConflict,Series | of edges, that were traced back from egoConflictLane during findSurrounding Vehicles, when collecting the foe vehicle | |
[out] | distToConflictLane,distance | to conflictlane entry link (may be negative if foe is already on the conflict lane) |
Definition at line 2393 of file MSDevice_SSM.cpp.
References DEBUG_COND, MSRoute::end(), MSVehicle::getBestLanesContinuation(), SUMOVehicle::getCurrentRouteEdge(), MSBaseVehicle::getCurrentRouteEdge(), SUMOTrafficObject::getEdge(), MSBaseVehicle::getEdge(), MSLane::getEdge(), Named::getID(), MSBaseVehicle::getID(), MSLink::getInternalLengthsAfter(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getLinkTo(), MSEdge::getOppositeEdge(), MSVehicle::getPositionOnLane(), SUMOVehicle::getRoute(), MSBaseVehicle::getRoute(), MSEdge::getToJunction(), MSLink::getViaLane(), MSLane::isInternal(), MSAbstractLaneChangeModel::isOpposite(), MSVehicleDevice::myHolder, myHolderMS, myRange, SIMTIME, and toString().
Referenced by classifyEncounter(), and deviceName().
|
static |
Returns all vehicles, which are within the given range of the given vehicle.
veh | The ego vehicle, that forms the origin for the scan |
range | The range to be scanned. |
Definition at line 2824 of file MSDevice_SSM.cpp.
References DEBUG_COND, gDebugFlag3, MSVehicle::getBestLanesContinuation(), MSLane::getEdge(), MSEdge::getFromJunction(), Named::getID(), MSBaseVehicle::getID(), MSJunction::getIncoming(), MSLink::getInternalLengthsAfter(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSLink::getLength(), MSBaseVehicle::getLength(), MSLane::getLength(), MSEdge::getLength(), MSLane::getLinkCont(), MSLane::getLinkTo(), MSLane::getOpposite(), MSVehicle::getPositionOnLane(), MSEdge::getToJunction(), getUpstreamVehicles(), getVehiclesOnJunction(), MSLink::getViaLane(), MSEdge::isInternal(), MSLane::isInternal(), MSVehicle::isOnRoad(), MSAbstractLaneChangeModel::isOpposite(), SIMTIME, and toString().
Referenced by update().
|
private |
Writes out all past conflicts that have begun earlier than the oldest active encounter.
[in] | all | Whether all conflicts should be flushed or only those for which no active encounters with earlier begin can exist |
Definition at line 2527 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::begin, DEBUG_COND, Named::getID(), INVALID, myHolderMS, myOldestActiveEncounterBegin, myPastConflicts, SIMTIME, and writeOutConflict().
Referenced by deviceName(), updateAndWriteOutput(), and ~MSDevice_SSM().
|
private |
Write out all non-encounter specific measures as headways and braking rates.
Definition at line 2549 of file MSDevice_SSM.cpp.
References OutputDevice::closeTag(), DEBUG_COND, MSBaseVehicle::getID(), INVALID, makeStringWithNAs(), myBRspan, myComputeBR, myComputeSGAP, myComputeTGAP, myGlobalMeasuresTimeSpan, myHolderMS, myMaxBR, myMinSGAP, myMinTGAP, myOutputFile, mySGAPspan, myTGAPspan, myUseGeoCoords, OutputDevice::openTag(), SIMTIME, toGeo(), toString(), and OutputDevice::writeAttr().
Referenced by deviceName(), and ~MSDevice_SSM().
|
virtual |
Finalizes output. Called on vehicle removal.
[in] | os | The stream to write the information into |
IOError | not yet implemented |
Reimplemented from MSDevice.
Definition at line 3217 of file MSDevice_SSM.cpp.
Referenced by deviceName().
|
staticprotectedinherited |
Definition at line 219 of file MSDevice.cpp.
References OptionsCont::getBool(), SUMOTrafficObject::getID(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), Parameterised::knowsParameter(), StringUtils::toBool(), and WRITE_WARNING.
Referenced by MSDevice_ToC::getMRMKeepRight(), MSDevice::setParameter(), and MSDevice_ToC::useColorScheme().
|
inlineinherited |
Definition at line 228 of file MSMoveReminder.h.
References MSMoveReminder::myDescription, and MSMoveReminder::removeFromVehicleUpdateValues().
Referenced by MSBaseVehicle::getRNG(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), and MSMeanData_Net::MSLaneMeanDataValues::write().
|
staticprivate |
Definition at line 3280 of file MSDevice_SSM.cpp.
References OptionsCont::getFloat(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), INVALID, OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_RANGE, StringUtils::toDouble(), and WRITE_WARNING.
Referenced by buildVehicleDevices(), and deviceName().
|
inlinestaticinherited |
Definition at line 91 of file MSDevice.h.
References MSDevice::cleanupAll(), MSDevice::deviceName(), and MSDevice::myEquipmentRNG.
Referenced by NLBuilder::initRandomness(), MSStateHandler::myStartElement(), and MSStateHandler::saveRNGs().
|
staticprivate |
Definition at line 3307 of file MSDevice_SSM.cpp.
References DEFAULT_EXTRA_TIME, OptionsCont::getFloat(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), INVALID, OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_EXTRATIME, StringUtils::toDouble(), toString(), and WRITE_WARNING.
Referenced by buildVehicleDevices(), and deviceName().
|
staticprotectedinherited |
Definition at line 186 of file MSDevice.cpp.
References OptionsCont::getFloat(), SUMOTrafficObject::getID(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), Parameterised::knowsParameter(), StringUtils::toDouble(), and WRITE_WARNING.
Referenced by MSDevice_ToC::getDynamicMRMProbability(), MSDevice_ToC::getDynamicToCThreshold(), MSDevice_DriverState::getErrorNoiseIntensityCoefficient(), MSDevice_DriverState::getErrorTimeScaleCoefficient(), MSDevice_DriverState::getHeadwayChangePerceptionThreshold(), MSDevice_DriverState::getHeadwayErrorCoefficient(), MSDevice_DriverState::getInitialAwareness(), MSDevice_ToC::getInitialAwareness(), MSDevice_ToC::getLCAbstinence(), MSDevice_DriverState::getMaximalReactionTime(), MSDevice_ToC::getMaxPreparationAccel(), MSDevice_DriverState::getMinAwareness(), MSDevice_ToC::getMRMDecel(), MSDevice_ToC::getOpenGapParams(), MSDevice_ToC::getRecoveryRate(), MSDevice_ToC::getResponseTime(), MSDevice_DriverState::getSpeedDifferenceChangePerceptionThreshold(), MSDevice_DriverState::getSpeedDifferenceErrorCoefficient(), and MSDevice::setParameter().
|
inlineinherited |
Returns the vehicle that holds this device.
Definition at line 75 of file MSVehicleDevice.h.
References MSVehicleDevice::myHolder.
Referenced by MSChargingStation::addChargeValueForOutput().
|
inlineinherited |
Returns the id.
Definition at line 77 of file Named.h.
Referenced by MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaders(), MSPModel_Remote::add(), MSPModel_Striping::add(), LaneStoringVisitor::add(), MSVehicleTransfer::add(), PCPolyContainer::add(), MSDetectorControl::add(), Named::StoringVisitor::add(), ShapeContainer::add(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), MSLane::addApproachingLane(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), RONet::addEdge(), NBParkingCont::addEdges2Keep(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), MSLane::addNeigh(), RONet::addNode(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), RONet::addRouteDef(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), ROVehicle::addStop(), MSRouteHandler::addStop(), MSVehicle::addStop(), MSNet::addStoppingPlace(), MSVehicle::addTraciStop(), MSVehicle::addTraciStopAtStoppingPlace(), AGActivityTripWriter::addTrip(), NIXMLConnectionsHandler::addWalkingArea(), libsumo::Helper::applySubscriptionFilters(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSTransportable::Stage_Waiting::beginEventOutput(), MSTransportable::Stage_Driving::beginEventOutput(), MSPModel_Striping::blockedAtDist(), MSLink::blockedAtTime(), MSLink::blockedByFoe(), NLEdgeControlBuilder::build(), NIVisumTL::build(), RODFNet::buildApproachList(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), NBNode::buildCrossings(), NBNode::buildCrossingsAndWalkingAreas(), NIImporter_VISUM::buildDistrictNode(), NLDetectorBuilder::buildE2Detector(), RODFNet::buildEdgeFlowMap(), GNETLSEditorFrame::buildIinternalLanes(), NBEdge::buildInnerEdges(), NGEdge::buildNBEdge(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSRailSignal::DriveWay::buildRoute(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSVehicle::canReverse(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSSimpleTrafficLightLogic::changeStepAndDuration(), MSEdge::checkAndRegisterBiDirEdge(), MSRailSignal::DriveWay::checkCrossingFlanks(), MSLane::checkForPedestrians(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), MSDevice_Battery::checkParam(), MSE2Collector::checkPositioning(), MSVehicle::checkRewindLinkLanes(), MSLCM_SL2015::checkStrategicChange(), MSSwarmTrafficLightLogic::choosePolicy(), classifyEncounter(), ShapeContainer::clearHighlights(), NBTrafficLightLogic::closeBuilding(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNode::computeNodeShape(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NGNet::connect(), NBOwnTLDef::corridorLike(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSSOTLE2Sensors::countVehicles(), createEncounters(), GUINet::createTLWrapper(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSLane::detectPedestrianJunctionCollision(), NIVissimDistrictConnection::dict_BuildDistricts(), MSTransportable::Stage_Waiting::endEventOutput(), MSTransportable::Stage_Driving::endEventOutput(), MSE3Collector::enter(), MSVehicle::enterLaneAtMove(), METriggeredCalibrator::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitchStates::execute(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), MSCalibrator::execute(), MSTrafficLightLogic::SwitchCommand::execute(), MSPModel_Striping::MovePedestrians::execute(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), libsumo::Helper::findCloserLane(), MSRailSignal::DriveWay::findFlankProtection(), findFoeConflictLane(), libsumo::Simulation::findIntermodalRoute(), findSurroundingVehicles(), flushConflicts(), NBTrafficLightDefinition::forbids(), NBNodeCont::generateNodeClusters(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSPModel_Striping::getArbitraryPath(), MSVehicle::getBackPosition(), MSVehicle::getBackPositionOnLane(), libsumo::Vehicle::getBestLanes(), NBOwnTLDef::getBestPair(), NBRailwayTopologyAnalyzer::getBrokenRailNodes(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), MSRailSignal::getClickableTLLinkID(), GUILane::getColorValue(), libsumo::TrafficLight::getControlledLinks(), MSLane::getCriticalLeader(), NBNodeShapeComputer::getDefaultRadius(), NBTrafficLightDefinition::getDescription(), MSLink::getDescription(), GUIPerson::getDestinationEdgeID(), RODFNet::getDetectorEdge(), libsumo::Lane::getEdgeID(), GUIMEVehicle::getEdgeID(), GUIPerson::getEdgeID(), MSMeanData::getEdgeID(), MSPModel_Remote::getFirstPedestrianLane(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), GUIPerson::getFromEdgeID(), MSCalibrator::getID(), MSRailSignal::LinkInfo::getID(), NBEdge::getID(), libsumo::LaneArea::getLaneID(), libsumo::InductionLoop::getLaneID(), libsumo::Vehicle::getLaneID(), MSParkingArea::getLastFreePosWithReservation(), MSLane::getLastVehicleInformation(), MSVehicle::getLatOffset(), MSLane::getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLane::getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), MSLane::getLinkTo(), MSTLLogicControl::TLSLogicVariants::getLogicInstantiatingOff(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSLane::getOppositePos(), libsumo::Simulation::getParameter(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIMEInductLoop::MyWrapper::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), GUILane::getParameterWindow(), MSLane::getPartialBehind(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), PolygonDynamics::getPolygonID(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), libsumo::Person::getRoadID(), libsumo::Vehicle::getRoadID(), MSLCM_LC2013::getRoundaboutDistBonus(), libsumo::Vehicle::getRouteID(), MSVehicle::getSafeFollowSpeed(), libsumo::Person::getStage(), MSContainer::MSContainerStage_Driving::getStageSummary(), MSPerson::MSPersonStage_Walking::getStageSummary(), MSContainer::MSContainerStage_Tranship::getStageSummary(), MSPerson::MSPersonStage_Driving::getStageSummary(), MSTransportable::Stage_Trip::getStageSummary(), MSPerson::MSPersonStage_Access::getStageSummary(), MSTransportable::Stage_Waiting::getStageSummary(), MSNet::getStoppingPlaceID(), MSLane::getSurroundingVehicles(), MSRailSignal::getTLLinkID(), MSLane::getUpcomingLinks(), getUpstreamVehicles(), MSPModel_Striping::getVehicleObstacles(), getVehiclesOnJunction(), MSTransportable::Stage_Driving::getWaitingDescription(), MSLink::getZipperSpeed(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), MSLane::handleCollisionBetween(), MSVehicle::haveValidStopEdges(), libsumo::POI::highlight(), MSVehicle::ignoreRed(), MSDeterministicHiLevelTrafficLightLogic::init(), MSRailSignal::init(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), MSE2Collector::initAuxiliaries(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), MSEdge::insertVehicle(), MSLane::integrateNewVehicles(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isDestination(), RODFNet::isFalseSource(), MSLane::isInsertionSuccess(), MSVehicle::isLeader(), MESegment::isOpen(), RODFNet::isSource(), NIImporter_VISUM::isSplitEdge(), MSSOTLTrafficLightLogic::isThresholdPassed(), MESegment::jamThresholdForSpeed(), NBNodeShapeComputer::joinSameDirectionEdges(), NBEdgeCont::joinSameNodeConnectingEdges(), MSAbstractLaneChangeModel::laneChangeOutput(), MSE3Collector::leave(), MSE3Collector::leaveFront(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), MSPedestrianPushButton::loadCrossingEdgeMap(), NIImporter_OpenDrive::loadNetwork(), MSPedestrianPushButton::loadPushButtons(), ODDistrictCont::makeDistricts(), MSE2Collector::makeVehicleInfo(), MSSOTLE2Sensors::meanVehiclesSpeed(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), MSPModel_Striping::PState::moveToNextLane(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), MSCalibrator::MSCalibrator(), MSChargingStation::MSChargingStation(), MSDevice_Battery::MSDevice_Battery(), MSE2Collector::MSE2Collector(), NBLoadedTLDef::myCompute(), NIImporter_SUMO::myEndElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), MSPModel_Striping::nextBlocking(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Bluelight::notifyEnter(), MSDevice_Example::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSTriggeredRerouter::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSE2Collector::notifyEnter(), notifyEnter(), MSDevice_Transportable::notifyLeave(), MSDevice_Bluelight::notifyLeave(), MSDevice_Example::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE2Collector::notifyLeave(), notifyLeave(), MSDevice_Bluelight::notifyMove(), MSDevice_Example::notifyMove(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSE2Collector::notifyMove(), notifyMove(), GNETLSEditorFrame::TLSFile::onCmdLoadTLSProgram(), GNETLSEditorFrame::TLSFile::onCmdSaveTLSProgram(), GUIViewTraffic::onGamingClick(), MSLink::opened(), RORouteHandler::openRoute(), RODFNet::idComp::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_Turns(), NLTriggerBuilder::parseAndBuildCalibrator(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSVehicle::planMove(), MSVehicle::planMoveInternal(), MSLane::planMovements(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), AGStreet::print(), processEncounters(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), MSVehicle::processNextStop(), NIXMLNodesHandler::processNodeType(), TraCIServerAPI_Vehicle::processSet(), MEVehicle::processStop(), NIXMLNodesHandler::processTrafficLightDefinitions(), MSDelayBasedTrafficLightLogic::proposeProlongation(), NBNodeCont::pruneClusterFringe(), MSPModel_Striping::PState::PState(), MSOffTrafficLightLogic::rebuildPhase(), NBEdge::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBLoadedSUMOTLDef::reconstructLogic(), MSLink::removeApproaching(), MSVehicle::removePassedDriveItems(), GNEJunction::removeTLSConnections(), NBNodeCont::rename(), GNENet::renameJunction(), RORouteDef::repairCurrentRoute(), GNEJunction::replaceIncomingConnections(), MSVehicle::replaceParkingArea(), MSVehicle::replaceRoute(), MSBaseVehicle::replaceRouteEdges(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NLEdgeControlBuilder::reportCurrentEdgeOrLane(), MSBaseVehicle::reroute(), GUIVehicle::rerouteDRTStop(), MSTriggeredRerouter::rerouteParkingArea(), MSVehicle::rerouteParkingArea(), MSLane::resetManeuverReservation(), MSLane::resetPartialOccupation(), RODFNet::revalidateFlows(), NBRailwayTopologyAnalyzer::reverseEdges(), MSPerson::MSPersonStage_Walking::routeOutput(), MSPerson::MSPersonStage_Driving::routeOutput(), RONet::saveAndRemoveRoutesUntil(), ROVehicle::saveAsXML(), MSTransportableDevice_Routing::saveState(), MSDevice_Routing::saveState(), MSDevice::saveState(), MSDevice_Vehroutes::saveState(), MSDevice_Tripinfo::saveState(), MSBaseVehicle::saveState(), MSLane::saveState(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSLink::setApproaching(), MSTransportable::Stage_Trip::setArrived(), NBNodeCont::setAsTLControlled(), GNEEdge::setAttribute(), MSChargingStation::setChargeDelay(), MSChargingStation::setChargingPower(), NLEdgeControlBuilder::setDefaultStopOffsets(), MSChargingStation::setEfficency(), MSLane::setManeuverReservation(), MSDevice_Battery::setMaximumBatteryCapacity(), NBEdge::setNodeBorder(), NIXMLEdgesHandler::setNodes(), NIImporter_OpenDrive::setNodeSecure(), MSLane::setPartialOccupation(), MSDevice_Battery::setPowerMax(), MSLink::setRequestInformation(), MSTLLogicControl::TLSLogicVariants::setStateInstantiatingOnline(), MSDevice_Battery::setStoppingTreshold(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdge::shiftPositionAtNode(), MSLane::sortManeuverReservations(), IntermodalNetwork< E, L, N, V >::splitEdge(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSStopOut::stopStarted(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MELoop::teleportVehicle(), NGNet::toNB(), MSSOTLTrafficLightLogic::trySwitch(), PolygonDynamics::update(), update(), updateAndWriteOutput(), MSVehicle::updateBestLanes(), MSLCM_SL2015::updateCFRelated(), MSSOTLTrafficLightLogic::updateCTS(), NLEdgeControlBuilder::updateCurrentLaneStopOffsets(), MSVehicle::updateDriveItems(), GNETLSEditorFrame::TLSJunction::updateJunctionDescription(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSSwarmTrafficLightLogic::updateSensitivities(), MSAbstractLaneChangeModel::updateTargetLane(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), NBNodeTypeComputer::validateRailCrossings(), MSPModel_Striping::PState::walk(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), NBParking::write(), MSBatteryExport::write(), MSEmissionExport::write(), MSFCDExport::write(), MSInstantInductLoop::write(), MSLink::writeApproaching(), MSRailSignal::writeBlocks(), NWWriter_DlrNavteq::writeConnectedLanes(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_OpenDrive::writeInternalEdge(), writeInterval(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), MSXMLRawOut::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), NWWriter_SUMO::writeRoundabout(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_DlrNavteq::writeTrafficSignals(), MSFCDExport::writeTransportable(), RODFDetectorCon::writeValidationDetectors(), MSFullExport::writeVehicles(), PointOfInterest::writeXML(), SUMOPolygon::writeXML(), MSRouteProbe::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSE2Collector::writeXMLOutput(), and RONet::~RONet().
|
inlinestaticinherited |
get an identifier for Named-like object which may be Null
Definition at line 70 of file Named.h.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChanger::changeOpposite(), MSVehicle::checkRewindLinkLanes(), DijkstraRouter< E, V, BASE >::compute(), AStarRouter< MSEdge, SUMOVehicle, SUMOAbstractRouterPermissions< MSEdge, SUMOVehicle > >::compute(), NBEdge::computeEdge2Edges(), NBEdge::computeLanes2Edges(), NBOwnTLDef::computeLogicAndConts(), MSLaneChanger::continueChange(), MSLane::detectCollisions(), MSRailSignal::DriveWay::findProtection(), MSCFModel_W99::followSpeed(), MSCFModel_CACC::followSpeed(), MSVehicle::getBackPositionOnLane(), NBOwnTLDef::getBestCombination(), NBOwnTLDef::getBestPair(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), NBEdge::Connection::getDescription(), MSLane::getFollowersOnConsecutive(), GUIVehicle::getLaneID(), MSVehicle::getLatOffset(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getRealLeader(), GUIVehicle::getShadowLaneID(), GUIVehicle::getTargetLaneID(), NBEdge::init(), MSLane::isInsertionSuccess(), MESegment::isOpen(), joinNamedToString(), joinNamedToStringSorting(), MSPModel_Striping::PState::moveToNextLane(), libsumo::Person::moveToXY(), libsumo::Vehicle::moveToXY(), libsumo::Helper::moveToXYMap(), operator<<(), NBEdge::recheckLanes(), MSTriggeredRerouter::rerouteParkingArea(), MSLCM_LC2013::saveBlockerLength(), MSLCM_SL2015::saveBlockerLength(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), toString(), MSLeaderInfo::toString(), MSLeaderDistanceInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), MSVehicle::updateBestLanes(), and MSAbstractLaneChangeModel::updateShadowLane().
|
static |
returns all currently existing SSM devices
Definition at line 186 of file MSDevice_SSM.cpp.
References myInstances.
Referenced by MSNet::writeOutput().
|
inlineinherited |
Returns the lane the reminder works on.
Definition at line 83 of file MSMoveReminder.h.
References MSMoveReminder::myLane.
Referenced by libsumo::LaneArea::getLaneID(), libsumo::InductionLoop::getLaneID(), GUIInstantInductLoop::MyWrapper::getParameterWindow(), GUIE2Collector::MyWrapper::getParameterWindow(), GUIInductLoop::MyWrapper::getParameterWindow(), libsumo::InductionLoop::getTree(), GUIInstantInductLoop::MyWrapper::MyWrapper(), GUIInductLoop::MyWrapper::MyWrapper(), MSMeanData_Amitran::MSLaneMeanDataValues::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSMeanData::MeanDataValues::notifyMove(), libsumo::InductionLoop::storeShape(), and MSMeanData::writeEdge().
|
staticprivate |
Definition at line 3365 of file MSDevice_SSM.cpp.
References AVAILABLE_SSMS, DEFAULT_THRESHOLD_BR, DEFAULT_THRESHOLD_DRAC, DEFAULT_THRESHOLD_PET, DEFAULT_THRESHOLD_SGAP, DEFAULT_THRESHOLD_TGAP, DEFAULT_THRESHOLD_TTC, SUMOTrafficObject::getID(), OptionsCont::getOptions(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), OptionsCont::getString(), StringTokenizer::getVector(), SUMOTrafficObject::getVehicleType(), StringTokenizer::hasNext(), OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), StringTokenizer::next(), SSM_WARN_MEASURES, SSM_WARN_THRESHOLDS, StringUtils::toDouble(), WRITE_ERROR, and WRITE_WARNING.
Referenced by buildVehicleDevices(), and deviceName().
|
inlineinherited |
Definition at line 79 of file MSVehicleDevice.h.
References SUMOVehicle::getNumericalID(), and MSVehicleDevice::myHolder.
|
staticprivate |
Definition at line 3227 of file MSDevice_SSM.cpp.
References SUMOTrafficObject::getID(), OptionsCont::getOptions(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), OptionsCont::getString(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_FILE, and WRITE_WARNING.
Referenced by buildVehicleDevices(), and deviceName().
|
inlinevirtualinherited |
try to retrieve the given parameter from this device. Throw exception for unsupported key
Reimplemented in MSDevice_Routing, MSDevice_ToC, MSDevice_Bluelight, MSDevice_Example, MSDevice_DriverState, MSDevice_Transportable, MSTransportableDevice_Routing, and MSDevice_Battery.
Definition at line 144 of file MSDevice.h.
References MSDevice::deviceName().
|
staticprotectedinherited |
Definition at line 153 of file MSDevice.cpp.
References SUMOTrafficObject::getID(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), OptionsCont::getString(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), Parameterised::knowsParameter(), and WRITE_WARNING.
Referenced by MSDevice_ToC::getAutomatedType(), MSDevice_ToC::getManualType(), and MSDevice::setParameter().
|
static |
Collects all vehicles within range 'range' upstream of the position 'pos' on the edge 'edge' into foeCollector.
Definition at line 3056 of file MSDevice_SSM.cpp.
References MSDevice_SSM::UpstreamScanStartInfo::edge, MSDevice_SSM::FoeInfo::egoConflictLane, MSDevice_SSM::UpstreamScanStartInfo::egoConflictLane, MSDevice_SSM::FoeInfo::egoDistToConflictLane, MSDevice_SSM::UpstreamScanStartInfo::egoDistToConflictLane, gDebugFlag3, MSEdge::getFromJunction(), Named::getID(), MSBaseVehicle::getID(), MSJunction::getIncoming(), MSEdge::getInternalFollowingLengthTo(), MSEdge::getLanes(), MSBaseVehicle::getLength(), MSEdge::getLength(), MSVehicle::getPositionOnLane(), getVehiclesOnJunction(), MSLane::getVehiclesSecure(), MSEdge::isInternal(), MSDevice_SSM::UpstreamScanStartInfo::pos, MSDevice_SSM::UpstreamScanStartInfo::range, MSLane::releaseVehicles(), and SIMTIME.
Referenced by findSurroundingVehicles().
|
static |
Collects all vehicles on the junction into foeCollector.
Definition at line 3152 of file MSDevice_SSM.cpp.
References MSDevice_SSM::FoeInfo::egoConflictLane, MSDevice_SSM::FoeInfo::egoDistToConflictLane, gDebugFlag3, Named::getID(), MSJunction::getInternalLanes(), MSLane::getLinkCont(), MSLane::getVehiclesSecure(), MSLane::releaseVehicles(), and SIMTIME.
Referenced by findSurroundingVehicles(), and getUpstreamVehicles().
|
staticprotectedinherited |
Adds common command options that allow to assign devices to vehicles.
[in] | deviceName | The name of the device type |
[in] | optionsTopic | The options topic into which the options shall be added |
Definition at line 126 of file MSDevice.cpp.
References OptionsCont::addDescription(), OptionsCont::addSynonyme(), and OptionsCont::doRegister().
Referenced by MSDevice_Battery::insertOptions(), MSDevice_Example::insertOptions(), MSDevice_Bluelight::insertOptions(), MSTransportableDevice_FCD::insertOptions(), MSDevice_FCD::insertOptions(), MSDevice_BTreceiver::insertOptions(), MSDevice_BTsender::insertOptions(), MSTransportableDevice_Routing::insertOptions(), MSDevice_DriverState::insertOptions(), MSDevice_Emissions::insertOptions(), MSDevice_Routing::insertOptions(), MSDevice_ToC::insertOptions(), insertOptions(), and MSDevice::setParameter().
|
static |
Inserts MSDevice_SSM-options.
Definition at line 208 of file MSDevice_SSM.cpp.
References OptionsCont::addDescription(), OptionsCont::addOptionSubTopic(), DEFAULT_EXTRA_TIME, DEFAULT_RANGE, OptionsCont::doRegister(), MSDevice::insertDefaultAssignmentOptions(), and toString().
Referenced by MSDevice::insertOptions().
|
virtualinherited |
Loads the state of the device from the given description.
The default implementation does nothing.
[in] | attrs | XML attributes describing the current state |
Reimplemented in MSDevice_Tripinfo, MSDevice_Vehroutes, MSDevice_Routing, and MSTransportableDevice_Routing.
Definition at line 148 of file MSDevice.cpp.
Referenced by MSDevice::generateOutput().
|
staticprivate |
make a string of a double vector and treat a special value as invalid ("NA")
v | vector to be converted to string |
NA | value to be treated as NA |
sep | separator for values in string |
Definition at line 2698 of file MSDevice_SSM.cpp.
References toString().
Referenced by deviceName(), flushGlobalMeasures(), and writeOutConflict().
|
staticprivate |
Definition at line 2707 of file MSDevice_SSM.cpp.
References toString().
|
virtual |
Called whenever the holder enteres a lane.
[in] | veh | The entering vehicle. |
[in] | reason | Reason for leaving the lane |
[in] | enteredLane | The lane entered. |
Reimplemented from MSMoveReminder.
Definition at line 2785 of file MSDevice_SSM.cpp.
References Named::getID(), SUMOTrafficObject::isVehicle(), and UNUSED_PARAMETER.
|
virtual |
Called whenever the holder leaves a lane.
[in] | veh | The leaving vehicle. |
[in] | lastPos | Position on the lane when leaving. |
[in] | reason | Reason for leaving the lane |
[in] | enteredLane | The lane entered. |
Reimplemented from MSMoveReminder.
Definition at line 2798 of file MSDevice_SSM.cpp.
References Named::getID(), SUMOTrafficObject::isVehicle(), and UNUSED_PARAMETER.
|
virtual |
Checks for waiting steps when the vehicle moves.
[in] | veh | Vehicle that notifies. |
[in] | oldPos | Position before move. |
[in] | newPos | Position after move with newSpeed. |
[in] | newSpeed | Moving speed. |
Reimplemented from MSMoveReminder.
Definition at line 2812 of file MSDevice_SSM.cpp.
References Named::getID(), and UNUSED_PARAMETER.
|
inlinevirtualinherited |
Internal notification about the vehicle moves.
Indicator if the reminders is still active for the passed vehicle/parameters. If false, the vehicle will erase this reminder from it's reminder-container.
[in] | veh | Vehicle that asks this reminder. |
[in] | frontOnLane | time the front of the vehicle spent on the lane. |
[in] | timeOnLane | time some part of the vehicle spent on the lane. |
[in] | meanSpeedFrontOnLane | Average speed for the time that the front is on the lane. |
[in] | meanSpeedVehicleOnLane | Average speed for the time that the vehicle is on the lane (with front or back). |
[in] | travelledDistanceFrontOnLane | distance travelled while overlapping with the lane. |
[in] | travelledDistanceVehicleOnLane | distance travelled while front was on the lane. |
[in] | meanLengthOnLane | the average length of the vehicle's part on the lane during the last step (==complete length in meso case) |
Reimplemented in MSMeanData::MeanDataValueTracker, MSDevice_Tripinfo, MSDevice_Transportable, MSMeanData_Net::MSLaneMeanDataValues, MSMeanData_Amitran::MSLaneMeanDataValues, MSMeanData_Harmonoise::MSLaneMeanDataValues, and MSMeanData_Emissions::MSLaneMeanDataValues.
Definition at line 206 of file MSMoveReminder.h.
References UNUSED_PARAMETER.
Referenced by MSMeanData::MeanDataValues::notifyMove(), and MSMoveReminder::updateDetector().
|
private |
Invalidated assignment operator.
|
private |
Finds encounters for which the foe vehicle has disappeared from range. remainingExtraTime is decreased until it reaches zero, which triggers closing the encounter. If an ended encounter is qualified as a conflict, it is transferred to myPastConflicts All vehicles for which an encounter instance already exists (vehicle is already tracked) are removed from 'foes' during processing.
[in] | foes | Foe vehicles that have been found by findSurroundingVehicles() |
[in] | forceClose | whether encounters for which the foe is not in range shall be closed immediately, disregarding the remaining extra time (is requested by resetEncounters()). |
Definition at line 545 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::begin, closeEncounter(), MSDevice_SSM::Encounter::closingRequested, MSDevice_SSM::Encounter::currentType, DEBUG_COND, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, MSDevice_SSM::Encounter::foe, MSDevice_SSM::Encounter::foeID, Named::getID(), MSNet::getInstance(), MSDevice_SSM::Encounter::getRemainingExtraTime(), MSVehicleControl::getVehicle(), MSNet::getVehicleControl(), INVALID, MIN2(), myActiveEncounters, myHolderMS, myOldestActiveEncounterBegin, SIMTIME, and updateEncounter().
Referenced by deviceName(), resetEncounters(), and update().
|
private |
Tests if the SSM values exceed the threshold for qualification as conflict.
Definition at line 633 of file MSDevice_SSM.cpp.
References DEBUG_COND, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::Encounter::foeID, INVALID, MSDevice_SSM::Encounter::maxDRAC, MSDevice_SSM::Encounter::minTTC, myComputeDRAC, myComputePET, myComputeTTC, myHolderMS, myThresholds, MSDevice_SSM::Encounter::PET, SIMTIME, and MSDevice_SSM::Encounter::ConflictPointInfo::value.
Referenced by closeEncounter(), and deviceName().
|
protectedinherited |
Definition at line 86 of file MSMoveReminder.cpp.
References MSMoveReminder::myLastVehicleUpdateValues.
Referenced by MSMoveReminder::getDescription(), MSMeanData_Net::MSLaneMeanDataValues::notifyLeave(), and MSMoveReminder::updateDetector().
|
staticprivate |
Definition at line 3338 of file MSDevice_SSM.cpp.
References OptionsCont::getBool(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_TRAJECTORIES, StringUtils::toBool(), toString(), and WRITE_WARNING.
Referenced by buildVehicleDevices(), and deviceName().
|
private |
Closes all current Encounters and moves conflicts to myPastConflicts,.
Definition at line 537 of file MSDevice_SSM.cpp.
References processEncounters().
Referenced by deviceName(), updateAndWriteOutput(), and ~MSDevice_SSM().
|
virtualinherited |
Saves the state of the device.
The default implementation writes a warning and does nothing.
[in] | out | The OutputDevice to write the information into |
Reimplemented in MSDevice_Tripinfo, MSDevice_Vehroutes, MSDevice_Routing, MSTransportableDevice_Routing, MSDevice_FCD, and MSTransportableDevice_FCD.
Definition at line 142 of file MSDevice.cpp.
References Named::getID(), and WRITE_WARNING.
Referenced by MSDevice::generateOutput().
|
inlineinherited |
Definition at line 224 of file MSMoveReminder.h.
References MSMoveReminder::myDescription.
Referenced by MSMeanData::init(), MEInductLoop::MEInductLoop(), METriggeredCalibrator::METriggeredCalibrator(), and MSCalibrator::MSCalibrator().
|
inlineinherited |
resets the id
[in] | newID | The new id of this object |
Definition at line 85 of file Named.h.
Referenced by Distribution_Parameterized::parse(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdgeCont::remapIDs(), NBNodeCont::rename(), NBEdgeCont::rename(), GNEJunction::setAttribute(), and IntermodalNetwork< E, L, N, V >::splitEdge().
|
inlinevirtualinherited |
try to set the given parameter for this device. Throw exception for unsupported key
Reimplemented in MSDevice_Routing, MSDevice_ToC, MSDevice_Bluelight, MSDevice_Example, MSDevice_DriverState, MSTransportableDevice_Routing, and MSDevice_Battery.
Definition at line 149 of file MSDevice.h.
References MSDevice::deviceName(), MSDevice::equippedByDefaultAssignmentOptions(), MSDevice::getBoolParam(), MSDevice::getFloatParam(), MSDevice::getStringParam(), MSDevice::insertDefaultAssignmentOptions(), and UNUSED_PARAMETER.
|
private |
Closes encounters, whose duration exceeds the maximal encounter length. If it is classified as conflict, the encounter is saved. In any case, a new active encounter is created holding the trailing part (of length myOverlapTime) of the original.
Referenced by deviceName().
|
staticprivate |
convert SUMO-positions to geo coordinates (in place)
Definition at line 2603 of file MSDevice_SSM.cpp.
References GeoConvHelper::cartesian2geo(), and GeoConvHelper::getFinal().
Referenced by flushGlobalMeasures(), toGeo(), and writeOutConflict().
|
staticprivate |
convert SUMO-positions to geo coordinates (in place)
Definition at line 2608 of file MSDevice_SSM.cpp.
References toGeo().
|
inlinestatic |
Definition at line 121 of file MSDevice_SSM.h.
References ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_COLLISION, ENCOUNTER_TYPE_CROSSING, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, ENCOUNTER_TYPE_FOLLOWING_PASSED, ENCOUNTER_TYPE_MERGING, ENCOUNTER_TYPE_MERGING_ADJACENT, ENCOUNTER_TYPE_MERGING_FOLLOWER, ENCOUNTER_TYPE_MERGING_LEADER, ENCOUNTER_TYPE_MERGING_PASSED, ENCOUNTER_TYPE_NOCONFLICT_AHEAD, ENCOUNTER_TYPE_ON_ADJACENT_LANES, and ENCOUNTER_TYPE_ONCOMING.
Referenced by MSDevice_SSM::Encounter::add(), computeDRAC(), computeSSMs(), determinePET(), determineTTCandDRAC(), estimateConflictTimes(), findFoeConflictLane(), findSurroundingVehicles(), flushGlobalMeasures(), getExtraTime(), insertOptions(), makeStringWithNAs(), requestsTrajectories(), useGeoCoords(), and writeOutConflict().
|
private |
Definition at line 413 of file MSDevice_SSM.cpp.
References computeGlobalMeasures(), createEncounters(), DEBUG_COND, findSurroundingVehicles(), Named::getID(), myActiveEncounters, myHolderMS, myPastConflicts, myRange, processEncounters(), and SIMTIME.
Referenced by updateAndWriteOutput().
void MSDevice_SSM::updateAndWriteOutput | ( | ) |
This is called once per time step in MSNet::writeOutput() and collects the surrounding vehicles, updates information on encounters and flushes the encounters qualified as conflicts (.
Definition at line 394 of file MSDevice_SSM.cpp.
References DEBUG_COND, flushConflicts(), Named::getID(), SUMOVehicle::isOnRoad(), MSVehicleDevice::myHolder, myHolderMS, resetEncounters(), SIMTIME, and update().
Referenced by MSNet::writeOutput().
|
inherited |
Definition at line 44 of file MSMoveReminder.cpp.
References MSMoveReminder::myLastVehicleUpdateValues, MSMoveReminder::notifyMoveInternal(), MSMoveReminder::removeFromVehicleUpdateValues(), and STEPS2TIME.
Referenced by MSMoveReminder::notifyLeave(), and MEVehicle::updateDetectorForWriting().
Updates the encounter (adds a new trajectory point).
Definition at line 703 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::add(), checkConflictEntryAndExit(), classifyEncounter(), computeSSMs(), MSDevice_SSM::EncounterApproachInfo::conflictPoint, MSDevice_SSM::Encounter::currentType, DEBUG_COND_ENCOUNTER, determineConflictPoint(), MSDevice_SSM::EncounterApproachInfo::drac, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::EncounterApproachInfo::encounter, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_NOCONFLICT_AHEAD, estimateConflictTimes(), MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::Encounter::foeID, MSVehicle::getPosition(), MSVehicle::getVelocityVector(), myExtraTime, MSDevice_SSM::EncounterApproachInfo::pet, MSDevice_SSM::Encounter::resetExtraTime(), SIMTIME, MSDevice_SSM::Encounter::size(), MSDevice_SSM::EncounterApproachInfo::ttc, MSDevice_SSM::EncounterApproachInfo::type, and updatePassedEncounter().
Referenced by createEncounters(), deviceName(), and processEncounters().
|
private |
Updates an encounter, which was classified as ENCOUNTER_TYPE_NOCONFLICT_AHEAD this may be the case because the foe is out of the detection range but the encounter is still in extra time (in this case foeInfo==0), or because the foe does not head for a lane conflicting with the route of the ego vehicle. It is also used for an ongoing crossing conflict, where only the covered distances are traced until the situation is over. (A crossing conflict is ongoing, if one vehicle entered the conflict area) Writes the type of encounter which is determined for the current state into eInfo. And if appropriate some information concerning vehicles positions in relation to a crossed crossing point (for PET calculation).
Definition at line 1635 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::closingRequested, MSDevice_SSM::Encounter::countDownExtraTime(), DEBUG_COND, DEBUG_COND_ENCOUNTER, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::Encounter::egoDistsToConflict, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::EncounterApproachInfo::egoLeftConflict, ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_COLLISION, ENCOUNTER_TYPE_CROSSING_FOLLOWER, ENCOUNTER_TYPE_CROSSING_LEADER, ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA, ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA, ENCOUNTER_TYPE_FOLLOWING_FOLLOWER, ENCOUNTER_TYPE_FOLLOWING_LEADER, ENCOUNTER_TYPE_FOLLOWING_PASSED, ENCOUNTER_TYPE_MERGING_FOLLOWER, ENCOUNTER_TYPE_MERGING_LEADER, ENCOUNTER_TYPE_MERGING_PASSED, ENCOUNTER_TYPE_NOCONFLICT_AHEAD, MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::foeConflictExitDist, MSDevice_SSM::Encounter::foeDistsToConflict, MSDevice_SSM::Encounter::foeID, MSDevice_SSM::EncounterApproachInfo::foeLeftConflict, MSVehicle::getLastStepDist(), MSBaseVehicle::getLength(), MSDevice_SSM::Encounter::getRemainingExtraTime(), MSBaseVehicle::getWidth(), INVALID, myExtraTime, myHolderMS, MSDevice_SSM::Encounter::resetExtraTime(), SIMTIME, TS, MSDevice_SSM::EncounterApproachInfo::type, and MSDevice_SSM::Encounter::typeSpan.
Referenced by deviceName(), and updateEncounter().
|
staticprivate |
Definition at line 3253 of file MSDevice_SSM.cpp.
References OptionsCont::getBool(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), Parameterised::getParameter(), SUMOVehicle::getParameter(), MSVehicleType::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_GEO, StringUtils::toBool(), toString(), and WRITE_WARNING.
Referenced by buildVehicleDevices(), and deviceName().
|
private |
Definition at line 2615 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::begin, OutputDevice::closeTag(), MSDevice_SSM::Encounter::conflictPointSpan, DEBUG_COND, MSDevice_SSM::Encounter::DRACspan, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::Encounter::egoTrajectory, MSDevice_SSM::Encounter::end, MSDevice_SSM::Encounter::foeID, MSDevice_SSM::Encounter::foeTrajectory, gPrecision, gPrecisionGeo, INVALID, makeStringWithNAs(), MSDevice_SSM::Encounter::maxDRAC, MSDevice_SSM::Encounter::minTTC, myComputeDRAC, myComputePET, myComputeTTC, myHolderMS, myOutputFile, mySaveTrajectories, myUseGeoCoords, OutputDevice::openTag(), MSDevice_SSM::Encounter::PET, MSDevice_SSM::Encounter::ConflictPointInfo::pos, SIMTIME, MSDevice_SSM::Encounter::ConflictPointInfo::time, MSDevice_SSM::Encounter::timeSpan, toGeo(), toString(), MSDevice_SSM::Encounter::TTCspan, MSDevice_SSM::Encounter::ConflictPointInfo::type, MSDevice_SSM::EncounterApproachInfo::type, MSDevice_SSM::Encounter::typeSpan, MSDevice_SSM::Encounter::Trajectory::v, MSDevice_SSM::Encounter::ConflictPointInfo::value, OutputDevice::writeAttr(), and MSDevice_SSM::Encounter::Trajectory::x.
Referenced by flushConflicts().
|
staticprivate |
remember which files were created already (don't duplicate xml root-elements)
Definition at line 743 of file MSDevice_SSM.h.
Referenced by cleanup(), MSDevice_SSM(), and operator<<().
|
staticprivate |
bitset storing info whether warning has already been issued about unset parameter (warn only once!)
Definition at line 747 of file MSDevice_SSM.h.
Referenced by getDetectionRange(), getExtraTime(), getMeasuresAndThresholds(), getOutputFilename(), operator<<(), requestsTrajectories(), and useGeoCoords().
|
private |
Definition at line 713 of file MSDevice_SSM.h.
Referenced by createEncounters(), MSDevice_SSM(), processEncounters(), and update().
|
private |
All values for brake rate.
Definition at line 726 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 705 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().
|
private |
Definition at line 705 of file MSDevice_SSM.h.
Referenced by computeSSMs(), determineTTCandDRAC(), MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().
|
private |
Definition at line 705 of file MSDevice_SSM.h.
Referenced by MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().
|
private |
Definition at line 705 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().
|
private |
Definition at line 705 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().
|
private |
Flags for switching on / off comutation of different SSMs, derived from myMeasures.
Definition at line 705 of file MSDevice_SSM.h.
Referenced by computeSSMs(), determineTTCandDRAC(), MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().
|
protectedinherited |
a description of this moveReminder
Definition at line 240 of file MSMoveReminder.h.
Referenced by MSMoveReminder::getDescription(), and MSMoveReminder::setDescription().
|
private |
Extra time in seconds to be logged after a conflict is over.
Definition at line 701 of file MSDevice_SSM.h.
Referenced by createEncounters(), MSDevice_SSM(), updateEncounter(), and updatePassedEncounter().
|
private |
Definition at line 724 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
protectedinherited |
The vehicle that stores the device.
Definition at line 85 of file MSVehicleDevice.h.
Referenced by MSDevice_Vehroutes::addRoute(), MSDevice_Transportable::addTransportable(), MSDevice_ToC::awarenessRecoveryStep(), MSDevice_ToC::checkDynamicToC(), MSDevice_ToC::deactivateDeliberateLCs(), findFoeConflictLane(), MSDevice_Tripinfo::generateOutput(), MSDevice_Tripinfo::generateOutputForUnfinished(), MSVehicleDevice::getHolder(), MSVehicleDevice::getNumericalID(), MSDevice_ToC::getParameter(), MSDevice_Routing::getParameter(), MSDevice_ToC::MRMExecutionStep(), MSDevice_Vehroutes::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Routing::preInsertionReroute(), MSDevice_Transportable::removeTransportable(), MSDevice_ToC::requestToC(), MSDevice_Routing::reroute(), MSDevice_ToC::resetDeliberateLCs(), MSDevice_Routing::setParameter(), MSDevice_ToC::setVehicleColor(), MSDevice_ToC::switchHolderType(), MSDevice_ToC::ToCPreparationStep(), MSDevice_ToC::triggerDownwardToC(), MSDevice_ToC::triggerMRM(), MSDevice_ToC::triggerUpwardToC(), updateAndWriteOutput(), MSDevice_Vehroutes::writeOutput(), MSDevice_ToC::writeOutput(), MSDevice_Vehroutes::writeXMLRoute(), MSDevice_Transportable::~MSDevice_Transportable(), and MSDevice_Vehroutes::~MSDevice_Vehroutes().
|
private |
Definition at line 706 of file MSDevice_SSM.h.
Referenced by closeEncounter(), computeGlobalMeasures(), computeSSMs(), computeTTC(), createEncounters(), determinePET(), determineTTCandDRAC(), findFoeConflictLane(), flushConflicts(), flushGlobalMeasures(), MSDevice_SSM(), processEncounters(), qualifiesAsConflict(), update(), updateAndWriteOutput(), updatePassedEncounter(), and writeOutConflict().
|
protectedinherited |
The name of the object.
Definition at line 134 of file Named.h.
Referenced by MSE2Collector::addDetectorToLanes(), RODFDetector::buildDestinationDistribution(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), MSSOTLTrafficLightLogic::checkPhases(), NBNode::computeNodeShape(), MSE2Collector::detectorUpdate(), GNEPoly::getAttribute(), GNEPOI::getAttribute(), MSLane::getCanonicalPredecessorLane(), MSLane::getCanonicalSuccessorLane(), NBEdge::getLaneID(), ROEdge::getStoredEffort(), MSLane::getSurroundingVehicles(), ROEdge::getTravelTime(), MSDelayBasedTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), NBEdge::init(), MSLane::isInsertionSuccess(), NBNode::NBNode(), MSE2Collector::notifyEnter(), MSE2Collector::notifyLeave(), MSE2Collector::notifyMove(), MSMeanData::openInterval(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), MSSOTLTrafficLightLogic::setToATargetPhase(), NBEdge::splitGeometry(), Distribution_Parameterized::toStr(), MSChargingStation::writeChargingStationOutput(), RODFDetector::writeEmitterDefinition(), RODFDetector::writeSingleSpeedTrigger(), MEInductLoop::writeXMLOutput(), and MSE3Collector::writeXMLOutput().
|
staticprivate |
All currently existing SSM devices.
Definition at line 61 of file MSDevice_SSM.h.
Referenced by cleanup(), getInstances(), MSDevice_SSM(), operator<<(), and ~MSDevice_SSM().
|
protectedinherited |
Lane on which the reminder works.
Definition at line 238 of file MSMoveReminder.h.
Referenced by MSE2Collector::getEstimatedCurrentVehicleNumber(), MSE2Collector::getEstimateQueueLength(), MSMoveReminder::getLane(), MSMoveReminder::MSMoveReminder(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSInductLoop::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSE2Collector::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSE2Collector::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSE2Collector::notifyMove(), and MSMeanData::MeanDataValueTracker::reset().
|
private |
Extremal values for the global measures (as <<<time, Position>, value>, [leaderID]>-pairs)
Definition at line 733 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 734 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 735 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
begin time of the oldest active encounter
Definition at line 715 of file MSDevice_SSM.h.
Referenced by createEncounters(), flushConflicts(), and processEncounters().
|
private |
Output device.
Definition at line 740 of file MSDevice_SSM.h.
Referenced by flushGlobalMeasures(), MSDevice_SSM(), and writeOutConflict().
|
private |
Past encounters that where qualified as conflicts and are not yet flushed to the output file.
Definition at line 717 of file MSDevice_SSM.h.
Referenced by closeEncounter(), flushConflicts(), MSDevice_SSM(), and update().
|
private |
Detection range. For vehicles closer than this distance from the ego vehicle, SSMs are traced.
Definition at line 699 of file MSDevice_SSM.h.
Referenced by findFoeConflictLane(), MSDevice_SSM(), and update().
|
private |
This determines whether the whole trajectories of the vehicles (position, speed, ssms) shall be saved in the ssm-output or only the most critical value shall be reported.
Definition at line 697 of file MSDevice_SSM.h.
Referenced by MSDevice_SSM(), and writeOutConflict().
|
private |
All values for space gap.
Definition at line 728 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
All values for time gap.
Definition at line 730 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 694 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), MSDevice_SSM(), and qualifiesAsConflict().
|
private |
Whether to use the original coordinate system for output.
Definition at line 703 of file MSDevice_SSM.h.
Referenced by flushGlobalMeasures(), MSDevice_SSM(), and writeOutConflict().