![]() |
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 |
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... | |
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 std::string | encounterToString (EncounterType type) |
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 MSLane * > &seenLanes, const std::set< const MSJunction * > &routeJunctions) |
Collects all vehicles within range 'range' upstream of the position 'pos' on the edge 'edge' into foeCollector. More... | |
static void | getVehiclesOnJunction (const MSJunction *, const MSLane *egoJunctionLane, double egoDistToConflictLane, const MSLane *const egoConflictLane, FoeInfoMap &foeCollector, std::set< const MSLane * > &seenLanes) |
Collects all vehicles on the junction into foeCollector. More... | |
static void | insertOptions (OptionsCont &oc) |
Inserts MSDevice_SSM-options. More... | |
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 (const MSDevice_SSM &) | |
Invalidated copy constructor. 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 & | 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 (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 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 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 | |
std::map< SUMOTrafficObject *, std::pair< SUMOTime, double > > | myLastVehicleUpdateValues |
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::mt19937 | myEquipmentRNG |
A random number generator used to choose from vtype/route distributions and computing the speed factors. More... | |
static std::map< std::string, std::set< std::string > > | myExplicitIDs |
vehicles which explicitly carry a device, sorted by device, first 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 56 of file MSDevice_SSM.h.
|
private |
Definition at line 353 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.
Different types of encounters corresponding to relative positions of the vehicles. The name describes the type from the ego perspective.
Definition at line 65 of file MSDevice_SSM.h.
|
inherited |
Definition of a vehicle state.
Definition at line 91 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 753 of file MSDevice_SSM.h.
MSDevice_SSM::~MSDevice_SSM | ( | ) |
Destructor.
Definition at line 2775 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 2720 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().
|
private |
Invalidated copy constructor.
|
inlineinherited |
Adds this object to the given container.
[in,filled] | cont The container to add this item to |
Definition at line 126 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 |
[filled] | into The vector to store the built device in |
Definition at line 112 of file MSDevice.cpp.
References MSTransportableDevice_Routing::buildDevices(), and MSTransportableDevice_FCD::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 |
[filled] | into The vector to store the built device in |
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.
[in/out] | eInfo Info structure for the current state of the encounter. |
Definition at line 1492 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::currentType, 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 updateEncounter().
|
staticinherited |
check device-specific options
[filled] | oc The options container with the user-defined 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. |
[in/out] | eInfo Info structure for the current state of the encounter (provides a pointer to the encounter). |
Definition at line 1798 of file MSDevice_SSM.cpp.
References 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(), MSBaseVehicle::getID(), Named::getID(), MSLane::getIncomingLanes(), MSLink::getInternalLaneBefore(), MSLink::getInternalLengthsAfter(), MSLink::getLane(), MSVehicle::getLane(), MSLink::getLaneBefore(), MSVehicle::getLaneChangeModel(), MSVehicle::getLateralPositionOnLane(), MSBaseVehicle::getLength(), MSLane::getLength(), MSLink::getLengthsBeforeCrossing(), MSLane::getLinkCont(), MSVehicle::getPositionOnLane(), MSLane::getShape(), MSEdge::getToJunction(), MSBaseVehicle::getVehicleType(), MSLink::getViaLane(), MSBaseVehicle::getWidth(), MSLane::getWidth(), MSVehicleType::getWidth(), INVALID, MSLane::isInternal(), MSLink::isInternalJunctionLink(), MSAbstractLaneChangeModel::isOpposite(), M_PI, PositionVector::rotationAtOffset(), and MSDevice_SSM::Encounter::typeSpan.
Referenced by 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(), MSDevice_Tripinfo::cleanup(), and MSRoutingEngine::cleanup().
Referenced by MSNet::clearAll().
|
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 processEncounters().
|
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::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().
|
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(), and determineTTCandDRAC().
|
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 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 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().
|
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 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.
[in/out] | eInfo Info structure for the current state of the encounter. |
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 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, encounterToString(), 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(), MSDevice_SSM::EncounterApproachInfo::type, MSDevice_SSM::Encounter::typeSpan, and MSDevice_SSM::Encounter::ConflictPointInfo::value.
Referenced by computeSSMs().
|
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().
|
inlinevirtual |
return the name for this type of device
Implements MSDevice.
Definition at line 478 of file MSDevice_SSM.h.
Referenced by getParameter(), and setParameter().
|
inlinestatic |
Definition at line 120 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 determinePET(), and estimateConflictTimes().
|
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 203 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_Routing::buildDevices(), MSTransportableDevice_FCD::buildDevices(), MSDevice_Battery::buildVehicleDevices(), MSDevice_Bluelight::buildVehicleDevices(), MSDevice_BTreceiver::buildVehicleDevices(), MSDevice_BTsender::buildVehicleDevices(), MSDevice_DriverState::buildVehicleDevices(), MSDevice_Emissions::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice_FCD::buildVehicleDevices(), MSDevice_Routing::buildVehicleDevices(), buildVehicleDevices(), MSDevice_ToC::buildVehicleDevices(), and MSDevice_Tripinfo::buildVehicleDevices().
|
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)
[in/out] | eInfo Info structure for the current state of the encounter. |
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, encounterToString(), 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 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 2394 of file MSDevice_SSM.cpp.
References DEBUG_COND, MSRoute::end(), MSVehicle::getBestLanesContinuation(), MSBaseVehicle::getCurrentRouteEdge(), SUMOVehicle::getCurrentRouteEdge(), MSBaseVehicle::getEdge(), MSLane::getEdge(), SUMOTrafficObject::getEdge(), MSBaseVehicle::getID(), Named::getID(), MSLink::getInternalLengthsAfter(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getLinkTo(), MSEdge::getOppositeEdge(), MSVehicle::getPositionOnLane(), MSBaseVehicle::getRoute(), SUMOVehicle::getRoute(), MSEdge::getToJunction(), MSLink::getViaLane(), MSLane::isInternal(), MSAbstractLaneChangeModel::isOpposite(), MSVehicleDevice::myHolder, myHolderMS, myRange, SIMTIME, and toString().
Referenced by classifyEncounter().
|
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. |
[in/out] | foeCollector container for all collected vehicles |
Definition at line 2825 of file MSDevice_SSM.cpp.
References DEBUG_COND_FIND, gDebugFlag3, MSVehicle::getBestLanesContinuation(), MSLane::getEdge(), MSEdge::getFromJunction(), MSBaseVehicle::getID(), Named::getID(), MSJunction::getIncoming(), MSLink::getInternalLengthsAfter(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSBaseVehicle::getLength(), MSEdge::getLength(), MSLane::getLength(), MSLink::getLength(), MSLane::getLinkCont(), MSLane::getLinkTo(), MSLane::getOpposite(), MSJunction::getOutgoing(), 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 2528 of file MSDevice_SSM.cpp.
References MSDevice_SSM::Encounter::begin, DEBUG_COND, Named::getID(), INVALID, myHolderMS, myOldestActiveEncounterBegin, myPastConflicts, SIMTIME, and writeOutConflict().
Referenced by updateAndWriteOutput(), and ~MSDevice_SSM().
|
private |
Write out all non-encounter specific measures as headways and braking rates.
Definition at line 2550 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 ~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 3330 of file MSDevice_SSM.cpp.
|
staticprotectedinherited |
Definition at line 219 of file MSDevice.cpp.
References OptionsCont::getBool(), SUMOTrafficObject::getID(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), Parameterised::knowsParameter(), StringUtils::toBool(), and WRITE_WARNING.
Referenced by MSDevice_ToC::buildVehicleDevices().
|
inlineinherited |
Definition at line 230 of file MSMoveReminder.h.
References MSMoveReminder::myDescription.
|
staticprivate |
Definition at line 3393 of file MSDevice_SSM.cpp.
References OptionsCont::getFloat(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), SUMOTrafficObject::getVehicleType(), INVALID, OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_RANGE, StringUtils::toDouble(), and WRITE_WARNING.
Referenced by buildVehicleDevices().
|
inlinestaticinherited |
Definition at line 90 of file MSDevice.h.
References MSDevice::myEquipmentRNG.
Referenced by NLBuilder::initRandomness(), MSStateHandler::myStartElement(), and MSStateHandler::saveRNGs().
|
staticprivate |
Definition at line 3420 of file MSDevice_SSM.cpp.
References DEFAULT_EXTRA_TIME, OptionsCont::getFloat(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), SUMOTrafficObject::getVehicleType(), INVALID, OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_EXTRATIME, StringUtils::toDouble(), toString(), and WRITE_WARNING.
Referenced by buildVehicleDevices().
|
staticprotectedinherited |
Definition at line 186 of file MSDevice.cpp.
References OptionsCont::getFloat(), SUMOTrafficObject::getID(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), Parameterised::knowsParameter(), StringUtils::toDouble(), and WRITE_WARNING.
Referenced by MSDevice_ToC::buildVehicleDevices(), MSDevice_ToC::getDynamicMRMProbability(), MSDevice_DriverState::getErrorNoiseIntensityCoefficient(), MSDevice_DriverState::getErrorTimeScaleCoefficient(), MSDevice_DriverState::getHeadwayChangePerceptionThreshold(), MSDevice_DriverState::getHeadwayErrorCoefficient(), MSDevice_DriverState::getInitialAwareness(), MSDevice_DriverState::getMaximalReactionTime(), MSDevice_DriverState::getMinAwareness(), MSDevice_ToC::getOpenGapParams(), MSDevice_DriverState::getSpeedDifferenceChangePerceptionThreshold(), and MSDevice_DriverState::getSpeedDifferenceErrorCoefficient().
|
inlineinherited |
Returns the vehicle that holds this device.
Definition at line 74 of file MSVehicleDevice.h.
References MSVehicleDevice::myHolder.
Referenced by MSChargingStation::addChargeValueForOutput().
|
inlineinherited |
Returns the id.
Definition at line 76 of file Named.h.
References Named::myID.
Referenced by MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaders(), LaneStoringVisitor::add(), Named::StoringVisitor::add(), MSVehicleTransfer::add(), MSPModel_Striping::add(), MSPModel_Remote::add(), PCPolyContainer::add(), ShapeContainer::add(), MSDetectorControl::add(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), MSLane::addApproachingLane(), NLHandler::addConnection(), NBLoadedSUMOTLDef::addConnection(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSTLLogicControl::TLSLogicVariants::addLogic(), MSLane::addNeigh(), RONet::addNode(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), RONet::addRouteDef(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), ROVehicle::addStop(), MSVehicle::addStop(), MSNet::addStoppingPlace(), MSVehicle::addTraciStop(), MSVehicle::addTraciStopAtStoppingPlace(), AGActivityTripWriter::addTrip(), NIXMLConnectionsHandler::addWalkingArea(), libsumo::Helper::applySubscriptionFilters(), GUITrafficLightLogicWrapper::begin2TrackPhases(), 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(), MSRailSignal::LinkInfo::buildDriveWay(), NLDetectorBuilder::buildE2Detector(), RODFNet::buildEdgeFlowMap(), GNETLSEditorFrame::buildIinternalLanes(), NBEdge::buildInnerEdges(), NIVissimEdge::buildNBEdge(), NGEdge::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(), IntermodalRouter< E, L, N, V >::compute(), ROJTRRouter::compute(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), NBNodeTypeComputer::computeNodeTypes(), RODFNet::computeRoutesFor(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), MSVehicle::Manoeuvre::configureEntryManoeuvre(), MSVehicle::Manoeuvre::configureExitManoeuvre(), NGNet::connect(), NBOwnTLDef::corridorLike(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSSOTLE2Sensors::countVehicles(), createEncounters(), GUINet::createTLWrapper(), MSActuatedTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSLane::detectPedestrianJunctionCollision(), NIVissimDistrictConnection::dict_BuildDistrictNodes(), NIVissimDistrictConnection::dict_BuildDistricts(), MSE3Collector::enter(), MSVehicle::enterLaneAtMove(), MSVehicle::Manoeuvre::entryManoeuvreIsComplete(), METriggeredCalibrator::execute(), Command_SaveTLSProgram::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitches::execute(), Command_SaveTLSSwitchStates::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSCalibrator::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(), GUITrafficLightLogicWrapper::getActiveTLLogic(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSPModel_Striping::getArbitraryPath(), MSVehicle::getBackPosition(), MSVehicle::getBackPositionOnLane(), libsumo::Vehicle::getBestLanes(), NBOwnTLDef::getBestPair(), NBRailwayTopologyAnalyzer::getBrokenRailNodes(), MSLane::getCanonicalPredecessorLane(), MSLane::getCanonicalSuccessorLane(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), MSRailSignal::getClickableTLLinkID(), libsumo::TrafficLight::getControlledLinks(), MSLane::getCriticalLeader(), NBNodeShapeComputer::getDefaultRadius(), MSLink::getDescription(), NBTrafficLightDefinition::getDescription(), GUIPerson::getDestinationEdgeID(), RODFNet::getDetectorEdge(), MSActuatedTrafficLightLogic::getDetectorPriority(), GUIPerson::getEdgeID(), GUIMEVehicle::getEdgeID(), MSMeanData::getEdgeID(), libsumo::Lane::getEdgeID(), MSPModel_Remote::getFirstPedestrianLane(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), GUIPerson::getFromEdgeID(), MSCalibrator::getID(), NBEdge::getID(), libsumo::InductionLoop::getLaneID(), libsumo::LaneArea::getLaneID(), libsumo::Vehicle::getLaneID(), MSParkingArea::getLastFreePosWithReservation(), MSLane::getLastVehicleInformation(), MSVehicle::getLatOffset(), MSLane::getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLane::getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), MSLane::getLinkTo(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), GNEDialogACChooser::getObjectName(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSLane::getOppositePos(), libsumo::Simulation::getParameter(), GUILane::getParameterWindow(), GUITrafficLightLogicWrapper::getParameterWindow(), GUILane::getParentName(), 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(), MSContainer::MSContainerStage_Tranship::getStageSummary(), MSTransportable::Stage_Trip::getStageSummary(), MSTransportable::Stage_Waiting::getStageSummary(), MSPerson::MSPersonStage_Walking::getStageSummary(), MSPerson::MSPersonStage_Driving::getStageSummary(), MSNet::getStoppingPlaceID(), MSLane::getSurroundingVehicles(), MSActuatedTrafficLightLogic::getTarget(), MSRailSignal::getTLLinkID(), MSLane::getUpcomingLinks(), getUpstreamVehicles(), MSPModel_Striping::getVehicleObstacles(), getVehiclesOnJunction(), MSEdge::getWaitingVehicle(), MSLink::getZipperSpeed(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), MSLane::handleCollisionBetween(), MSVehicle::haveValidStopEdges(), libsumo::POI::highlight(), MSVehicle::ignoreRed(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSDeterministicHiLevelTrafficLightLogic::init(), MSRailSignal::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSE2Collector::initAuxiliaries(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::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(), 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(), MSE2Collector::notifyEnter(), MSDevice_Bluelight::notifyEnter(), MSDevice_Example::notifyEnter(), notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSTriggeredRerouter::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Bluelight::notifyLeave(), MSDevice_Example::notifyLeave(), notifyLeave(), MSDevice_Transportable::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSE2Collector::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Bluelight::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_Example::notifyMove(), notifyMove(), MSE2Collector::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_ToC::notifyMove(), GNETLSEditorFrame::onCmdDefSwitch(), GUIViewTraffic::onGamingClick(), MSLink::opened(), RORouteHandler::openRoute(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), RODFNet::idComp::operator()(), NIImporter_VISUM::parse_Connectors_legacy(), 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(), MSDevice_ToC::requestToC(), MSBaseVehicle::reroute(), MSRailSignal::LinkInfo::reroute(), GUIVehicle::rerouteDRTStop(), MSTriggeredRerouter::rerouteParkingArea(), MSVehicle::rerouteParkingArea(), MSLane::resetManeuverReservation(), MSLane::resetPartialOccupation(), RODFNet::revalidateFlows(), NBRailwayTopologyAnalyzer::reverseEdges(), RONet::saveAndRemoveRoutesUntil(), ROPerson::Ride::saveAsXML(), ROVehicle::saveAsXML(), MSBaseVehicle::saveState(), MSLane::saveState(), MSDevice::saveState(), MSDevice_Routing::saveState(), MSDevice_Tripinfo::saveState(), MSDevice_Vehroutes::saveState(), MSTransportableDevice_Routing::saveState(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSLink::setApproaching(), 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(), MSDevice_Battery::setStoppingTreshold(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), NBEdge::shiftPositionAtNode(), MSLane::sortManeuverReservations(), IntermodalNetwork< E, L, N, V >::splitEdge(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSStopOut::stopStarted(), MSLane::succLinkSec(), GUITrafficLightLogicWrapper::switchTLSLogic(), MELoop::teleportVehicle(), MSDevice_ToC::triggerDownwardToC(), MSDevice_ToC::triggerMRM(), MSDevice_ToC::triggerUpwardToC(), MSSOTLTrafficLightLogic::trySwitch(), update(), PolygonDynamics::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(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSInstantInductLoop::write(), NBParking::write(), MSFCDExport::write(), MSBatteryExport::write(), MSEmissionExport::write(), MSLink::writeApproaching(), MSRailSignal::writeBlocks(), NWWriter_DlrNavteq::writeConnectedLanes(), NWWriter_SUMO::writeDistrict(), MSMeanData::writeEdge(), NWWriter_SUMO::writeEdge(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_OpenDrive::writeInternalEdge(), writeInterval(), NWWriter_SUMO::writeJunction(), MSFullExport::writeLane(), MSQueueExport::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(), SUMOPolygon::writeXML(), PointOfInterest::writeXML(), MSE2Collector::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSRouteProbe::writeXMLOutput(), and RONet::~RONet().
|
inlinestaticinherited |
get an identifier for Named-like object which may be Null
Definition at line 69 of file Named.h.
Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChanger::changeOpposite(), MSVehicle::checkRewindLinkLanes(), AStarRouter< E, V >::compute(), DijkstraRouter< E, V >::compute(), NBEdge::computeEdge2Edges(), NBEdge::computeLanes2Edges(), NBOwnTLDef::computeLogicAndConts(), MSLaneChanger::continueChange(), MSLane::detectCollisions(), MSRailSignal::DriveWay::findProtection(), NBPTLineCont::findWay(), MSCFModel_CACC::followSpeed(), MSCFModel_W99::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_SL2015::saveBlockerLength(), MSLCM_LC2013::saveBlockerLength(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), MSLeaderInfo::toString(), MSLeaderDistanceInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), 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 85 of file MSMoveReminder.h.
References MSMoveReminder::myLane.
Referenced by libsumo::InductionLoop::getLaneID(), libsumo::LaneArea::getLaneID(), libsumo::InductionLoop::getTree(), GUIInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), MSDevice_Tripinfo::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), libsumo::InductionLoop::storeShape(), and MSMeanData::writeEdge().
|
staticprivate |
Definition at line 3478 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(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::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().
|
inlineinherited |
Definition at line 78 of file MSVehicleDevice.h.
References SUMOVehicle::getNumericalID(), and MSVehicleDevice::myHolder.
|
staticprivate |
Definition at line 3340 of file MSDevice_SSM.cpp.
References SUMOTrafficObject::getID(), OptionsCont::getOptions(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), OptionsCont::getString(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_FILE, and WRITE_WARNING.
Referenced by buildVehicleDevices().
|
virtual |
try to retrieve the given parameter from this device. Throw exception for unsupported key
Reimplemented from MSDevice.
Definition at line 3581 of file MSDevice_SSM.cpp.
References deviceName(), INVALID_DOUBLE, MAX2(), MIN2(), myActiveEncounters, myComputeDRAC, myComputePET, myComputeTTC, and toString().
|
staticprotectedinherited |
Definition at line 153 of file MSDevice.cpp.
References SUMOTrafficObject::getID(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), OptionsCont::getString(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), Parameterised::knowsParameter(), and WRITE_WARNING.
Referenced by MSDevice_ToC::buildVehicleDevices().
|
static |
Collects all vehicles within range 'range' upstream of the position 'pos' on the edge 'edge' into foeCollector.
Definition at line 3100 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(), MSBaseVehicle::getID(), Named::getID(), MSJunction::getIncoming(), MSEdge::getInternalFollowingLengthTo(), MSJunction::getInternalLanes(), MSEdge::getLanes(), MSBaseVehicle::getLength(), MSEdge::getLength(), MSVehicle::getPositionOnLane(), getVehiclesOnJunction(), MSEdge::isInternal(), MSDevice_SSM::UpstreamScanStartInfo::pos, MSDevice_SSM::UpstreamScanStartInfo::range, and SIMTIME.
Referenced by findSurroundingVehicles().
|
static |
Collects all vehicles on the junction into foeCollector.
Definition at line 3231 of file MSDevice_SSM.cpp.
References MSDevice_SSM::FoeInfo::egoConflictLane, MSDevice_SSM::FoeInfo::egoDistToConflictLane, gDebugFlag3, MSLane::getEdge(), MSLane::getEntryLink(), MSJunction::getFoeInternalLanes(), MSLink::getFoeLanes(), Named::getID(), MSEdge::isCrossing(), 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 |
[filled] | oc The options container to add the options to |
Definition at line 126 of file MSDevice.cpp.
References OptionsCont::addDescription(), OptionsCont::addSynonyme(), MSDevice::deviceName(), and OptionsCont::doRegister().
Referenced by MSDevice_Emissions::insertOptions(), MSDevice_Battery::insertOptions(), MSDevice_Bluelight::insertOptions(), MSDevice_BTreceiver::insertOptions(), MSDevice_BTsender::insertOptions(), MSDevice_DriverState::insertOptions(), MSDevice_Example::insertOptions(), MSDevice_FCD::insertOptions(), MSDevice_Routing::insertOptions(), insertOptions(), MSDevice_ToC::insertOptions(), MSDevice_Tripinfo::insertOptions(), MSTransportableDevice_FCD::insertOptions(), and MSTransportableDevice_Routing::insertOptions().
|
static |
Inserts MSDevice_SSM-options.
[filled] | oc The options container to add the options to |
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 MSTransportableDevice_Routing, MSDevice_Vehroutes, MSDevice_Tripinfo, and MSDevice_Routing.
Definition at line 148 of file MSDevice.cpp.
|
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 2699 of file MSDevice_SSM.cpp.
References toString().
Referenced by flushGlobalMeasures(), and writeOutConflict().
|
staticprivate |
Definition at line 2708 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 2786 of file MSDevice_SSM.cpp.
References MSLane::getEdge(), Named::getID(), SUMOVehicle::getLane(), 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 2799 of file MSDevice_SSM.cpp.
References MSLane::getEdge(), Named::getID(), SUMOVehicle::getLane(), 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 2813 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_Emissions::MSLaneMeanDataValues, MSMeanData_Amitran::MSLaneMeanDataValues, MSMeanData_Harmonoise::MSLaneMeanDataValues, MSMeanData_Net::MSLaneMeanDataValues, MSDevice_Tripinfo, MSDevice_Transportable, MSMeanData::MeanDataValueTracker, and MSDevice_Emissions.
Definition at line 208 of file MSMoveReminder.h.
References UNUSED_PARAMETER.
Referenced by 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 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().
|
protectedinherited |
Definition at line 89 of file MSMoveReminder.cpp.
References MSMoveReminder::myLastVehicleUpdateValues.
Referenced by MSMoveReminder::updateDetector().
|
staticprivate |
Definition at line 3451 of file MSDevice_SSM.cpp.
References OptionsCont::getBool(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_TRAJECTORIES, StringUtils::toBool(), toString(), and WRITE_WARNING.
Referenced by buildVehicleDevices().
|
private |
Closes all current Encounters and moves conflicts to myPastConflicts,.
Definition at line 537 of file MSDevice_SSM.cpp.
References processEncounters().
Referenced by 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 MSTransportableDevice_Routing, MSDevice_Vehroutes, MSDevice_Tripinfo, MSDevice_Routing, MSTransportableDevice_FCD, and MSDevice_FCD.
Definition at line 142 of file MSDevice.cpp.
References Named::getID(), and WRITE_WARNING.
|
inlineinherited |
Definition at line 226 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 84 of file Named.h.
References Named::myID.
Referenced by Distribution_Parameterized::parse(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdgeCont::remapIDs(), NBEdgeCont::rename(), NBNodeCont::rename(), GNEJunction::setAttribute(), and IntermodalNetwork< E, L, N, V >::splitEdge().
|
virtual |
try to set the given parameter for this device. Throw exception for unsupported key
Reimplemented from MSDevice.
Definition at line 3621 of file MSDevice_SSM.cpp.
References deviceName(), StringUtils::toDouble(), 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.
|
staticprivate |
convert SUMO-positions to geo coordinates (in place)
Definition at line 2604 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 2609 of file MSDevice_SSM.cpp.
References toGeo().
|
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().
|
inherited |
Definition at line 47 of file MSMoveReminder.cpp.
References MSMoveReminder::myLastVehicleUpdateValues, MSMoveReminder::notifyMoveInternal(), MSMoveReminder::removeFromVehicleUpdateValues(), and STEPS2TIME.
Referenced by 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, 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(), 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, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictAreaLength, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::Encounter::egoDistsToConflict, MSDevice_SSM::Encounter::egoID, 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, 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 updateEncounter().
|
staticprivate |
Definition at line 3366 of file MSDevice_SSM.cpp.
References OptionsCont::getBool(), SUMOTrafficObject::getID(), OptionsCont::getOptions(), MSVehicleType::getParameter(), SUMOVehicle::getParameter(), Parameterised::getParameter(), SUMOTrafficObject::getVehicleType(), OptionsCont::isSet(), issuedParameterWarnFlags, Parameterised::knowsParameter(), SSM_WARN_GEO, StringUtils::toBool(), toString(), and WRITE_WARNING.
Referenced by buildVehicleDevices().
|
private |
Definition at line 2616 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::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 748 of file MSDevice_SSM.h.
Referenced by cleanup(), and MSDevice_SSM().
|
staticprivate |
bitset storing info whether warning has already been issued about unset parameter (warn only once!)
Definition at line 752 of file MSDevice_SSM.h.
Referenced by getDetectionRange(), getExtraTime(), getMeasuresAndThresholds(), getOutputFilename(), requestsTrajectories(), and useGeoCoords().
|
private |
Definition at line 718 of file MSDevice_SSM.h.
Referenced by createEncounters(), getParameter(), MSDevice_SSM(), processEncounters(), and update().
|
private |
All values for brake rate.
Definition at line 731 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 710 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().
|
private |
Definition at line 710 of file MSDevice_SSM.h.
Referenced by computeSSMs(), determineTTCandDRAC(), getParameter(), MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().
|
private |
Definition at line 710 of file MSDevice_SSM.h.
Referenced by getParameter(), MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().
|
private |
Definition at line 710 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().
|
private |
Definition at line 710 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 710 of file MSDevice_SSM.h.
Referenced by computeSSMs(), determineTTCandDRAC(), getParameter(), MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().
|
protectedinherited |
a description of this moveReminder
Definition at line 242 of file MSMoveReminder.h.
Referenced by MSMoveReminder::getDescription(), and MSMoveReminder::setDescription().
|
staticprivateinherited |
A random number generator used to choose from vtype/route distributions and computing the speed factors.
Definition at line 189 of file MSDevice.h.
Referenced by MSDevice::equippedByDefaultAssignmentOptions(), and MSDevice::getEquipmentRNG().
|
staticprivateinherited |
vehicles which explicitly carry a device, sorted by device, first
Definition at line 186 of file MSDevice.h.
Referenced by MSDevice::equippedByDefaultAssignmentOptions().
|
private |
Extra time in seconds to be logged after a conflict is over.
Definition at line 706 of file MSDevice_SSM.h.
Referenced by createEncounters(), MSDevice_SSM(), updateEncounter(), and updatePassedEncounter().
|
private |
Definition at line 729 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
protectedinherited |
The vehicle that stores the device.
Definition at line 84 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_Routing::getParameter(), MSDevice_ToC::getParameter(), MSDevice_ToC::MRMExecutionStep(), MSDevice_Routing::notifyEnter(), MSDevice_Vehroutes::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_ToC::notifyMove(), 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_ToC::writeOutput(), MSDevice_Vehroutes::writeOutput(), MSDevice_Vehroutes::writeXMLRoute(), MSDevice_Transportable::~MSDevice_Transportable(), and MSDevice_Vehroutes::~MSDevice_Vehroutes().
|
private |
Definition at line 711 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 133 of file Named.h.
Referenced by MSE2Collector::addDetectorToLanes(), RODFDetector::buildDestinationDistribution(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), MSSOTLTrafficLightLogic::checkPhases(), NBNode::computeNodeShape(), MSE2Collector::detectorUpdate(), GNEPOI::getAttribute(), GNEPoly::getAttribute(), MSLane::getCanonicalPredecessorLane(), MSLane::getCanonicalSuccessorLane(), Named::getID(), NBEdge::getLaneID(), ROEdge::getStoredEffort(), MSLane::getSurroundingVehicles(), ROEdge::getTravelTime(), NBEdge::init(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSLane::isInsertionSuccess(), NBNode::NBNode(), MSE2Collector::notifyEnter(), MSE2Collector::notifyLeave(), MSE2Collector::notifyMove(), MSMeanData::openInterval(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), MSRoute::release(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), Named::setID(), MSSOTLTrafficLightLogic::setToATargetPhase(), Distribution_Parameterized::toStr(), MSChargingStation::writeChargingStationOutput(), RODFDetector::writeEmitterDefinition(), RODFDetector::writeSingleSpeedTrigger(), MEInductLoop::writeXMLOutput(), and MSE3Collector::writeXMLOutput().
|
staticprivate |
All currently existing SSM devices.
Definition at line 60 of file MSDevice_SSM.h.
Referenced by cleanup(), getInstances(), MSDevice_SSM(), and ~MSDevice_SSM().
|
protectedinherited |
Lane on which the reminder works.
Definition at line 240 of file MSMoveReminder.h.
Referenced by MSE2Collector::getEstimatedCurrentVehicleNumber(), MSE2Collector::getEstimateQueueLength(), MSMoveReminder::getLane(), MSMoveReminder::MSMoveReminder(), MSE2Collector::notifyEnter(), MSInductLoop::notifyEnter(), MSE2Collector::notifyLeave(), and MSE2Collector::notifyMove().
|
privateinherited |
Definition at line 250 of file MSMoveReminder.h.
Referenced by MSMoveReminder::removeFromVehicleUpdateValues(), and MSMoveReminder::updateDetector().
|
private |
Extremal values for the global measures (as <<<time, Position>, value>, [leaderID]>-pairs)
Definition at line 738 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 739 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 740 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
begin time of the oldest active encounter
Definition at line 720 of file MSDevice_SSM.h.
Referenced by createEncounters(), flushConflicts(), and processEncounters().
|
private |
Output device.
Definition at line 745 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 722 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 704 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 702 of file MSDevice_SSM.h.
Referenced by MSDevice_SSM(), and writeOutConflict().
|
private |
All values for space gap.
Definition at line 733 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
All values for time gap.
Definition at line 735 of file MSDevice_SSM.h.
Referenced by computeGlobalMeasures(), and flushGlobalMeasures().
|
private |
Definition at line 699 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 708 of file MSDevice_SSM.h.
Referenced by flushGlobalMeasures(), MSDevice_SSM(), and writeOutConflict().