Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
MSDevice_SSM Class Reference

A device which collects info on the vehicle trip (mainly on departure and arrival) More...

#include <MSDevice_SSM.h>

Inheritance diagram for MSDevice_SSM:
[legend]
Collaboration diagram for MSDevice_SSM:
[legend]

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 Types

enum  EncounterType {
  ENCOUNTER_TYPE_NOCONFLICT_AHEAD = 0 , ENCOUNTER_TYPE_FOLLOWING = 1 , ENCOUNTER_TYPE_FOLLOWING_FOLLOWER = 2 , ENCOUNTER_TYPE_FOLLOWING_LEADER = 3 ,
  ENCOUNTER_TYPE_ON_ADJACENT_LANES = 4 , ENCOUNTER_TYPE_MERGING = 5 , ENCOUNTER_TYPE_MERGING_LEADER = 6 , ENCOUNTER_TYPE_MERGING_FOLLOWER = 7 ,
  ENCOUNTER_TYPE_MERGING_ADJACENT = 8 , ENCOUNTER_TYPE_CROSSING = 9 , ENCOUNTER_TYPE_CROSSING_LEADER = 10 , ENCOUNTER_TYPE_CROSSING_FOLLOWER = 11 ,
  ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA = 12 , ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA = 13 , ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA = 14 , ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA = 15 ,
  ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA = 16 , ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA = 17 , ENCOUNTER_TYPE_FOLLOWING_PASSED = 18 , ENCOUNTER_TYPE_MERGING_PASSED = 19 ,
  ENCOUNTER_TYPE_ONCOMING = 20 , ENCOUNTER_TYPE_COLLISION = 111
}
 Different types of encounters corresponding to relative positions of the vehicles. The name describes the type from the ego perspective. More...
 
enum  Notification {
  NOTIFICATION_DEPARTED , NOTIFICATION_JUNCTION , NOTIFICATION_SEGMENT , NOTIFICATION_LANE_CHANGE ,
  NOTIFICATION_LOAD_STATE , NOTIFICATION_TELEPORT , NOTIFICATION_TELEPORT_CONTINUATION , NOTIFICATION_PARKING ,
  NOTIFICATION_PARKING_REROUTE , NOTIFICATION_ARRIVED , NOTIFICATION_TELEPORT_ARRIVED , NOTIFICATION_VAPORIZED_CALIBRATOR ,
  NOTIFICATION_VAPORIZED_COLLISION , NOTIFICATION_VAPORIZED_TRACI , NOTIFICATION_VAPORIZED_GUI , NOTIFICATION_VAPORIZED_VAPORIZER ,
  NOTIFICATION_VAPORIZED_BREAKDOWN
}
 Definition of a vehicle state. More...
 

Public Member Functions

void addTo (const StoringVisitor &cont) const
 Adds this object to the given container.
 
const std::string deviceName () const
 return the name for this type of device
 
void generateOutput (OutputDevice *tripinfoOut) const
 Finalizes output. Called on vehicle removal.
 
const std::string & getDescription () const
 
SUMOVehiclegetHolder () const
 Returns the vehicle that holds this device.
 
const std::string & getID () const
 Returns the id.
 
const MSLanegetLane () const
 Returns the lane the reminder works on.
 
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
 
virtual bool isParkingRerouter () const
 
virtual void loadState (const SUMOSAXAttributes &attrs)
 Loads the state of the device from the given description.
 
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.
 
virtual void saveState (OutputDevice &out) const
 Saves the state of the device.
 
void setDescription (const std::string &description)
 
virtual void setID (const std::string &newID)
 resets the id
 
void setParameter (const std::string &key, const std::string &value)
 try to set the given parameter for this device. Throw exception for unsupported key
 
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 (.
 
 ~MSDevice_SSM ()
 Destructor.
 
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.
 
bool notifyEnter (SUMOTrafficObject &veh, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
 Called whenever the holder enteres a lane.
 
bool notifyLeave (SUMOTrafficObject &veh, double lastPos, MSMoveReminder::Notification reason, const MSLane *enteredLane=0)
 Called whenever the holder leaves a lane.
 
Interface methods, to be derived by subclasses
virtual bool notifyIdle (SUMOTrafficObject &veh)
 Computes idling emission values and adds them to the emission sums.
 
virtual void notifyParking ()
 called to update state for parking vehicles
 
virtual void notifyStopEnded ()
 called to update state for stopped vehicles
 
virtual bool notifyLeaveBack (SUMOTrafficObject &veh, Notification reason, const MSLane *leftLane)
 Called if the vehicle's back leaves the reminder's lane.
 
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.
 
static void buildVehicleDevices (SUMOVehicle &v, std::vector< MSVehicleDevice * > &into)
 Build devices for the given vehicle, if needed.
 
static bool checkOptions (OptionsCont &oc)
 check device-specific options
 
static void cleanup ()
 Clean up remaining devices instances.
 
static void cleanupAll ()
 perform cleanup for all devices
 
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.
 
static const std::set< const MSEdge * > & getEdgeFilter ()
 return the edges where the SSM device should scan
 
static SumoRNGgetEquipmentRNG ()
 
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
 
static const std::set< MSDevice_SSM *, ComparatorNumericalIdLess > & getInstances ()
 returns all currently existing SSM devices
 
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.
 
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.
 
static void insertOptions (OptionsCont &oc)
 Inserts MSDevice_SSM-options.
 

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.
 
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.
 

Protected Attributes

std::string myDescription
 a description of this moveReminder
 
SUMOVehiclemyHolder
 The vehicle that stores the device.
 
std::string myID
 The name of the object.
 
MSLanemyLane
 Lane on which the reminder works.
 

Private Types

typedef std::priority_queue< Encounter *, std::vector< Encounter * >, Encounter::compareEncounterQueue
 
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_MDRAC_PRT = 1 << 3 , SSM_WARN_EXTRATIME = 1 << 4 , SSM_WARN_FILE = 1 << 5 , SSM_WARN_GEO = 1 << 6 ,
  SSM_WARN_POS = 1 << 7 , SSM_WARN_LANEPOS = 1 << 8 , SSM_WARN_CONFLICTFILTER = 1 << 9
}
 

Private Member Functions

EncounterType classifyEncounter (const FoeInfo *foeInfo, EncounterApproachInfo &eInfo) const
 Classifies the current type of the encounter provided some information on the opponents.
 
void closeEncounter (Encounter *e)
 Finalizes the encounter and calculates SSM values.
 
void computeGlobalMeasures ()
 Stores measures, that are not associated to a specific encounter as headways and brake rates.
 
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.
 
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.
 
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)
 
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)
 
void determineTTCandDRACandPPETandMDRAC (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.
 
const MSLanefindFoeConflictLane (const MSVehicle *foe, const MSLane *egoConflictLane, double &distToConflictLane) const
 Computes the conflict lane for the foe.
 
void flushConflicts (bool all=false)
 Writes out all past conflicts that have begun earlier than the oldest active encounter.
 
void flushGlobalMeasures ()
 Write out all non-encounter specific measures as headways and braking rates.
 
std::string makeStringWithNAs (const Position &p)
 
std::string makeStringWithNAs (const PositionVector &v)
 
 MSDevice_SSM (const MSDevice_SSM &)
 Invalidated copy constructor.
 
 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, bool writePositions, bool writeLanesPositions, std::vector< int > conflictOrder)
 Constructor.
 
MSDevice_SSMoperator= (const MSDevice_SSM &)
 Invalidated assignment operator.
 
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.
 
bool qualifiesAsConflict (Encounter *e)
 Tests if the SSM values exceed the threshold for qualification as conflict.
 
void resetEncounters ()
 Closes all current Encounters and moves conflicts to myPastConflicts,.
 
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.
 
void update ()
 
bool updateEncounter (Encounter *e, FoeInfo *foeInfo)
 Updates the encounter (adds a new trajectory point).
 
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).
 
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.
 
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.
 
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.
 
static double computeMDRAC (double gap, double followerSpeed, double leaderSpeed, double prt)
 Computes the MDRAC (deceleration to avoid a collision) for a lead/follow situation as defined considering a reaction time of follower, e.g., in Fazekas et al. (2017, A Novel Surrogate Indicator Based on Constant Initial Acceleration and Reaction Time Assumption) 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.
 
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.
 
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)
 
static void initEdgeFilter ()
 initialize edge filter (once)
 
static std::string makeStringWithNAs (const std::vector< double > &v, const double NA)
 make a string of a double vector and treat a special value as invalid ("NA")
 
static std::string makeStringWithNAs (const std::vector< double > &v, const std::vector< double > &NAs)
 
static void toGeo (Position &x)
 convert SUMO-positions to geo coordinates (in place)
 
static void toGeo (PositionVector &x)
 convert SUMO-positions to geo coordinates (in place)
 
static std::string writeNA (double v, double NA=INVALID_DOUBLE)
 
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 getMDRAC_PRT (const SUMOVehicle &v)
 
static double getExtraTime (const SUMOVehicle &v)
 
static bool useGeoCoords (const SUMOVehicle &v)
 
static bool writePositions (const SUMOVehicle &v)
 
static bool writeLanesPositions (const SUMOVehicle &v)
 
static bool filterByConflictType (const SUMOVehicle &v, std::string deviceID, std::vector< int > &conflictTypes)
 
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< long long int, std::pair< SUMOTime, double > > myLastVehicleUpdateValues
 
OutputDevicemyOutputFile
 Output device.
 
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.
 
double myRange
 Detection range. For vehicles closer than this distance from the ego vehicle, SSMs are traced.
 
double myMDRACPRT
 perception reaction time for MDRAC
 
double myExtraTime
 Extra time in seconds to be logged after a conflict is over.
 
bool myUseGeoCoords
 Whether to use the original coordinate system for output.
 
bool myWritePositions
 Wether to print the positions for all timesteps.
 
bool myWriteLanesPositions
 Wether to print the lanes and positions for all timesteps and conflicts.
 
bool myFilterConflictTypes
 Whether to exclude certain conflicts containing certain conflict types from the output.
 
std::vector< int > myDroppedConflictTypes
 Which conflict types to exclude from the output.
 
bool myComputeTTC
 Flags for switching on / off comutation of different SSMs, derived from myMeasures.
 
bool myComputeDRAC
 
bool myComputePET
 
bool myComputeBR
 
bool myComputeSGAP
 
bool myComputeTGAP
 
bool myComputePPET
 
bool myComputeMDRAC
 
MSVehiclemyHolderMS
 
Internal storage for encounters/conflicts

Currently observed encounters/conflicts

EncounterVector myActiveEncounters
 
double myOldestActiveEncounterBegin
 begin time of the oldest active encounter
 
EncounterQueue myPastConflicts
 Past encounters that where qualified as conflicts and are not yet flushed to the output file.
 
Internal storage for global measures
std::vector< double > myGlobalMeasuresTimeSpan
 
PositionVector myGlobalMeasuresPositions
 All values for positions (coordinates)
 
std::vector< std::string > myGlobalMeasuresLaneIDs
 All values for lanes.
 
std::vector< double > myGlobalMeasuresLanesPositions
 All values for positions on the lanes.
 
std::vector< double > myBRspan
 All values for brake rate.
 
std::vector< double > mySGAPspan
 All values for space gap.
 
std::vector< double > myTGAPspan
 All values for time gap.
 
std::pair< std::pair< double, Position >, double > myMaxBR
 Extremal values for the global measures (as <<<time, Position>, value>, [leaderID]>-pairs)
 
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 const std::set< int > EGO_ENCOUNTERTYPES
 
static const std::set< int > FOE_ENCOUNTERTYPES
 
static std::set< std::string > myCreatedOutputFiles
 remember which files were created already (don't duplicate xml root-elements)
 
static std::set< const MSEdge * > myEdgeFilter
 spatial filter for SSM device output
 
static bool myEdgeFilterActive
 
static bool myEdgeFilterInitialized
 
static SumoRNG myEquipmentRNG
 A random number generator used to choose from vtype/route distributions and computing the speed factors.
 
static std::map< std::string, std::set< std::string > > myExplicitIDs
 vehicles which explicitly carry a device, sorted by device, first
 
static std::set< MSDevice_SSM *, ComparatorNumericalIdLess > * myInstances = new std::set<MSDevice_SSM*, ComparatorNumericalIdLess>()
 All currently existing SSM devices.
 
static int myIssuedParameterWarnFlags = 0
 bitset storing info whether warning has already been issued about unset parameter (warn only once!)
 

Detailed Description

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.

See also
MSDevice

Definition at line 55 of file MSDevice_SSM.h.

Member Typedef Documentation

◆ EncounterQueue

typedef std::priority_queue<Encounter*, std::vector<Encounter*>, Encounter::compare> MSDevice_SSM::EncounterQueue
private

Definition at line 365 of file MSDevice_SSM.h.

◆ EncounterVector

typedef std::vector<Encounter*> MSDevice_SSM::EncounterVector
private

Definition at line 366 of file MSDevice_SSM.h.

◆ FoeInfoMap

typedef std::map<const MSVehicle*, FoeInfo*> MSDevice_SSM::FoeInfoMap
private

Definition at line 367 of file MSDevice_SSM.h.

Member Enumeration Documentation

◆ EncounterType

Different types of encounters corresponding to relative positions of the vehicles. The name describes the type from the ego perspective.

Enumerator
ENCOUNTER_TYPE_NOCONFLICT_AHEAD 

ENCOUNTER_TYPE_NOCONFLICT_AHEAD.

ENCOUNTER_TYPE_FOLLOWING 

ENCOUNTER_TYPE_FOLLOWING.

ENCOUNTER_TYPE_FOLLOWING_FOLLOWER 

ENCOUNTER_TYPE_FOLLOWING_FOLLOWER.

ENCOUNTER_TYPE_FOLLOWING_LEADER 

ENCOUNTER_TYPE_FOLLOWING_LEADER.

ENCOUNTER_TYPE_ON_ADJACENT_LANES 

ENCOUNTER_TYPE_ON_ADJACENT_LANES.

ENCOUNTER_TYPE_MERGING 

ENCOUNTER_TYPE_MERGING.

ENCOUNTER_TYPE_MERGING_LEADER 

ENCOUNTER_TYPE_MERGING_LEADER.

ENCOUNTER_TYPE_MERGING_FOLLOWER 

ENCOUNTER_TYPE_MERGING_FOLLOWER.

ENCOUNTER_TYPE_MERGING_ADJACENT 

ENCOUNTER_TYPE_MERGING_ADJACENT.

ENCOUNTER_TYPE_CROSSING 

ENCOUNTER_TYPE_CROSSING.

ENCOUNTER_TYPE_CROSSING_LEADER 

ENCOUNTER_TYPE_CROSSING_LEADER.

ENCOUNTER_TYPE_CROSSING_FOLLOWER 

ENCOUNTER_TYPE_CROSSING_FOLLOWER.

ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA 

ENCOUNTER_TYPE_EGO_ENTERED_CONFLICT_AREA.

ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA 

ENCOUNTER_TYPE_FOE_ENTERED_CONFLICT_AREA.

ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA 

ENCOUNTER_TYPE_EGO_LEFT_CONFLICT_AREA.

ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA 

ENCOUNTER_TYPE_FOE_LEFT_CONFLICT_AREA.

ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA 

ENCOUNTER_TYPE_BOTH_ENTERED_CONFLICT_AREA.

ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA 

ENCOUNTER_TYPE_BOTH_LEFT_CONFLICT_AREA.

ENCOUNTER_TYPE_FOLLOWING_PASSED 

ENCOUNTER_TYPE_FOLLOWING_PASSED.

ENCOUNTER_TYPE_MERGING_PASSED 

ENCOUNTER_TYPE_FOLLOWING_PASSED.

ENCOUNTER_TYPE_ONCOMING 
ENCOUNTER_TYPE_COLLISION 

ENCOUNTER_TYPE_COLLISION.

Definition at line 64 of file MSDevice_SSM.h.

◆ Notification

Definition of a vehicle state.

Enumerator
NOTIFICATION_DEPARTED 

The vehicle has departed (was inserted into the network)

NOTIFICATION_JUNCTION 

The vehicle arrived at a junction.

NOTIFICATION_SEGMENT 

The vehicle changes the segment (meso only)

NOTIFICATION_LANE_CHANGE 

The vehicle changes lanes (micro only)

NOTIFICATION_LOAD_STATE 

The vehicle has been loaded from a state file.

NOTIFICATION_TELEPORT 

The vehicle is being teleported.

NOTIFICATION_TELEPORT_CONTINUATION 

The vehicle continues being teleported past an edge.

NOTIFICATION_PARKING 

The vehicle starts or ends parking.

NOTIFICATION_PARKING_REROUTE 

The vehicle needs another parking area.

NOTIFICATION_ARRIVED 

The vehicle arrived at its destination (is deleted)

NOTIFICATION_TELEPORT_ARRIVED 

The vehicle was teleported out of the net.

NOTIFICATION_VAPORIZED_CALIBRATOR 

The vehicle got removed by a calibrator.

NOTIFICATION_VAPORIZED_COLLISION 

The vehicle got removed by a collision.

NOTIFICATION_VAPORIZED_TRACI 

The vehicle got removed via TraCI.

NOTIFICATION_VAPORIZED_GUI 

The vehicle got removed via the GUI.

NOTIFICATION_VAPORIZED_VAPORIZER 

The vehicle got vaporized with a vaporizer.

NOTIFICATION_VAPORIZED_BREAKDOWN 

The vehicle got removed via stationfinder device.

Definition at line 89 of file MSMoveReminder.h.

◆ SSMParameterWarning

Enumerator
SSM_WARN_MEASURES 
SSM_WARN_THRESHOLDS 
SSM_WARN_TRAJECTORIES 
SSM_WARN_RANGE 
SSM_WARN_MDRAC_PRT 
SSM_WARN_EXTRATIME 
SSM_WARN_FILE 
SSM_WARN_GEO 
SSM_WARN_POS 
SSM_WARN_LANEPOS 
SSM_WARN_CONFLICTFILTER 

Definition at line 813 of file MSDevice_SSM.h.

Constructor & Destructor Documentation

◆ ~MSDevice_SSM()

MSDevice_SSM::~MSDevice_SSM ( )

Destructor.

Definition at line 3290 of file MSDevice_SSM.cpp.

References flushConflicts(), flushGlobalMeasures(), myInstances, and resetEncounters().

◆ MSDevice_SSM() [1/2]

MSDevice_SSM::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,
bool  writePositions,
bool  writeLanesPositions,
std::vector< int >  conflictOrder 
)
private

Constructor.

Parameters
[in]holderThe vehicle that holds this device
[in]idThe ID of the device
measuresVector of Surrogate Safety Measure IDs
thresholdsVector of corresponding thresholds
trajectoriesFlag indicating whether complete trajectories should be saved for an encounter (if false only extremal values are logged)
rangeDetection range. For vehicles closer than this distance from the ego vehicle, SSMs are traced
extraTimeExtra time in seconds to be logged after a conflict is over
useGeoCoordsWhether coordinates should be written out in the original coordinate reference system or as sumo's x,y values
writePositionsWhether positions (coordinates) should be written for each timestep
writeLanesPositionsWhether lanes and their positions should be written for each timestep and each conflict
conflictOrderVector of order keywords ego/foe to be considered

Definition at line 3226 of file MSDevice_SSM.cpp.

References DEBUG_COND, OutputDevice::getDevice(), joinToString(), myActiveEncounters, myComputeBR, myComputeDRAC, myComputeMDRAC, myComputePET, myComputePPET, myComputeSGAP, myComputeTGAP, myComputeTTC, myCreatedOutputFiles, myDroppedConflictTypes, myExtraTime, myFilterConflictTypes, myHolderMS, myInstances, myOutputFile, myPastConflicts, myRange, mySaveTrajectories, myThresholds, myUseGeoCoords, and OutputDevice::writeXMLHeader().

◆ MSDevice_SSM() [2/2]

MSDevice_SSM::MSDevice_SSM ( const MSDevice_SSM )
private

Invalidated copy constructor.

Member Function Documentation

◆ addTo()

void Named::addTo ( const StoringVisitor cont) const
inlineinherited

Adds this object to the given container.

Parameters
[in,filled]cont The container to add this item to

Definition at line 118 of file Named.h.

References Named::StoringVisitor::add().

◆ buildTransportableDevices()

void MSDevice::buildTransportableDevices ( MSTransportable p,
std::vector< MSTransportableDevice * > &  into 
)
staticinherited

Build devices for the given person, if needed.

Parameters
[in]pThe person for which a device may be built
[filled]into The vector to store the built device in

Definition at line 137 of file MSDevice.cpp.

References MSTransportableDevice_Routing::buildDevices(), MSTransportableDevice_BTreceiver::buildDevices(), MSTransportableDevice_BTsender::buildDevices(), MSTransportableDevice_FCD::buildDevices(), and MSTransportableDevice_FCDReplay::buildDevices().

Referenced by MSTransportable::MSTransportable().

Here is the caller graph for this function:

◆ buildVehicleDevices()

void MSDevice_SSM::buildVehicleDevices ( SUMOVehicle v,
std::vector< MSVehicleDevice * > &  into 
)
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.

Parameters
[in]vThe vehicle for which a device may be built
[filled]into The vector to store the built device in

Definition at line 304 of file MSDevice_SSM.cpp.

References MSDevice::equippedByDefaultAssignmentOptions(), filterByConflictType(), getDetectionRange(), getExtraTime(), Named::getID(), getMeasuresAndThresholds(), OptionsCont::getOptions(), getOutputFilename(), MSGlobals::gUseMesoSim, initEdgeFilter(), myEdgeFilterInitialized, requestsTrajectories(), useGeoCoords(), WRITE_WARNINGF, writeLanesPositions(), and writePositions().

Referenced by MSDevice::buildVehicleDevices().

Here is the caller graph for this function:

◆ checkConflictEntryAndExit()

void MSDevice_SSM::checkConflictEntryAndExit ( EncounterApproachInfo eInfo)
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.

Parameters
[in/out]eInfo Info structure for the current state of the encounter.
Note
The times are to be used for SSM computation in computeSSMs(), e.g. in determinePET()

Definition at line 1740 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_DOUBLE, MSCFModel::passingTime(), SIMTIME, MSDevice_SSM::Encounter::size(), TS, and MSDevice_SSM::EncounterApproachInfo::type.

Referenced by updateEncounter().

Here is the caller graph for this function:

◆ checkOptions()

bool MSDevice::checkOptions ( OptionsCont oc)
staticinherited

check device-specific options

Parameters
[filled]oc The options container with the user-defined options

Definition at line 104 of file MSDevice.cpp.

References MSDevice_Routing::checkOptions().

Referenced by MSFrame::checkOptions().

Here is the caller graph for this function:

◆ classifyEncounter()

MSDevice_SSM::EncounterType MSDevice_SSM::classifyEncounter ( const FoeInfo foeInfo,
EncounterApproachInfo eInfo 
) const
private

Classifies the current type of the encounter provided some information on the opponents.

Parameters
[in]foeInfoInfo 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).
Returns
Returns an encounter type and writes a value to the relevant distances (egoEncounterDist, foeEncounterDist members of eInfo), i.e. the distances to the entry points to the potential conflict.
Note
: The encounter distance has a different meaning for different types of encounters: 1) For rear-end conflicts (lead/follow situations) the follower's encounter distance is the distance to the actual back position of the leader. The leaders's distance is undefined. 2) For merging encounters the encounter distance is the distance until the begin of the common target edge/lane. 3) For crossing encounters the encounter distance is the distance until crossing point of the conflicting lanes.

Definition at line 2044 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(), Named::getID(), MSLane::getIncomingLanes(), MSLink::getIndex(), MSLink::getInternalLaneBefore(), MSLink::getInternalLengthsAfter(), MSLink::getJunction(), 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_DOUBLE, MSLane::isInternal(), MSLink::isInternalJunctionLink(), MSAbstractLaneChangeModel::isOpposite(), M_PI, PositionVector::rotationAtOffset(), SIMTIME, TL, MSDevice_SSM::Encounter::typeSpan, and WRITE_WARNINGF.

Referenced by updateEncounter().

Here is the caller graph for this function:

◆ cleanup()

void MSDevice_SSM::cleanup ( )
static

Clean up remaining devices instances.

Definition at line 211 of file MSDevice_SSM.cpp.

References OutputDevice::closeTag(), fn, OutputDevice::getDevice(), myCreatedOutputFiles, myEdgeFilter, myEdgeFilterActive, myEdgeFilterInitialized, and myInstances.

Referenced by MSNet::clearAll().

Here is the caller graph for this function:

◆ cleanupAll()

void MSDevice::cleanupAll ( )
staticinherited

perform cleanup for all devices

Definition at line 147 of file MSDevice.cpp.

References MSDevice_FCD::cleanup(), MSDevice_Taxi::cleanup(), MSDevice_Tripinfo::cleanup(), and MSRoutingEngine::cleanup().

Referenced by MSNet::clearAll().

Here is the caller graph for this function:

◆ closeEncounter()

void MSDevice_SSM::closeEncounter ( Encounter e)
private

Finalizes the encounter and calculates SSM values.

Definition at line 795 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, Named::getID(), myHolderMS, myPastConflicts, qualifiesAsConflict(), SIMTIME, MSDevice_SSM::Encounter::size(), and MSDevice_SSM::Encounter::timeSpan.

Referenced by processEncounters().

Here is the caller graph for this function:

◆ computeDRAC() [1/2]

double MSDevice_SSM::computeDRAC ( const EncounterApproachInfo eInfo)
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.

Parameters
[in]eInfoinfos 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 1622 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_DOUBLE, MIN2(), SIMTIME, and toString().

◆ computeDRAC() [2/2]

double MSDevice_SSM::computeDRAC ( double  gap,
double  followerSpeed,
double  leaderSpeed 
)
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 1582 of file MSDevice_SSM.cpp.

References INVALID_DOUBLE.

Referenced by computeDRAC(), and determineTTCandDRACandPPETandMDRAC().

Here is the caller graph for this function:

◆ computeGlobalMeasures()

void MSDevice_SSM::computeGlobalMeasures ( )
private

Stores measures, that are not associated to a specific encounter as headways and brake rates.

Todo:
Manage as episodes (BR -> braking episode, SGAP/TGAP -> car-following episode) with invariant leader, and filtering applying the corresponding thresholds.

Definition at line 576 of file MSDevice_SSM.cpp.

References MSVehicle::getAcceleration(), Named::getID(), MSVehicle::getLane(), MSVehicle::getLeader(), MSVehicleType::getMinGap(), MSVehicle::getPosition(), MSVehicle::getPositionOnLane(), MSVehicle::getSpeed(), SUMOTrafficObject::getVehicleType(), INVALID_DOUBLE, MAX2(), myBRspan, myComputeBR, myComputeSGAP, myComputeTGAP, myGlobalMeasuresLaneIDs, myGlobalMeasuresLanesPositions, myGlobalMeasuresPositions, myGlobalMeasuresTimeSpan, MSVehicleDevice::myHolder, myHolderMS, myMaxBR, myMinSGAP, myMinTGAP, mySGAPspan, myTGAPspan, myThresholds, myWriteLanesPositions, myWritePositions, and SIMTIME.

Referenced by update().

Here is the caller graph for this function:

◆ computeMDRAC()

double MSDevice_SSM::computeMDRAC ( double  gap,
double  followerSpeed,
double  leaderSpeed,
double  prt 
)
staticprivate

Computes the MDRAC (deceleration to avoid a collision) for a lead/follow situation as defined considering a reaction time of follower, e.g., in Fazekas et al. (2017, A Novel Surrogate Indicator Based on Constant Initial Acceleration and Reaction Time Assumption) 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 1600 of file MSDevice_SSM.cpp.

References INVALID_DOUBLE.

Referenced by determineTTCandDRACandPPETandMDRAC().

Here is the caller graph for this function:

◆ computeSSMs()

void MSDevice_SSM::computeSSMs ( EncounterApproachInfo e) const
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 1160 of file MSDevice_SSM.cpp.

References DEBUG_COND, determinePET(), determineTTCandDRACandPPETandMDRAC(), 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, Named::getID(), INVALID_DOUBLE, myComputeDRAC, myComputeMDRAC, myComputePPET, myComputeTTC, myHolderMS, MSDevice_SSM::EncounterApproachInfo::pet, SIMTIME, toString(), MSDevice_SSM::EncounterApproachInfo::ttc, MSDevice_SSM::EncounterApproachInfo::type, and WRITE_WARNING.

Referenced by updateEncounter().

Here is the caller graph for this function:

◆ computeTTC()

double MSDevice_SSM::computeTTC ( double  gap,
double  followerSpeed,
double  leaderSpeed 
) const
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 1560 of file MSDevice_SSM.cpp.

References DEBUG_COND, INVALID_DOUBLE, and myHolderMS.

Referenced by determineTTCandDRACandPPETandMDRAC().

Here is the caller graph for this function:

◆ createEncounters()

void MSDevice_SSM::createEncounters ( FoeInfoMap foes)
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 637 of file MSDevice_SSM.cpp.

References MSDevice_SSM::Encounter::begin, DEBUG_COND, Named::getID(), INVALID_DOUBLE, myActiveEncounters, myExtraTime, myHolderMS, myOldestActiveEncounterBegin, SIMTIME, and updateEncounter().

Referenced by update().

Here is the caller graph for this function:

◆ determineConflictPoint()

void MSDevice_SSM::determineConflictPoint ( EncounterApproachInfo eInfo)
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.

Parameters
[in/out]eInfo Info structure for the current state of the encounter.

Definition at line 944 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::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_MERGING_FOLLOWER, ENCOUNTER_TYPE_MERGING_LEADER, ENCOUNTER_TYPE_ONCOMING, MSDevice_SSM::Encounter::foe, MSDevice_SSM::EncounterApproachInfo::foeConflictEntryDist, MSDevice_SSM::Encounter::foeID, MSBaseVehicle::getLength(), MSVehicle::getPosition(), MSVehicle::getPositionAlongBestLanes(), SIMSTEP, SIMTIME, MSDevice_SSM::Encounter::size(), time2string(), TL, MSDevice_SSM::EncounterApproachInfo::type, and WRITE_WARNINGF.

Referenced by updateEncounter().

Here is the caller graph for this function:

◆ determinePET()

void MSDevice_SSM::determinePET ( EncounterApproachInfo eInfo) const
private

◆ determineTTCandDRACandPPETandMDRAC()

void MSDevice_SSM::determineTTCandDRACandPPETandMDRAC ( EncounterApproachInfo eInfo) const
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 1314 of file MSDevice_SSM.cpp.

References computeDRAC(), computeMDRAC(), computeTTC(), DEBUG_COND, MSDevice_SSM::EncounterApproachInfo::drac, MSDevice_SSM::Encounter::ego, MSDevice_SSM::EncounterApproachInfo::egoConflictEntryDist, MSDevice_SSM::EncounterApproachInfo::egoConflictExitDist, MSDevice_SSM::Encounter::egoConflictExitTime, 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::Encounter::foeConflictExitTime, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictEntryTime, MSDevice_SSM::EncounterApproachInfo::foeEstimatedConflictExitTime, MSDevice_SSM::Encounter::foeID, MSBaseVehicle::getLength(), MSVehicle::getSpeed(), INVALID_DOUBLE, MAX2(), MSDevice_SSM::EncounterApproachInfo::mdrac, MIN2(), myComputeDRAC, myComputeMDRAC, myComputePPET, myComputeTTC, myHolderMS, myMDRACPRT, MSDevice_SSM::EncounterApproachInfo::ppet, SIMTIME, toString(), MSDevice_SSM::EncounterApproachInfo::ttc, MSDevice_SSM::EncounterApproachInfo::type, and WRITE_WARNING.

Referenced by computeSSMs().

Here is the caller graph for this function:

◆ deviceName()

const std::string MSDevice_SSM::deviceName ( ) const
inlinevirtual

return the name for this type of device

Implements MSDevice.

Definition at line 495 of file MSDevice_SSM.h.

Referenced by getParameter(), and setParameter().

Here is the caller graph for this function:

◆ encounterToString()

◆ equippedByDefaultAssignmentOptions()

template<class DEVICEHOLDER >
bool MSDevice::equippedByDefaultAssignmentOptions ( const OptionsCont oc,
const std::string &  deviceName,
DEVICEHOLDER &  v,
bool  outputOptionSet,
const bool  isPerson = false 
)
staticprotectedinherited

Determines whether a vehicle should get a certain device.

Parameters
[in]ocThe options container to get the information about assignment from
[in]deviceNameThe name of the device type
[in]vThe vehicle to determine whether it shall be equipped or not

Definition at line 195 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(), StringUtils::toBool(), and StringUtils::toDouble().

Referenced by MSTransportableDevice_Routing::buildDevices(), MSTransportableDevice_BTreceiver::buildDevices(), MSTransportableDevice_BTsender::buildDevices(), MSTransportableDevice_FCD::buildDevices(), MSTransportableDevice_FCDReplay::buildDevices(), MSDevice_Bluelight::buildVehicleDevices(), MSVehicleDevice_BTreceiver::buildVehicleDevices(), MSVehicleDevice_BTsender::buildVehicleDevices(), MSDevice_DriverState::buildVehicleDevices(), MSDevice_ElecHybrid::buildVehicleDevices(), MSDevice_Emissions::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice_FCD::buildVehicleDevices(), MSDevice_FCDReplay::buildVehicleDevices(), MSDevice_Friction::buildVehicleDevices(), MSDevice_GLOSA::buildVehicleDevices(), MSDevice_Routing::buildVehicleDevices(), buildVehicleDevices(), MSDevice_StationFinder::buildVehicleDevices(), MSDevice_Taxi::buildVehicleDevices(), MSDevice_ToC::buildVehicleDevices(), MSDevice_Tripinfo::buildVehicleDevices(), MSDevice_Vehroutes::buildVehicleDevices(), and MSDevice_Battery::buildVehicleDevices().

Here is the caller graph for this function:

◆ estimateConflictTimes()

void MSDevice_SSM::estimateConflictTimes ( EncounterApproachInfo eInfo)
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)

Parameters
[in/out]eInfo Info structure for the current state of the encounter.
Note
The '[in]'-part for eInfo are its members e->ego, e->foe (to access the vehicle parameters), egoConflictEntryDist, foeConflictEntryDist, i.e., distances to the conflict entry points. The '[out]'-part for eInfo are its members type (type information may be refined) egoConflictEntryTime, foeConflictEntryTime (estimated times until the conflict entry point is reached) and egoConflictExitTime, foeConflictExitTime (estimated time until the conflict exit point is reached). Further the type of the encounter as determined by classifyEncounter(), is refined for the cases CROSSING and MERGING here.

Definition at line 1002 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_DOUBLE, MIN2(), SIMSTEP, SIMTIME, time2string(), TL, toString(), MSDevice_SSM::EncounterApproachInfo::type, WRITE_WARNINGF, and writeNA().

Referenced by updateEncounter().

Here is the caller graph for this function:

◆ filterByConflictType()

bool MSDevice_SSM::filterByConflictType ( const SUMOVehicle v,
std::string  deviceID,
std::vector< int > &  conflictTypes 
)
staticprivate

◆ findFoeConflictLane()

const MSLane * MSDevice_SSM::findFoeConflictLane ( const MSVehicle foe,
const MSLane egoConflictLane,
double &  distToConflictLane 
) const
private

Computes the conflict lane for the foe.

Parameters
foeFoe vehicle
egoConflictLaneLane, on which the ego would enter the possible conflict
routeToConflict,Seriesof edges, that were traced back from egoConflictLane during findSurrounding Vehicles, when collecting the foe vehicle
[out]distToConflictLane,distanceto conflictlane entry link (may be negative if foe is already on the conflict lane)
Returns
Lane, on which the foe would enter the possible conflict, if foe is not on conflict course, Null-pointer is returned.

Definition at line 2803 of file MSDevice_SSM.cpp.

References DEBUG_COND, MSRoute::end(), MSVehicle::getBestLanesContinuation(), MSBaseVehicle::getCurrentRouteEdge(), SUMOVehicle::getCurrentRouteEdge(), MSBaseVehicle::getEdge(), MSLane::getEdge(), SUMOTrafficObject::getEdge(), 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().

Here is the caller graph for this function:

◆ findSurroundingVehicles()

void MSDevice_SSM::findSurroundingVehicles ( const MSVehicle veh,
double  range,
FoeInfoMap foeCollector 
)
static

Returns all vehicles, which are within the given range of the given vehicle.

Note
all vehicles behind and in front are collected, including vehicles on confluent edges. For instance, if the range is 20 m. and a junction lies 10 m. ahead, an upstream scan of 20 m. is performed for all incoming edges.
Parameters
vehThe ego vehicle, that forms the origin for the scan
rangeThe range to be scanned.
[in/out]foeCollector container for all collected vehicles
Returns
All vehicles within range from veh

Definition at line 3348 of file MSDevice_SSM.cpp.

References gDebugFlag3, MSVehicle::getBestLanesContinuation(), MSLane::getEdge(), MSEdge::getFromJunction(), Named::getID(), MSJunction::getIncoming(), MSLink::getInternalLengthsAfter(), MSVehicle::getLane(), MSVehicle::getLaneChangeModel(), MSBaseVehicle::getLength(), MSEdge::getLength(), MSLane::getLength(), MSLane::getLinkCont(), MSLane::getLinkTo(), MSJunction::getOutgoing(), MSLane::getParallelOpposite(), MSVehicle::getPositionOnLane(), MSEdge::getToJunction(), getUpstreamVehicles(), getVehiclesOnJunction(), MSLink::getViaLane(), MSEdge::isInternal(), MSLane::isInternal(), MSVehicle::isOnRoad(), MSAbstractLaneChangeModel::isOpposite(), SIMTIME, and toString().

Referenced by update().

Here is the caller graph for this function:

◆ flushConflicts()

void MSDevice_SSM::flushConflicts ( bool  all = false)
private

Writes out all past conflicts that have begun earlier than the oldest active encounter.

Parameters
[in]allWhether all conflicts should be flushed or only those for which no active encounters with earlier begin can exist

Definition at line 2945 of file MSDevice_SSM.cpp.

References MSDevice_SSM::Encounter::begin, DEBUG_COND, Named::getID(), INVALID_DOUBLE, myDroppedConflictTypes, myFilterConflictTypes, myHolderMS, myOldestActiveEncounterBegin, myPastConflicts, SIMTIME, MSDevice_SSM::Encounter::typeSpan, and writeOutConflict().

Referenced by updateAndWriteOutput(), and ~MSDevice_SSM().

Here is the caller graph for this function:

◆ flushGlobalMeasures()

void MSDevice_SSM::flushGlobalMeasures ( )
private

Write out all non-encounter specific measures as headways and braking rates.

Todo:
Adapt accordingly if episode structure is implemented,
See also
computeGlobalMeasures()

Definition at line 2979 of file MSDevice_SSM.cpp.

References OutputDevice::closeTag(), DEBUG_COND, Named::getID(), INVALID_DOUBLE, makeStringWithNAs(), myBRspan, myComputeBR, myComputeSGAP, myComputeTGAP, myGlobalMeasuresLaneIDs, myGlobalMeasuresLanesPositions, myGlobalMeasuresPositions, myGlobalMeasuresTimeSpan, myHolderMS, myMaxBR, myMinSGAP, myMinTGAP, myOutputFile, mySGAPspan, myTGAPspan, myUseGeoCoords, myWriteLanesPositions, myWritePositions, OutputDevice::openTag(), SIMTIME, toGeo(), and OutputDevice::writeAttr().

Referenced by ~MSDevice_SSM().

Here is the caller graph for this function:

◆ generateOutput()

void MSDevice_SSM::generateOutput ( OutputDevice tripinfoOut) const
virtual

Finalizes output. Called on vehicle removal.

Parameters
[in]osThe stream to write the information into
Exceptions
IOErrornot yet implemented
See also
MSDevice::generateOutput

Reimplemented from MSDevice.

Definition at line 3861 of file MSDevice_SSM.cpp.

◆ getDescription()

const std::string & MSMoveReminder::getDescription ( ) const
inlineinherited

Definition at line 280 of file MSMoveReminder.h.

References MSMoveReminder::myDescription.

Referenced by MSDriveWay::notifyEnter(), MSDriveWay::notifyLeave(), and MSDriveWay::notifyLeaveBack().

Here is the caller graph for this function:

◆ getDetectionRange()

double MSDevice_SSM::getDetectionRange ( const SUMOVehicle v)
staticprivate

◆ getEdgeFilter()

static const std::set< const MSEdge * > & MSDevice_SSM::getEdgeFilter ( )
inlinestatic

return the edges where the SSM device should scan

Definition at line 394 of file MSDevice_SSM.h.

References myEdgeFilter.

◆ getEquipmentRNG()

static SumoRNG * MSDevice::getEquipmentRNG ( )
inlinestaticinherited

Definition at line 89 of file MSDevice.h.

References MSDevice::myEquipmentRNG.

Referenced by NLBuilder::initRandomness(), MSStateHandler::myStartElement(), and MSStateHandler::saveRNGs().

Here is the caller graph for this function:

◆ getExtraTime()

double MSDevice_SSM::getExtraTime ( const SUMOVehicle v)
staticprivate

◆ getHolder()

SUMOVehicle & MSVehicleDevice::getHolder ( ) const
inlineinherited

Returns the vehicle that holds this device.

Returns
The vehicle that holds this device

Definition at line 72 of file MSVehicleDevice.h.

References MSVehicleDevice::myHolder.

Referenced by MSChargingStation::addChargeValueForOutput(), MSOverheadWire::addChargeValueForOutput(), MSDispatch::computeDetourTime(), MSDispatch_GreedyClosest::computeDispatch(), MSDispatch::computePickupTime(), MSDispatch_Greedy::dispatch(), MSDispatch_GreedyShared::dispatch(), MSDispatch_RouteExtension::dispatch(), MSIdling_Stop::idle(), MSIdling_RandomCircling::idle(), MSIdling_TaxiStand::idle(), and MSDispatch::remainingCapacity().

Here is the caller graph for this function:

◆ getID()

const std::string & Named::getID ( ) const
inlineinherited

Returns the id.

Returns
The stored id

Definition at line 74 of file Named.h.

References Named::myID.

Referenced by MSLCM_LC2013::_patchSpeed(), MSLCM_SL2015::_patchSpeed(), MSDriveWay::_saveState(), MSCFModel_EIDM::_v(), MSCFModel_ACC::_v(), MSCFModel_IDM::_v(), MSCFModel_CACC::_v(), MSCFModel_Wiedemann::_v(), MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSLaneChangerSublane::abortLCManeuver(), MSTransportable::abortStage(), MSDevice_GLOSA::adaptSpeed(), MSLCM_LC2013::adaptSpeedToPedestrians(), MSVehicle::adaptToJunctionLeader(), MSVehicle::adaptToLeader(), MSVehicle::adaptToLeaderDistance(), MSVehicle::adaptToLeaders(), MSVehicle::adaptToOncomingLeader(), MSVehicleTransfer::add(), MSDetectorControl::add(), MSPModel_JuPedSim::add(), MSPModel_Striping::add(), PCPolyContainer::add(), ShapeContainer::add(), PCPolyContainer::add(), ShapeContainer::add(), MSDetectorControl::add(), MSDetectorControl::add(), NLTriggerBuilder::addAccess(), RORouteDef::addAlternative(), MSLane::addApproachingLane(), MSDriveWay::addBidiFoes(), MSTractionSubstation::addChargeValueForOutput(), MSChargingStation::addChargeValueForOutput(), MSOverheadWire::addChargeValueForOutput(), NBNodeCont::addCluster2Join(), NLHandler::addConflict(), NLHandler::addConnection(), NBLoadedSUMOTLDef::addConnection(), MSPModel_Striping::addCrossingVehs(), RODFDetectorCon::addDetector(), NIXMLEdgesHandler::addEdge(), RONet::addEdge(), ROJTREdge::addFollowerProbability(), MSLane::addLeaders(), MSTLLogicControl::TLSLogicVariants::addLogic(), RONet::addNode(), MSLaneChangerSublane::addOutsideLeaders(), MSTractionSubstation::addOverheadWireClampToCircuit(), MSTractionSubstation::addOverheadWireInnerSegmentToCircuit(), MSTractionSubstation::addOverheadWireSegmentToCircuit(), MSDriveWay::addParallelFoes(), NIImporter_SUMO::addPhase(), GUIEdge::addRerouter(), MSDevice_Taxi::addReservation(), MSDispatch::addReservation(), MSRouteHandler::addRideOrTransport(), RONet::addRouteDef(), MSDriveWay::addSidings(), NIXMLEdgesHandler::addSplit(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), RORouteHandler::addStop(), ROVehicle::addStop(), MSBaseVehicle::addStop(), MSNet::addStoppingPlace(), MSRouteHandler::addTranship(), MSVehicle::addTransportable(), AGActivityTripWriter::addTrip(), MSPModel_JuPedSim::addWaitingSet(), NIXMLConnectionsHandler::addWalkingArea(), MSBaseVehicle::allowsBoarding(), MSTransportable::appendStage(), LIBSUMO_NAMESPACE::Person::appendWalkingStage(), MSCFModel::applyHeadwayAndSpeedDifferencePerceptionErrors(), MSCFModel::applyHeadwayPerceptionError(), libsumo::Helper::applySubscriptionFilterLanes(), libsumo::Helper::applySubscriptionFilterLateralDistance(), libsumo::Helper::applySubscriptionFilterLateralDistanceSinglePass(), libsumo::Helper::applySubscriptionFilters(), libsumo::Helper::applySubscriptionFilterTurn(), MSLaneChanger::avoidDeadlock(), MSDevice_ToC::awarenessRecoveryStep(), GUITrafficLightLogicWrapper::begin2TrackPhases(), MSPModel_Interacting::blockedAtDist(), MSLink::blockedAtTime(), MSLink::blockedByFoe(), MSVehicle::boardTransportables(), MSVehicle::brakeForOverlap(), NIVisumTL::build(), LIBSUMO_NAMESPACE::TrafficLight::buildConstraint(), MSSOTLE2Sensors::buildContinueSensior(), MSSOTLE2Sensors::buildCountSensorForLane(), MSSOTLE2Sensors::buildCountSensorForOutLane(), NBNode::buildCrossings(), NBNode::buildCrossingsAndWalkingAreas(), MSTransportableDevice_Routing::buildDevices(), MSTransportableDevice_BTreceiver::buildDevices(), MSTransportableDevice_BTsender::buildDevices(), MSTransportableDevice_FCD::buildDevices(), MSTransportableDevice_FCDReplay::buildDevices(), NIImporter_VISUM::buildDistrictNode(), MSDriveWay::buildDriveWay(), NLDetectorBuilder::buildE2Detector(), NLDetectorBuilder::buildE2Detector(), RODFNet::buildEdgeFlowMap(), NLDetectorBuilder::buildInductLoop(), NBEdge::buildInnerEdges(), NLTriggerBuilder::buildInnerOverheadWireSegments(), GNETLSEditorFrame::buildInternalLanes(), NIVissimEdge::buildNBEdge(), NGEdge::buildNBEdge(), NBOwnTLDef::buildNemaPhases(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSPModel_JuPedSim::buildPedestrianNetwork(), MSDriveWay::buildRoute(), MELoop::buildSegmentsFor(), MSSOTLE2Sensors::buildSensorForLane(), MSSOTLE2Sensors::buildSensorForOutLane(), libsumo::Helper::buildStopParameters(), MSDriveWay::buildSubFoe(), MSDevice_Bluelight::buildVehicleDevices(), MSVehicleDevice_BTreceiver::buildVehicleDevices(), MSVehicleDevice_BTsender::buildVehicleDevices(), MSDevice_DriverState::buildVehicleDevices(), MSDevice_ElecHybrid::buildVehicleDevices(), MSDevice_Example::buildVehicleDevices(), MSDevice_FCD::buildVehicleDevices(), MSDevice_FCDReplay::buildVehicleDevices(), MSDevice_Friction::buildVehicleDevices(), MSDevice_GLOSA::buildVehicleDevices(), MSDevice_Routing::buildVehicleDevices(), buildVehicleDevices(), MSDevice_Taxi::buildVehicleDevices(), MSDevice_ToC::buildVehicleDevices(), MSDevice_Tripinfo::buildVehicleDevices(), MSDevice_Transportable::buildVehicleDevices(), MSDevice_Vehroutes::buildVehicleDevices(), MSDevice_Battery::buildVehicleDevices(), NBNode::buildWalkingAreas(), MSBaseVehicle::calculateArrivalParams(), MSSwarmTrafficLightLogic::calculateEtaDiff(), MSSwarmTrafficLightLogic::calculateEtaRatio(), NEMALogic::calculateInitialPhases170(), MSE2Collector::calculateTimeLossAndTimeOnDetector(), MSDevice_Taxi::cancelCurrentCustomers(), MSDevice_Taxi::cancelCustomer(), MSStageDriving::canLeaveVehicle(), MSSOTLPolicyBasedTrafficLightLogic::canRelease(), MSLCHelper::canSaveBlockerLength(), MSDriveWay::canUseSiding(), MSLaneChanger::change(), MSLaneChangerSublane::change(), MSLCM_SL2015::changed(), MSLaneChanger::changeOpposite(), MELoop::changeSegment(), MSActuatedTrafficLightLogic::changeStepAndDuration(), MSSimpleTrafficLightLogic::changeStepAndDuration(), LIBSUMO_NAMESPACE::Vehicle::changeTarget(), MSCFModel_CC::changeWholePlatoonLane(), MSTLLogicControl::check2Switch(), MSEdge::checkAndRegisterBiDirEdge(), MSLaneChanger::checkChange(), MSLaneChanger::checkChangeOpposite(), MSLaneChangerSublane::checkChangeOpposite(), MSLaneChangerSublane::checkChangeSublane(), NBEdgeCont::checkConsistency(), MSDriveWay::checkCrossingFlanks(), MSDevice_ToC::checkDynamicToC(), MSLane::checkFailure(), MSDriveWay::checkFlanks(), MSLane::checkForPedestrians(), MSVehicleTransfer::checkInsertions(), MSVehicle::checkLinkLeader(), MSE2Collector::checkPositioning(), MSRoute::checkRemoval(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), MEVehicle::checkStop(), MSLCM_SL2015::checkStrategicChange(), MSAbstractLaneChangeModel::checkTraCICommands(), MSLaneChanger::checkTraCICommands(), MSLink::checkWalkingAreaFoe(), MSSwarmTrafficLightLogic::choosePolicy(), classifyEncounter(), ShapeContainer::clearHighlights(), NBTrafficLightLogic::closeBuilding(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), closeEncounter(), RORouteHandler::closeRouteDistribution(), MSRouteHandler::closeVehicle(), RORouteHandler::closeVehicle(), NBTrafficLightDefinition::collectAllLinks(), NBTrafficLightDefinition::collectEdges(), NBLoadedSUMOTLDef::collectEdgeVectors(), NBLoadedTLDef::collectLinks(), MSLCM_SL2015::commitManoeuvre(), IntermodalRouter< E, L, N, V >::compute(), NBTrafficLightDefinition::compute(), ROJTRRouter::compute(), MSVehicle::computeAngle(), MSDispatch::computeDetourTime(), MSDispatch_GreedyClosest::computeDispatch(), NBNodeShapeComputer::computeEdgeBoundaries(), MSVehicle::computeFurtherLanes(), computeGlobalMeasures(), NBNode::computeInternalLaneShape(), NBNode::computeLanes2Lanes(), NBNode::computeLogic(), NBOwnTLDef::computeLogicAndConts(), NBNodeShapeComputer::computeNodeShapeDefault(), NBNodeShapeComputer::computeNodeShapeSmall(), NBNodeTypeComputer::computeNodeTypes(), NBRampsComputer::computeRamps(), RODFNet::computeRoutesFor(), MSLaneChanger::computeSafeOppositeLength(), NBTrafficLightLogicCont::computeSingleLogic(), NBNode::computeSmoothShape(), MSLCM_LC2013::computeSpeedLat(), MSLCM_SL2015::computeSpeedLat(), computeSSMs(), MSLaneChanger::computeSurplusGap(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), MSVehicle::Manoeuvre::configureEntryManoeuvre(), MSVehicle::Manoeuvre::configureExitManoeuvre(), MSDriveWay::conflictLaneOccupied(), NGNet::connect(), MSRailSignal::constraintsAllow(), NEMALogic::constructTimingAndPhaseDefs(), MSLaneChanger::continueChange(), MSLaneChangerSublane::continueChangeSublane(), libsumo::Helper::convertCartesianToRoadMap(), LIBSUMO_NAMESPACE::Person::convertTraCIStage(), NBLoadedSUMOTLDef::copyIndices(), NBOwnTLDef::correctConflicting(), NBOwnTLDef::corridorLike(), MSSOTLWaveTrafficLightLogic::countVehicles(), MSSOTLE2Sensors::countVehicles(), createEncounters(), GNETLSEditorFrame::TLSDefinition::createTLS(), GUINet::createTLWrapper(), MSDevice_Taxi::customerArrived(), NBNodeCont::customTLID(), MSDevice_ToC::deactivateDeliberateLCs(), libsumo::Helper::debugPrint(), MSLCM_SL2015::decideDirection(), MSDeterministicHiLevelTrafficLightLogic::decideNextPhase(), MSSOTLPolicyBasedTrafficLightLogic::decideNextPhase(), MSSwarmTrafficLightLogic::decideNextPhase(), MSDeterministicHiLevelTrafficLightLogic::decidePolicy(), MSSwarmTrafficLightLogic::decidePolicy(), MSVehicleControl::deleteVehicle(), MSDevice_ElecHybrid::deleteVehicleFromCircuit(), MSLane::detectCollisionBetween(), MSLane::detectCollisions(), MSE3Collector::detectorUpdate(), MSLane::detectPedestrianJunctionCollision(), NIVissimDistrictConnection::dict_BuildDistrictNodes(), NIVissimDistrictConnection::dict_BuildDistricts(), MSEdge::dictionaryHint(), NBNodeCont::discardTrafficLights(), MSDispatch_Greedy::dispatch(), MSDispatch_GreedyShared::dispatch(), MSDispatch_RouteExtension::dispatch(), MSDevice_Taxi::dispatchShared(), GUILane::drawGL(), MSDevice_SSM::Encounter::Encounter(), MSAbstractLaneChangeModel::endLaneChangeManeuver(), MSE3Collector::enter(), NEMAPhase::enter(), MSParkingArea::enter(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::enterLaneAtMove(), MSVehicle::Manoeuvre::entryManoeuvreIsComplete(), MSTransportableControl::erase(), NEMALogic::error_handle_not_set(), MSStoppingPlaceRerouter::evaluateDestination(), METriggeredCalibrator::execute(), Command_SaveTLSProgram::execute(), Command_SaveTLSState::execute(), Command_SaveTLSSwitches::execute(), Command_SaveTLSSwitchStates::execute(), Command_RouteReplacement::execute(), MSDevice_BTreceiver::BTreceiverUpdate::execute(), MSVTypeProbe::execute(), MSPModel_Striping::MovePedestrians::execute(), MSCalibrator::execute(), MSPModel_JuPedSim::execute(), MSVehicle::executeFractionalMove(), MSVehicle::executeMove(), MSLane::executeMovements(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), filterByConflictType(), LIBSUMO_NAMESPACE::Person::filterReservation(), NBLoadedSUMOTLDef::finalChecks(), MSCFModel::finalizeSpeed(), MSCFModel_Daniel1::finalizeSpeed(), MSCFModel_EIDM::finalizeSpeed(), MSLaneChanger::findCandidate(), LIBSUMO_NAMESPACE::TrafficLight::findConstraintsDeadLocks(), MSRailSignalControl::findDeadlockFoes(), MSDriveWay::findFlankProtection(), findFoeConflictLane(), findSurroundingVehicles(), flushConflicts(), flushGlobalMeasures(), MSDriveWay::foeDriveWayOccupied(), MSCFModel_CACC::followSpeed(), MSCFModel_EIDM::followSpeed(), MSCFModel_W99::followSpeed(), NBTrafficLightDefinition::forbids(), MSLaneChanger::foundHilltop(), MSCFModel_EIDM::freeSpeed(), NBNodeCont::generateNodeClusters(), MSDevice_Tripinfo::generateOutput(), MSDevice_StationFinder::generateOutput(), MSStopOut::generateOutputForUnfinished(), GUITrafficLightLogicWrapper::getActiveTLLogic(), RODFDetectorCon::getAggFlowFor(), RODFDetectorCon::getAnyDetectorForEdge(), MSPModel_Striping::getArbitraryPath(), MSVehicle::getBackPosition(), MSVehicle::getBackPositionOnLane(), LIBSUMO_NAMESPACE::Vehicle::getBestLanes(), MSLaneChanger::getBestLanesOpposite(), NBOwnTLDef::getBestPair(), LIBSUMO_NAMESPACE::Edge::getBidiEdge(), LIBSUMO_NAMESPACE::Lane::getBidiLane(), SUMOTrafficObject::getBoolParam(), MSLane::getCanonicalPredecessorLane(), MSLane::getCanonicalSuccessorLane(), MSVehicle::getCenterOnEdge(), MSDevice_Battery::getChargingStationID(), MSDriveWay::getClickableTLLinkID(), GUIVehicle::getColorValue(), MSLaneChanger::getColumnleader(), MSActuatedTrafficLightLogic::getConditions(), LIBSUMO_NAMESPACE::TrafficLight::getConstraintsByFoe(), LIBSUMO_NAMESPACE::TrafficLight::getControlledLinks(), MSLane::getCriticalLeader(), MSCalibrator::getCurrentStateInterval(), NBNodeShapeComputer::getDefaultRadius(), MSDriveWay::getDepartureDriveway(), MSLink::getDescription(), MSStop::getDescription(), MSRailSignalConstraint_Predecessor::getDescription(), NBTrafficLightDefinition::getDescription(), MSStageTrip::getDestinationDescription(), GUIPerson::getDestinationEdgeID(), GUIPerson::getDestinationStopID(), getDetectionRange(), RODFNet::getDetectorEdge(), MSActuatedTrafficLightLogic::getDetectorPriority(), MSRailSignal::LinkInfo::getDriveWay(), MSRailSignal::LinkInfo::getDriveWay(), GUIVehicle::getDriveWays(), MSSimpleTrafficLightLogic::getEarliest(), GUIPerson::getEdgeID(), GUIMEVehicle::getEdgeID(), MSMeanData::getEdgeID(), LIBSUMO_NAMESPACE::RouteProbe::getEdgeID(), getExtraTime(), MSLane::getFirstVehicleInformation(), SUMOTrafficObject::getFloatParam(), MSBaseVehicle::getFlowID(), MSLane::getFollower(), MSLane::getFollowersOnConsecutive(), GUIPerson::getFromEdgeID(), MSPModel_InteractingState::getID(), MSPModel_Striping::PStateVehicle::getID(), NBEdge::getID(), LIBSUMO_NAMESPACE::Vehicle::getJunctionFoes(), MSDriveWay::getJunctionLinkID(), LIBSUMO_NAMESPACE::Calibrator::getLaneID(), NEMALogic::getLaneInfoFromNEMAState(), MSParkingArea::getLastFreePos(), MSParkingArea::getLastFreePosWithReservation(), MSLane::getLastVehicleInformation(), MSSimpleTrafficLightLogic::getLatest(), MSVehicle::getLatOffset(), MSLane::getLeader(), MSLink::getLeaderInfo(), MSLane::getLeaderOnConsecutive(), MSLaneChangerSublane::getLeaders(), MSLane::getLeadersOnConsecutive(), MSLink::getLengthBeforeCrossing(), MSDevice_BTsender::getLocation(), getMDRAC_PRT(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForInputLanes(), MSDeterministicHiLevelTrafficLightLogic::getMeanSpeedForOutputLanes(), getMeasuresAndThresholds(), NIImporter_VISUM::getNamedEdgeContinuating(), MSPModel_Striping::getNeighboringObstacles(), MSRailSignal::getNewDrivewayID(), MSCalibrator::getNewVehicleID(), MSPerson::getNextEdge(), MSPModel_Striping::getNextLane(), MSPModel_Striping::getNextLaneObstacles(), LIBSUMO_NAMESPACE::Vehicle::getNextLinks(), MSLaneChanger::getOncomingOppositeVehicle(), MSLane::getOppositeFollower(), MSLane::getOppositeLeader(), MSStageTrip::getOriginDescription(), getOutputFilename(), MSDevice_ElecHybrid::getOverheadWireSegmentID(), MSOverheadWire::getOverheadWireSegmentName(), MSDevice_StationFinder::getParameter(), MSDevice_ToC::getParameter(), MSActuatedTrafficLightLogic::getParameter(), NEMALogic::getParameter(), LIBSUMO_NAMESPACE::Simulation::getParameter(), GUITrafficLightLogicWrapper::getParameterWindow(), GUIContainer::getParameterWindow(), GUILane::getParameterWindow(), GUILane::getParentName(), MSLane::getPartialBehind(), MSSimpleDriverState::getPerceivedHeadway(), MSSimpleDriverState::getPerceivedSpeedDifference(), MSSOTLTrafficLightLogic::getPhaseIndexWithMaxCTS(), MSSwarmTrafficLightLogic::getPheromoneForInputLanes(), MSSwarmTrafficLightLogic::getPheromoneForOutputLanes(), PolygonDynamics::getPolygonID(), GUITrafficLightLogicWrapper::getPopUpMenu(), NLTriggerBuilder::getPosition(), NLDetectorBuilder::getPositionChecking(), MSBaseVehicle::getPrefixedParameter(), MSCFModel_CC::getRadarMeasurements(), MSLaneChanger::getRealFollower(), MSLaneChanger::getRealLeader(), LIBSUMO_NAMESPACE::Vehicle::getRoadID(), MSLCHelper::getRoundaboutDistBonus(), LIBSUMO_NAMESPACE::Vehicle::getRouteID(), LIBSUMO_NAMESPACE::Calibrator::getRouteProbeID(), MSBaseVehicle::getRouteValidity(), GUIBaseVehicle::getScaleValue(), MSAbstractLaneChangeModel::getShadowLane(), MSBaseVehicle::getSingularType(), MSTransportable::getSingularType(), LIBSUMO_NAMESPACE::Person::getStage(), MSStageDriving::getStageSummary(), MSStageTranship::getStageSummary(), MSStageWaiting::getStageSummary(), MSStageWalking::getStageSummary(), MSDevice_Taxi::getStopLane(), MSNet::getStoppingPlaceID(), SUMOTrafficObject::getStringParam(), MSLane::getSurroundingVehicles(), MSActuatedTrafficLightLogic::getTarget(), LIBSUMO_NAMESPACE::Vehicle::getTeleportingIDList(), SUMOTrafficObject::getTimeParam(), MSDriveWay::getTLLinkID(), NIImporter_OpenDrive::getTLSSecure(), MSDevice_ElecHybrid::getTractionSubstationID(), PedestrianEdge< E, L, N, V >::getTravelTime(), MSVehicle::getUpcomingLanesUntil(), MSLane::getUpcomingLinks(), getUpstreamVehicles(), MSRailSignalConstraint::getVeh(), LIBSUMO_NAMESPACE::Person::getVehicle(), LIBSUMO_NAMESPACE::TrafficLight::getVehicleByTripId(), GUIPerson::getVehicleID(), MSPModel_Striping::getVehicleObstacles(), MSStageTrip::getVehicles(), getVehiclesOnJunction(), MSStageDriving::getWaitingDescription(), MSEdge::getWaitingVehicle(), MSStoppingPlaceRerouter::getWeight(), MSLink::getZipperSpeed(), GNEEdge::GNEEdge(), NBNode::guessCrossings(), RODFDetectorCon::guessEmptyFlows(), NBNodeCont::guessTLs(), GUITLLogicPhasesTrackerWindow::GUITLLogicPhasesTrackerWindow(), MSLane::handleCollisionBetween(), MSLane::handleIntermodalCollisionBetween(), MSRailSignal::hasInsertionConstraint(), MSDriveWay::hasJoin(), MSDriveWay::hasLinkConflict(), MSBaseVehicle::hasValidRouteStart(), MSVehicle::hasValidRouteStart(), MSRailSignalControl::haveDeadlock(), MSBaseVehicle::haveValidStopEdges(), LIBSUMO_NAMESPACE::POI::highlight(), LIBSUMO_NAMESPACE::Vehicle::highlight(), MSIdling_Stop::idle(), MSIdling_RandomCircling::idle(), MSIdling_TaxiStand::idle(), MSLink::ignoreFoe(), MSVehicle::ignoreFoe(), MSVehicle::ignoreRed(), MSVehicle::Influencer::implicitDeltaPosRemote(), NBNode::indirectLeftShape(), MSLCM_LC2013::inform(), MSLCM_SL2015::inform(), MSLCM_SL2015::informFollower(), MSLCM_LC2013::informFollower(), MSLCM_SL2015::informLeader(), MSLCM_LC2013::informLeader(), MSCalibrator::init(), NBEdge::init(), MSDeterministicHiLevelTrafficLightLogic::init(), MSSOTLTrafficLightLogic::init(), MSSwarmTrafficLightLogic::init(), MSTrafficLightLogic::init(), MSActuatedTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), MSRailSignal::init(), NEMALogic::init(), MSActuatedTrafficLightLogic::initAttributeOverride(), MSE2Collector::initAuxiliaries(), MESegment::initialise(), MSPModel_JuPedSim::initialize(), MSTrafficLightLogic::initMesoTLSPenalties(), NBOwnTLDef::initNeedsContRelation(), PolygonDynamics::initTrackedPosition(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBNodeCont::insert(), NBTrafficLightLogicCont::insert(), NIImporter_OpenStreetMap::insertEdge(), MSCFModel_IDM::insertionFollowSpeed(), MSBaseVehicle::insertStop(), MSLane::insertVehicle(), MSEdge::insertVehicle(), MSPModel_Striping::insertWalkArePaths(), MSLane::integrateNewVehicles(), IntermodalNetwork< E, L, N, V >::IntermodalNetwork(), GNEJunction::invalidateTLS(), NBNode::invalidateTLS(), MSTLLogicControl::isActive(), MSPedestrianPushButton::isActiveForEdge(), MSPedestrianPushButton::isActiveOnAnySideOfTheRoad(), RODFNet::isAllowed(), RODFNet::isDestination(), RODFNet::isFalseSource(), MSLane::isInsertionSuccess(), MSBaseVehicle::isJumping(), MSVehicle::isLeader(), MESegment::isOpen(), MSCFModel_CC::isPlatoonLaneChangeSafe(), RODFNet::isSource(), NIImporter_VISUM::isSplitEdge(), MSSOTLTrafficLightLogic::isThresholdPassed(), RORoute::isValid(), MSStageDriving::isWaitingFor(), MESegment::jamThresholdForSpeed(), NBNodeCont::joinNodeCluster(), MSVehicle::joinTrainPartFront(), MSAbstractLaneChangeModel::laneChangeOutput(), MSVehicle::lateralDistanceToLane(), MSE3Collector::leave(), MSE3Collector::leaveFront(), MSVehicle::leaveLane(), MSVehicle::leaveLaneBack(), MSDevice_BTreceiver::BTreceiverUpdate::leaveRange(), MSPedestrianPushButton::loadCrossingEdgeMap(), MSStopOut::loadedContainers(), MSStopOut::loadedPersons(), NIImporter_OpenDrive::loadNetwork(), MSPedestrianPushButton::loadPushButtons(), MSVehicle::loadState(), MSVehicleTransfer::loadState(), MSActuatedTrafficLightLogic::loadState(), ODDistrictCont::makeDistricts(), MSE2Collector::makeMoveNotification(), MSE2Collector::makeVehicleInfo(), NWWriter_OpenDrive::mapmatchRoadObjects(), MSDriveWay::match(), MEVehicle::mayProceed(), MSSOTLE2Sensors::meanVehiclesSpeed(), METriggeredCalibrator::METriggeredCalibrator(), MSDevice_FCDReplay::move(), MSTransportableDevice_FCDReplay::move(), MSPModel_Striping::moveInDirection(), MSPModel_Striping::moveInDirectionOnLane(), MSPModel_Striping::PState::moveTo(), MSPModel_Striping::PState::moveToNextLane(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), MSPModel_Striping::PState::moveToXY(), libsumo::Helper::moveToXYMap(), MSDevice_ToC::MRMExecutionStep(), MSChargingStation::MSChargingStation(), MSDevice_Battery::MSDevice_Battery(), MSDevice_ElecHybrid::MSDevice_ElecHybrid(), MSDevice_Taxi::MSDevice_Taxi(), MSDevice_ToC::MSDevice_ToC(), MSE2Collector::MSE2Collector(), MSE2Collector::MSE2Collector(), MSLCM_LC2013::MSLCM_LC2013(), MSParkingArea::MSParkingArea(), MSSimpleDriverState::MSSimpleDriverState(), MSLCM_SL2015::mustOvertakeStopped(), NBLoadedTLDef::myCompute(), NIImporter_SUMO::myEndElement(), MSStateHandler::myStartElement(), MSCalibrator::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), MSDevice_FCDReplay::FCDHandler::myStartElement(), MSPModel_Interacting::nextBlocking(), MSLane::AnyVehicleIterator::nextIsMyVehicles(), MSDevice_ElecHybrid::notifyEnter(), MSE2Collector::notifyEnter(), MSDevice_Bluelight::notifyEnter(), MSDevice_BTreceiver::notifyEnter(), MSDevice_BTsender::notifyEnter(), MSDevice_Example::notifyEnter(), MSDevice_GLOSA::notifyEnter(), notifyEnter(), MSDevice_Tripinfo::notifyEnter(), MSMeanData::MeanDataValues::notifyEnter(), MSMeanData::MeanDataValueTracker::notifyEnter(), MSMeanData_Net::MSLaneMeanDataValues::notifyEnter(), MSRailSignalConstraint_Predecessor::PassedTracker::notifyEnter(), MSCalibrator::VehicleRemover::notifyEnter(), MSE3Collector::MSE3EntryReminder::notifyEnter(), MSE3Collector::MSE3LeaveReminder::notifyEnter(), MSDriveWay::notifyEnter(), MSDevice_ElecHybrid::notifyLeave(), MSDevice_Bluelight::notifyLeave(), MSDevice_BTreceiver::notifyLeave(), MSDevice_BTsender::notifyLeave(), MSDevice_Example::notifyLeave(), notifyLeave(), MSDevice_Transportable::notifyLeave(), MSDevice_Tripinfo::notifyLeave(), MSE2Collector::notifyLeave(), MSE3Collector::MSE3EntryReminder::notifyLeave(), MSE3Collector::MSE3LeaveReminder::notifyLeave(), MSDriveWay::notifyLeave(), MSDriveWay::notifyLeaveBack(), MSDevice_ElecHybrid::notifyMove(), MSDevice_Battery::notifyMove(), MSDevice_Bluelight::notifyMove(), MSDevice_BTreceiver::notifyMove(), MSDevice_BTsender::notifyMove(), MSDevice_Example::notifyMove(), MSDevice_GLOSA::notifyMove(), notifyMove(), MSE2Collector::notifyMove(), MSInductLoop::notifyMove(), MSMeanData::MeanDataValues::notifyMove(), MSDevice_StationFinder::notifyMove(), MSDevice_ToC::notifyMove(), MSE3Collector::MSE3LeaveReminder::notifyMove(), MSE3Collector::MSE3EntryReminder::notifyMove(), MSMeanData_Net::MSLaneMeanDataValues::notifyMoveInternal(), GNETLSEditorFrame::TLSDefinition::onCmdResetCurrentProgram(), MSVehicle::onRemovalFromNet(), MSLink::opened(), RORouteHandler::openRoute(), MSLane::incoming_lane_priority_sorter::operator()(), MSLane::outgoing_lane_priority_sorter::operator()(), MSEdge::transportable_by_position_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), RODFNet::idComp::operator()(), MSLaneChangerSublane::outputLCStarted(), NIImporter_VISUM::parse_Connectors_legacy(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_stopPoints(), NIImporter_VISUM::parse_Turns(), NLTriggerBuilder::parseAndBuildCalibrator(), NLTriggerBuilder::parseAndBuildOverheadWireSection(), MSRouteHandler::parseWalkPositions(), NBLoadedSUMOTLDef::patchIfCrossingsAdded(), MSLCM_LC2013::patchSpeed(), MSLCM_SL2015::patchSpeed(), MSRoutingEngine::patchSpeedForTurns(), NBLoadedTLDef::SignalGroup::patchTYellow(), MSCFModel_CC::performAutoLaneChange(), MSVehicle::planMove(), MSVehicle::planMoveInternal(), MSLane::planMovements(), PolygonDynamics::PolygonDynamics(), MSInternalJunction::postloadInit(), MSRightOfWayJunction::postloadInit(), MSVehicle::Influencer::postProcessRemoteControl(), MSLCM_SL2015::prepareStep(), MSDevice_Taxi::prepareStop(), MSLCM_SL2015::preventSliding(), MSAbstractLaneChangeModel::primaryLaneChanged(), AGStreet::print(), MSStageDriving::proceed(), processEncounters(), MSVehicle::processLaneAdvances(), MSVehicle::processLinkApproaches(), MSVehicle::processNextStop(), NIXMLNodesHandler::processNodeType(), TraCIServerAPI_Vehicle::processSet(), MSVehicle::processTraCISpeedControl(), NIXMLNodesHandler::processTrafficLightDefinitions(), MSDelayBasedTrafficLightLogic::proposeProlongation(), NBNodeCont::pruneClusterFringe(), NBNodeCont::pruneSlipLaneNodes(), MSPModel_Striping::PState::PState(), MSPModel_Striping::PState::PState(), NBTrafficLightDefinition::railSignalUncontrolled(), MSDevice_Battery::readParameterValue(), MSOffTrafficLightLogic::rebuildPhase(), NBEdge::recheckLanes(), NBEdgeCont::recheckPostProcessConnections(), NIImporter_OpenStreetMap::reconstructLayerElevation(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdge::reduceGeometry(), MSNet::registerCollision(), MSPModel_Striping::registerCrossingApproach(), MSLink::removeApproaching(), MSLink::removeApproachingPerson(), LIBSUMO_NAMESPACE::TrafficLight::removeConstraints(), MSVehicle::removePassedDriveItems(), MSCalibrator::removePending(), MSDispatch::removeReservation(), GNEJunction::removeTLSConnections(), NBNodeCont::rename(), NBTrafficLightLogicCont::rename(), RORouteDef::repairCurrentRoute(), GNEJunction::replaceIncomingConnections(), MSBaseVehicle::replaceParkingArea(), MSBaseVehicle::replaceRoute(), MSBaseVehicle::replaceRouteEdges(), MSBaseVehicle::replaceStop(), MSTransportable::replaceVehicleType(), MSPerson::replaceWalk(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NLEdgeControlBuilder::reportCurrentEdgeOrLane(), requestsTrajectories(), MSDevice_ToC::requestToC(), MSStageTrip::reroute(), MSStoppingPlaceRerouter::reroute(), MSBaseVehicle::reroute(), MSRailSignal::LinkInfo::reroute(), GUIVehicle::rerouteDRTStop(), MSVehicle::rerouteParkingArea(), MSTransportable::rerouteParkingArea(), MSDevice_StationFinder::rerouteToChargingStation(), MSDriveWay::reserve(), MSDevice_ToC::resetDeliberateLCs(), MSLane::resetManeuverReservation(), MSLane::resetPartialOccupation(), MSDevice_Bluelight::resetVehicle(), MSLaneChanger::resolveDeadlock(), LIBSUMO_NAMESPACE::Vehicle::resume(), MEVehicle::resumeFromStopping(), MSVehicle::resumeFromStopping(), MSRailSignal::retrieveDriveWay(), NIImporter_OpenDrive::retrieveSignalEdges(), RODFNet::revalidateFlows(), NBRailwayTopologyAnalyzer::reverseEdges(), MSStageDriving::routeOutput(), MSStageTranship::routeOutput(), MSStageTrip::routeOutput(), MSStageWaiting::routeOutput(), MSStageWalking::routeOutput(), MSLane::safeInsertionSpeed(), RONet::saveAndRemoveRoutesUntil(), ROPerson::Ride::saveAsXML(), ROVehicle::saveAsXML(), MSLCM_LC2013::saveBlockerLength(), MSLane::saveState(), MESegment::saveState(), MSDevice::saveState(), MSDevice_Routing::saveState(), MSDevice_Transportable::saveState(), MSDevice_Tripinfo::saveState(), MSDevice_Vehroutes::saveState(), MSTransportableDevice_Routing::saveState(), MSDevice_Battery::saveState(), MSDevice_StationFinder::saveState(), MSSimpleTrafficLightLogic::saveState(), MSStageDriving::saveState(), MSCalibrator::scheduleRemoval(), GUIVehicle::selectBlockingFoes(), MSE2Collector::selectLanes(), MSVehicle::setAngle(), MSLink::setApproaching(), MSLink::setApproaching(), MSVehicle::setApproachingForAllLinks(), NBNodeCont::setAsTLControlled(), GNEJunction::setAttribute(), MSSimpleDriverState::setAwareness(), MSLane::setBidiLane(), MSEdge::setBidiLanes(), NLEdgeControlBuilder::setDefaultStopOffset(), MSBaseVehicle::setDepartAndArrivalEdge(), MSCalibrator::setFlow(), NBEdge::setGeometry(), MSBaseVehicle::setJunctionModelParameter(), MSTransportable::setJunctionModelParameter(), MSAbstractLaneChangeModel::setManeuverDist(), MSLane::setManeuverReservation(), MSDevice_Battery::setMaximumBatteryCapacity(), MSDevice_Battery::setMaximumChargeRate(), NBEdge::setNodeBorder(), MSLane::setOpposite(), MSLCM_SL2015::setOwnState(), MSDevice_ToC::setParameter(), MSActuatedTrafficLightLogic::setParameter(), MSSimpleTrafficLightLogic::setParameter(), NEMALogic::setParameter(), MSCFModel_CACC::setParameter(), MSCFModel_CC::setParameter(), MSLane::setPartialOccupation(), NBEdgePriorityComputer::setPriorityJunctionPriorities(), libsumo::Helper::setRemoteControlled(), libsumo::Helper::setRemoteControlled(), MSLink::setRequestInformation(), LIBSUMO_NAMESPACE::Vehicle::setRoute(), LIBSUMO_NAMESPACE::Vehicle::setRouteID(), MSDevice_Battery::setStoppingThreshold(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBOwnTLDef::setTLControllingInformation(), NBTrafficLightLogicCont::setTLControllingInformation(), MSStageDriving::setVehicle(), MSOverheadWire::setVoltage(), NBEdge::shiftPositionAtNode(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSVehicle::slowDownForSchedule(), MSLane::sortManeuverReservations(), IntermodalNetwork< E, L, N, V >::splitEdge(), MSLaneChangerSublane::startChangeSublane(), MSStopOut::stopEnded(), MSCFModel_EIDM::stopSpeed(), MSStopOut::stopStarted(), MSRailSignal::storeTraCIVehicles(), MSLane::succLinkSec(), LIBSUMO_NAMESPACE::TrafficLight::swapConstraints(), MSDevice_ToC::switchHolderType(), GNETLSEditorFrame::TLSDefinition::switchProgram(), GUITrafficLightLogicWrapper::switchTLSLogic(), MSDevice_StationFinder::teleportToChargingStation(), MELoop::teleportVehicle(), MSDevice_ToC::ToCPreparationStep(), libsumo::Helper::TransportableStateListener::transportableStateChanged(), TraCIServer::transportableStateChanged(), MSDevice_ToC::triggerDownwardToC(), MSDevice_ToC::triggerMRM(), MSTriggeredRerouter::triggerRouting(), MSDevice_ToC::triggerUpwardToC(), MSTransportable::tripInfoOutput(), MSPerson::MSPersonStage_Access::tripInfoOutput(), METriggeredCalibrator::tryEmit(), MSPModel_JuPedSim::tryPedestrianInsertion(), MSSOTLTrafficLightLogic::trySwitch(), MSActuatedTrafficLightLogic::trySwitch(), NEMALogic::trySwitch(), MSStopOut::unloadedContainers(), MSStopOut::unloadedPersons(), MSPModel_Interacting::unregisterCrossingApproach(), update(), MSSimpleDriverState::update(), PolygonDynamics::update(), updateAndWriteOutput(), MSVehicle::updateBestLanes(), MSLCHelper::updateBlockerLength(), MSLCM_SL2015::updateCFRelated(), MSDevice_StationFinder::updateChargeLimit(), LIBSUMO_NAMESPACE::TrafficLight::updateConstraints(), MSSOTLTrafficLightLogic::updateCTS(), NLEdgeControlBuilder::updateCurrentLaneStopOffset(), MSRailSignal::updateCurrentPhase(), MSVehicle::updateDriveItems(), updateEncounter(), MSLCM_SL2015::updateExpectedSublaneSpeeds(), MSVehicle::updateFurtherLanes(), MSLCM_SL2015::updateGaps(), GNENetHelper::AttributeCarriers::updateJunctionID(), MSDevice_Taxi::updateMove(), MSSwarmTrafficLightLogic::updatePheromoneLevels(), MSVehicle::Influencer::updateRemoteControlRoute(), MSDispatch::updateReservationFromPos(), MSSwarmTrafficLightLogic::updateSensitivities(), MSAbstractLaneChangeModel::updateShadowLane(), MSVehicle::updateState(), MSAbstractLaneChangeModel::updateTargetLane(), MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(), useGeoCoords(), NEMALogic::validate_timing(), NBNodeTypeComputer::validateRailCrossings(), libsumo::Helper::VehicleStateListener::vehicleStateChanged(), TraCIServer::vehicleStateChanged(), MSDynamicShapeUpdater::vehicleStateChanged(), MSLCM_LC2013::wantsChange(), MSLCM_SL2015::wantsChange(), MSLCM_SL2015::wantsChangeSublane(), MSInstantInductLoop::write(), NBParking::write(), MSElecHybridExport::write(), MSFCDExport::write(), MSBatteryExport::write(), MSEmissionExport::write(), MSRailSignalConstraint_Predecessor::write(), MSElecHybridExport::writeAggregated(), MSLink::writeApproaching(), MSDriveWay::writeBlocks(), MSRailSignal::writeBlocks(), NWWriter_DlrNavteq::writeConnectedLanes(), MSDriveWay::writeDepatureBlocks(), NWWriter_SUMO::writeDistrict(), MSMeanData::writeEdge(), NWWriter_SUMO::writeEdge(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), MSRoute::writeEdgeIDs(), NWWriter_XML::writeEdgesAndConnections(), RODFDetector::writeEmitterDefinition(), RODFDetectorCon::writeEmitterPOIs(), RODFDetectorCon::writeEmitters(), RODFDetectorCon::writeEndRerouterDetectors(), NWWriter_OpenDrive::writeInternalEdge(), ROMAAssignments::writeInterval(), NWWriter_SUMO::writeJunction(), MSFullExport::writeLane(), MSQueueExport::writeLane(), MSXMLRawOut::writeLane(), writeLanesPositions(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), MSTractionSubstation::writeOut(), MSDevice_ToC::writeOutput(), MSNet::writeOutput(), MSDevice_Vehroutes::writeOutput(), MSOverheadWire::writeOverheadWireSegmentOutput(), writePositions(), NWWriter_OpenDrive::writeRoadObjectPOI(), NWWriter_OpenDrive::writeRoadObjectPoly(), NWWriter_SUMO::writeRoundabout(), NWWriter_OpenDrive::writeSignals(), RODFDetectorCon::writeSpeedTrigger(), NWWriter_SUMO::writeTrafficLight(), NWWriter_DlrNavteq::writeTrafficSignals(), MSFCDExport::writeTransportable(), MSXMLRawOut::writeTransportable(), RODFDetectorCon::writeValidationDetectors(), MSXMLRawOut::writeVehicle(), MSAmitranTrajectories::writeVehicle(), MSFullExport::writeVehicles(), SUMOPolygon::writeXML(), PointOfInterest::writeXML(), MSE2Collector::writeXMLOutput(), MSInductLoop::writeXMLOutput(), MSCalibrator::writeXMLOutput(), MSRouteProbe::writeXMLOutput(), MSLaneChanger::yieldToDeadlockOncoming(), MSLaneChanger::yieldToOppositeWaiting(), MSCalibrator::~MSCalibrator(), MSDevice_Transportable::~MSDevice_Transportable(), MSLaneSpeedTrigger::~MSLaneSpeedTrigger(), MSTriggeredRerouter::~MSTriggeredRerouter(), and RONet::~RONet().

◆ getIDSecure()

template<class T >
static std::string Named::getIDSecure ( const T *  obj,
const std::string &  fallBack = "NULL" 
)
inlinestaticinherited

get an identifier for Named-like object which may be Null

Definition at line 67 of file Named.h.

Referenced by MSLCM_LC2013::_wantsChange(), MSLCM_SL2015::_wantsChangeSublane(), MSDriveWay::addSidings(), MSLaneChanger::avoidDeadlock(), MSDriveWay::canUseSiding(), MSLaneChanger::changeOpposite(), MSLaneChanger::checkChangeOpposite(), MSDriveWay::checkFlanks(), MSVehicle::checkReversal(), MSVehicle::checkRewindLinkLanes(), AFRouter< E, N, V >::compute(), AStarRouter< E, V >::compute(), DijkstraRouter< E, V >::compute(), AFBuild< E, N, V >::computeArcFlagsAux(), AFCentralizedSPTree< E, N, V >::computeCentralizedSPTree(), NBOwnTLDef::computeLogicAndConts(), Node2EdgeRouter< E, N, V >::computeNode2Edge(), Node2EdgeRouter< E, N, V >::computeNode2Edges(), MSDriveWay::conflictLaneOccupied(), NBPTLineCont::constructRoute(), MSLaneChanger::continueChange(), MSLane::detectCollisions(), MSVehicle::enterLaneAtLaneChange(), MSVehicle::executeMove(), NBRailwayTopologyAnalyzer::extendDirectionPriority(), NBPTLineCont::findWay(), MSDriveWay::foeDriveWayOccupied(), MSCFModel_CACC::followSpeed(), MSCFModel_W99::followSpeed(), MSStopOut::generateOutputForUnfinished(), MSVehicle::getBackPositionOnLane(), NBOwnTLDef::getBestCombination(), NBOwnTLDef::getBestPair(), MSVehicle::getCenterOnEdge(), MSLaneChanger::getColumnleader(), NBEdge::Connection::getDescription(), MSLane::getFollowersOnConsecutive(), GUIVehicle::getLaneID(), LIBSUMO_NAMESPACE::Person::getLaneID(), MSVehicle::getLatOffset(), MSLane::getLeaderOnConsecutive(), MSLaneChanger::getOncomingOppositeVehicle(), MSLaneChanger::getRealLeader(), GUIVehicle::getShadowLaneID(), GUIVehicle::getTargetLaneID(), getVehiclesOnJunction(), NBEdgeCont::guessRoundabouts(), MSDriveWay::hasLinkConflict(), MSCFModel_IDM::insertionFollowSpeed(), MSLane::isInsertionSuccess(), MESegment::isOpen(), joinNamedToString(), joinNamedToString(), joinNamedToStringSorting(), MSPModel_Striping::PState::moveToNextLane(), LIBSUMO_NAMESPACE::Person::moveToXY(), LIBSUMO_NAMESPACE::Vehicle::moveToXY(), MSPModel_Striping::PState::moveToXY(), libsumo::Helper::moveToXYMap(), libsumo::Helper::moveToXYMap_matchingRoutePosition(), MSDevice_Bluelight::notifyEnter(), MSDevice_Bluelight::notifyLeave(), MSDriveWay::notifyLeave(), MSDriveWay::notifyLeaveBack(), MSVehicle::Influencer::postProcessRemoteControl(), MSVehicle::processNextStop(), MSBaseVehicle::replaceRoute(), MSStoppingPlaceRerouter::reroute(), MSBaseVehicle::reroute(), MSLaneChanger::resolveDeadlock(), MSLCM_LC2013::slowDownForBlocked(), MSLCM_SL2015::slowDownForBlocked(), MSLaneChangerSublane::startChangeSublane(), MSLeaderInfo::toString(), MSLeaderDistanceInfo::toString(), MSCriticalFollowerDistanceInfo::toString(), toString(), toString(), toString(), MSTriggeredRerouter::triggerRouting(), MSVehicle::updateBestLanes(), MSLCHelper::updateBlockerLength(), MSAbstractLaneChangeModel::updateShadowLane(), MSPModel_Striping::PState::walk(), and MSLaneChanger::yieldToDeadlockOncoming().

◆ getInstances()

const std::set< MSDevice_SSM *, ComparatorNumericalIdLess > & MSDevice_SSM::getInstances ( )
static

returns all currently existing SSM devices

Definition at line 206 of file MSDevice_SSM.cpp.

References myInstances.

Referenced by MSNet::writeOutput().

Here is the caller graph for this function:

◆ getLane()

const MSLane * MSMoveReminder::getLane ( ) const
inlineinherited

Returns the lane the reminder works on.

Returns
The lane the reminder is anchored on.

Definition at line 83 of file MSMoveReminder.h.

References MSMoveReminder::myLane.

Referenced by LIBSUMO_NAMESPACE::InductionLoop::getTree(), GUIInductLoop::MyWrapper::MyWrapper(), GUIInstantInductLoop::MyWrapper::MyWrapper(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), LIBSUMO_NAMESPACE::InductionLoop::storeShape(), and MSMeanData::writeEdge().

Here is the caller graph for this function:

◆ getMDRAC_PRT()

◆ getMeasuresAndThresholds()

◆ getNumericalID()

SUMOVehicle::NumericalID MSVehicleDevice::getNumericalID ( ) const
inlineinherited

◆ getOutputFilename()

std::string MSDevice_SSM::getOutputFilename ( const SUMOVehicle v,
std::string  deviceID 
)
staticprivate

◆ getParameter()

std::string MSDevice_SSM::getParameter ( const std::string &  key) const
virtual

try to retrieve the given parameter from this device. Throw exception for unsupported key

Reimplemented from MSDevice.

Definition at line 4253 of file MSDevice_SSM.cpp.

References deviceName(), INVALID_DOUBLE, MAX2(), MIN2(), myActiveEncounters, myComputeDRAC, myComputeMDRAC, myComputePET, myComputePPET, myComputeTTC, and toString().

◆ getUpstreamVehicles()

void MSDevice_SSM::getUpstreamVehicles ( const UpstreamScanStartInfo scanStart,
FoeInfoMap foeCollector,
std::set< const MSLane * > &  seenLanes,
const std::set< const MSJunction * > &  routeJunctions 
)
static

◆ getVehiclesOnJunction()

void MSDevice_SSM::getVehiclesOnJunction ( const MSJunction junction,
const MSLane egoJunctionLane,
double  egoDistToConflictLane,
const MSLane *const  egoConflictLane,
FoeInfoMap foeCollector,
std::set< const MSLane * > &  seenLanes 
)
static

Collects all vehicles on the junction into foeCollector.

Definition at line 3763 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(), Named::getIDSecure(), MSEdge::isCrossing(), and SIMTIME.

Referenced by findSurroundingVehicles(), and getUpstreamVehicles().

Here is the caller graph for this function:

◆ initEdgeFilter()

void MSDevice_SSM::initEdgeFilter ( )
staticprivate

initialize edge filter (once)

Definition at line 263 of file MSDevice_SSM.cpp.

References MSEdge::dictionary(), NamedObjectCont< T >::get(), MSNet::getInstance(), MSJunction::getInternalLanes(), MSNet::getJunctionControl(), OptionsCont::getOptions(), OptionsCont::getString(), myEdgeFilter, myEdgeFilterActive, myEdgeFilterInitialized, StringUtils::startsWith(), TLF, and WRITE_WARNING.

Referenced by buildVehicleDevices().

Here is the caller graph for this function:

◆ insertDefaultAssignmentOptions()

void MSDevice::insertDefaultAssignmentOptions ( const std::string &  deviceName,
const std::string &  optionsTopic,
OptionsCont oc,
const bool  isPerson = false 
)
staticprotectedinherited

◆ insertOptions()

void MSDevice_SSM::insertOptions ( OptionsCont oc)
static

Inserts MSDevice_SSM-options.

Parameters
[filled]oc The options container to add the options to

Definition at line 232 of file MSDevice_SSM.cpp.

References OptionsCont::addDescription(), OptionsCont::addOptionSubTopic(), DEFAULT_EXTRA_TIME, OptionsCont::doRegister(), MSDevice::insertDefaultAssignmentOptions(), and TL.

Referenced by MSDevice::insertOptions().

Here is the caller graph for this function:

◆ isParkingRerouter()

virtual bool MSMoveReminder::isParkingRerouter ( ) const
inlinevirtualinherited

Reimplemented in MSTriggeredRerouter.

Definition at line 285 of file MSMoveReminder.h.

◆ loadState()

void MSDevice::loadState ( const SUMOSAXAttributes attrs)
virtualinherited

Loads the state of the device from the given description.

The default implementation does nothing.

Parameters
[in]attrsXML attributes describing the current state

Reimplemented in MSDevice_Routing, MSDevice_Transportable, MSDevice_Tripinfo, MSDevice_Vehroutes, MSTransportableDevice_Routing, MSDevice_Battery, and MSDevice_StationFinder.

Definition at line 177 of file MSDevice.cpp.

◆ makeStringWithNAs() [1/4]

std::string MSDevice_SSM::makeStringWithNAs ( const Position p)
private

Definition at line 3212 of file MSDevice_SSM.cpp.

References gPrecision, gPrecisionGeo, Position::INVALID, myUseGeoCoords, and toString().

◆ makeStringWithNAs() [2/4]

std::string MSDevice_SSM::makeStringWithNAs ( const PositionVector v)
private

Definition at line 3202 of file MSDevice_SSM.cpp.

References gPrecision, gPrecisionGeo, Position::INVALID, myUseGeoCoords, and toString().

◆ makeStringWithNAs() [3/4]

std::string MSDevice_SSM::makeStringWithNAs ( const std::vector< double > &  v,
const double  NA 
)
staticprivate

make a string of a double vector and treat a special value as invalid ("NA")

Parameters
vvector to be converted to string
NAvalue to be treated as NA
sepseparator for values in string
Returns
String concatenation of the vector entries

Definition at line 3184 of file MSDevice_SSM.cpp.

References toString().

Referenced by flushGlobalMeasures(), and writeOutConflict().

Here is the caller graph for this function:

◆ makeStringWithNAs() [4/4]

std::string MSDevice_SSM::makeStringWithNAs ( const std::vector< double > &  v,
const std::vector< double > &  NAs 
)
staticprivate

Definition at line 3193 of file MSDevice_SSM.cpp.

References toString().

◆ notifyEnter()

bool MSDevice_SSM::notifyEnter ( SUMOTrafficObject veh,
MSMoveReminder::Notification  reason,
const MSLane enteredLane = 0 
)
virtual

Called whenever the holder enteres a lane.

Parameters
[in]vehThe entering vehicle.
[in]reasonReason for leaving the lane
[in]enteredLaneThe lane entered.
Returns
Always true to keep the device as it cannot be thrown away
See also
MSMoveReminder::notifyEnter
MSMoveReminder::Notification

Reimplemented from MSMoveReminder.

Definition at line 3301 of file MSDevice_SSM.cpp.

References DEBUG_COND, MSLane::getEdge(), Named::getID(), SUMOTrafficObject::getLane(), SUMOTrafficObject::isVehicle(), SIMTIME, and UNUSED_PARAMETER.

◆ notifyIdle()

virtual bool MSMoveReminder::notifyIdle ( SUMOTrafficObject veh)
inlinevirtualinherited

Computes idling emission values and adds them to the emission sums.

Idling implied by zero velocity, acceleration and slope

Parameters
[in]vehThe vehicle
See also
MSMoveReminder::notifyMove
PollutantsInterface

Reimplemented in MSDevice_Emissions, MSDevice_Tripinfo, MSMeanData_Emissions::MSLaneMeanDataValues, and MSDevice_StationFinder.

Definition at line 183 of file MSMoveReminder.h.

References UNUSED_PARAMETER.

◆ notifyLeave()

bool MSDevice_SSM::notifyLeave ( SUMOTrafficObject veh,
double  lastPos,
MSMoveReminder::Notification  reason,
const MSLane enteredLane = 0 
)
virtual

Called whenever the holder leaves a lane.

Parameters
[in]vehThe leaving vehicle.
[in]lastPosPosition on the lane when leaving.
[in]reasonReason for leaving the lane
[in]enteredLaneThe lane entered.
Returns
True if it did not leave the net.

Reimplemented from MSMoveReminder.

Definition at line 3316 of file MSDevice_SSM.cpp.

References DEBUG_COND, MSLane::getEdge(), Named::getID(), SUMOTrafficObject::getLane(), SUMOTrafficObject::isVehicle(), SIMTIME, and UNUSED_PARAMETER.

◆ notifyLeaveBack()

virtual bool MSMoveReminder::notifyLeaveBack ( SUMOTrafficObject veh,
Notification  reason,
const MSLane leftLane 
)
inlinevirtualinherited

Called if the vehicle's back leaves the reminder's lane.

Informs if vehicle back leaves reminder lane (due to lane change, removal from the network, or leaving to the next lane). The default is to do nothing.

Parameters
[in]vehThe leaving vehicle.
[in]reasonhow the vehicle leaves the lane
[in]leftLaneThe lane that the vehicle's back left
See also
Notification
Returns
True if the reminder wants to receive further info.

Reimplemented in MSDriveWay.

Definition at line 228 of file MSMoveReminder.h.

References UNUSED_PARAMETER.

◆ notifyMove()

bool MSDevice_SSM::notifyMove ( SUMOTrafficObject veh,
double  oldPos,
double  newPos,
double  newSpeed 
)
virtual

Checks for waiting steps when the vehicle moves.

Parameters
[in]vehVehicle that notifies.
[in]oldPosPosition before move.
[in]newPosPosition after move with newSpeed.
[in]newSpeedMoving speed.
Returns
Always true to keep the device as it cannot be thrown away

Reimplemented from MSMoveReminder.

Definition at line 3332 of file MSDevice_SSM.cpp.

References DEBUG_COND, Named::getID(), SIMTIME, and UNUSED_PARAMETER.

◆ notifyMoveInternal()

virtual void MSMoveReminder::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 
)
inlinevirtualinherited

Internal notification about the vehicle moves.

Note
meso uses this though it never calls notifyMove()

Indicator if the reminders is still active for the passed vehicle/parameters. If false, the vehicle will erase this reminder from its reminder-container.

Parameters
[in]vehVehicle that asks this reminder.
[in]frontOnLanetime the front of the vehicle spent on the lane.
[in]timeOnLanetime some part of the vehicle spent on the lane.
[in]meanSpeedFrontOnLaneAverage speed for the time that the front is on the lane.
[in]meanSpeedVehicleOnLaneAverage speed for the time that the vehicle is on the lane (with front or back).
[in]travelledDistanceFrontOnLanedistance travelled while overlapping with the lane.
[in]travelledDistanceVehicleOnLanedistance travelled while front was on the lane.
[in]meanLengthOnLanethe average length of the vehicle's part on the lane during the last step (==complete length in meso case)

Reimplemented in MSDevice_ElecHybrid, MSDevice_Emissions, MSDevice_Taxi, MSDevice_Transportable, MSDevice_Tripinfo, MSMeanData::MeanDataValueTracker, MSDevice_StationFinder, MSMeanData_Net::MSLaneMeanDataValues, MSMeanData_Harmonoise::MSLaneMeanDataValues, MSMeanData_Amitran::MSLaneMeanDataValues, and MSMeanData_Emissions::MSLaneMeanDataValues.

Definition at line 258 of file MSMoveReminder.h.

References UNUSED_PARAMETER.

Referenced by MSMoveReminder::updateDetector().

Here is the caller graph for this function:

◆ notifyParking()

virtual void MSMoveReminder::notifyParking ( )
inlinevirtualinherited

called to update state for parking vehicles

Reimplemented in MSDevice_Battery.

Definition at line 189 of file MSMoveReminder.h.

◆ notifyStopEnded()

virtual void MSMoveReminder::notifyStopEnded ( )
inlinevirtualinherited

called to update state for stopped vehicles

Reimplemented in MSDevice_Routing, and MSDevice_Vehroutes.

Definition at line 192 of file MSMoveReminder.h.

◆ operator=()

MSDevice_SSM & MSDevice_SSM::operator= ( const MSDevice_SSM )
private

Invalidated assignment operator.

◆ processEncounters()

void MSDevice_SSM::processEncounters ( FoeInfoMap foes,
bool  forceClose = false 
)
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.

Parameters
[in]foesFoe vehicles that have been found by findSurroundingVehicles()
[in]forceClosewhether 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 678 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_DOUBLE, MIN2(), myActiveEncounters, myHolderMS, myOldestActiveEncounterBegin, SIMTIME, and updateEncounter().

Referenced by resetEncounters(), and update().

Here is the caller graph for this function:

◆ qualifiesAsConflict()

bool MSDevice_SSM::qualifiesAsConflict ( Encounter e)
private

Tests if the SSM values exceed the threshold for qualification as conflict.

Definition at line 766 of file MSDevice_SSM.cpp.

References DEBUG_COND, MSDevice_SSM::Encounter::egoID, MSDevice_SSM::Encounter::foeID, INVALID_DOUBLE, MSDevice_SSM::Encounter::maxDRAC, MSDevice_SSM::Encounter::maxMDRAC, MSDevice_SSM::Encounter::minPPET, MSDevice_SSM::Encounter::minTTC, myComputeDRAC, myComputeMDRAC, myComputePET, myComputePPET, myComputeTTC, myHolderMS, myThresholds, MSDevice_SSM::Encounter::PET, SIMTIME, and MSDevice_SSM::Encounter::ConflictPointInfo::value.

Referenced by closeEncounter().

Here is the caller graph for this function:

◆ removeFromVehicleUpdateValues()

void MSMoveReminder::removeFromVehicleUpdateValues ( SUMOTrafficObject veh)
protectedinherited

Definition at line 89 of file MSMoveReminder.cpp.

References SUMOTrafficObject::getNumericalID(), and MSMoveReminder::myLastVehicleUpdateValues.

Referenced by MSMoveReminder::updateDetector().

Here is the caller graph for this function:

◆ requestsTrajectories()

bool MSDevice_SSM::requestsTrajectories ( const SUMOVehicle v)
staticprivate

◆ resetEncounters()

void MSDevice_SSM::resetEncounters ( )
private

Closes all current Encounters and moves conflicts to myPastConflicts,.

See also
processEncounters

Definition at line 669 of file MSDevice_SSM.cpp.

References processEncounters().

Referenced by updateAndWriteOutput(), and ~MSDevice_SSM().

Here is the caller graph for this function:

◆ saveState()

void MSDevice::saveState ( OutputDevice out) const
virtualinherited

Saves the state of the device.

The default implementation writes a warning and does nothing.

Parameters
[in]outThe OutputDevice to write the information into

Reimplemented in MSDevice_FCD, MSTransportableDevice_FCD, MSDevice_Routing, MSDevice_Transportable, MSDevice_Tripinfo, MSDevice_Vehroutes, MSTransportableDevice_Routing, MSDevice_Battery, and MSDevice_StationFinder.

Definition at line 171 of file MSDevice.cpp.

References Named::getID(), TL, and WRITE_WARNINGF.

◆ setDescription()

void MSMoveReminder::setDescription ( const std::string &  description)
inlineinherited

Definition at line 276 of file MSMoveReminder.h.

References MSMoveReminder::myDescription.

Referenced by MSMeanData::init(), MEInductLoop::MEInductLoop(), METriggeredCalibrator::METriggeredCalibrator(), and MSCalibrator::MSCalibrator().

Here is the caller graph for this function:

◆ setID()

virtual void Named::setID ( const std::string &  newID)
inlinevirtualinherited

resets the id

Parameters
[in]newIDThe new id of this object

Reimplemented in MSBaseVehicle, MSTransportable, and NBLoadedSUMOTLDef.

Definition at line 82 of file Named.h.

References Named::myID.

Referenced by Distribution_Parameterized::parse(), NBLoadedSUMOTLDef::reconstructLogic(), NBEdgeCont::rename(), NBNodeCont::rename(), GNEJunction::setAttribute(), NBLoadedSUMOTLDef::setID(), and IntermodalNetwork< E, L, N, V >::splitEdge().

Here is the caller graph for this function:

◆ setParameter()

void MSDevice_SSM::setParameter ( const std::string &  key,
const std::string &  value 
)
virtual

try to set the given parameter for this device. Throw exception for unsupported key

Reimplemented from MSDevice.

Definition at line 4309 of file MSDevice_SSM.cpp.

References deviceName(), StringUtils::toDouble(), and UNUSED_PARAMETER.

◆ storeEncountersExceedingMaxLength()

void MSDevice_SSM::storeEncountersExceedingMaxLength ( )
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.

◆ toGeo() [1/2]

void MSDevice_SSM::toGeo ( Position x)
staticprivate

convert SUMO-positions to geo coordinates (in place)

Definition at line 3040 of file MSDevice_SSM.cpp.

References GeoConvHelper::cartesian2geo(), and GeoConvHelper::getFinal().

Referenced by flushGlobalMeasures(), toGeo(), and writeOutConflict().

Here is the caller graph for this function:

◆ toGeo() [2/2]

void MSDevice_SSM::toGeo ( PositionVector x)
staticprivate

convert SUMO-positions to geo coordinates (in place)

Definition at line 3045 of file MSDevice_SSM.cpp.

References Position::INVALID, and toGeo().

◆ update()

void MSDevice_SSM::update ( )
private

Definition at line 528 of file MSDevice_SSM.cpp.

References computeGlobalMeasures(), createEncounters(), DEBUG_COND, findSurroundingVehicles(), Named::getID(), myActiveEncounters, myEdgeFilter, myEdgeFilterActive, myHolderMS, myPastConflicts, myRange, processEncounters(), and SIMTIME.

Referenced by updateAndWriteOutput().

Here is the caller graph for this function:

◆ 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 (.

See also
thresholds) to the output file.

Definition at line 509 of file MSDevice_SSM.cpp.

References DEBUG_COND, flushConflicts(), Named::getID(), SUMOVehicle::isOnRoad(), MSVehicleDevice::myHolder, myHolderMS, resetEncounters(), SIMTIME, and update().

◆ updateDetector()

void MSMoveReminder::updateDetector ( SUMOTrafficObject veh,
double  entryPos,
double  leavePos,
SUMOTime  entryTime,
SUMOTime  currentTime,
SUMOTime  leaveTime,
bool  cleanUp 
)
inherited

Definition at line 47 of file MSMoveReminder.cpp.

References SUMOTrafficObject::getNumericalID(), MSMoveReminder::myLastVehicleUpdateValues, MSMoveReminder::notifyMoveInternal(), MSMoveReminder::removeFromVehicleUpdateValues(), and STEPS2TIME.

Referenced by MEVehicle::updateDetectorForWriting().

Here is the caller graph for this function:

◆ updateEncounter()

bool MSDevice_SSM::updateEncounter ( Encounter e,
FoeInfo foeInfo 
)
private

Updates the encounter (adds a new trajectory point).

Returns
Returns false for new encounters, which should not be kept (if one vehicle has already left the conflict zone at encounter creation). True, otherwise.

Definition at line 842 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, Named::getID(), MSVehicle::getLane(), MSVehicle::getPosition(), MSVehicle::getPositionOnLane(), MSVehicle::getVelocityVector(), MSDevice_SSM::EncounterApproachInfo::mdrac, myExtraTime, MSDevice_SSM::EncounterApproachInfo::pet, MSDevice_SSM::EncounterApproachInfo::ppet, MSDevice_SSM::Encounter::resetExtraTime(), SIMTIME, MSDevice_SSM::Encounter::size(), MSDevice_SSM::EncounterApproachInfo::ttc, MSDevice_SSM::EncounterApproachInfo::type, and updatePassedEncounter().

Referenced by createEncounters(), and processEncounters().

Here is the caller graph for this function:

◆ updatePassedEncounter()

void MSDevice_SSM::updatePassedEncounter ( Encounter e,
FoeInfo foeInfo,
EncounterApproachInfo eInfo 
)
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 1882 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_DOUBLE, myExtraTime, myHolderMS, MSDevice_SSM::Encounter::resetExtraTime(), SIMTIME, TS, MSDevice_SSM::EncounterApproachInfo::type, and MSDevice_SSM::Encounter::typeSpan.

Referenced by updateEncounter().

Here is the caller graph for this function:

◆ useGeoCoords()

bool MSDevice_SSM::useGeoCoords ( const SUMOVehicle v)
staticprivate

◆ writeLanesPositions()

bool MSDevice_SSM::writeLanesPositions ( const SUMOVehicle v)
staticprivate

◆ writeNA()

std::string MSDevice_SSM::writeNA ( double  v,
double  NA = INVALID_DOUBLE 
)
staticprivate

Definition at line 3219 of file MSDevice_SSM.cpp.

References toString().

Referenced by estimateConflictTimes().

Here is the caller graph for this function:

◆ writeOutConflict()

void MSDevice_SSM::writeOutConflict ( Encounter e)
private

Definition at line 3054 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_DOUBLE, MSDevice_SSM::Encounter::Trajectory::lane, MSDevice_SSM::Encounter::Trajectory::lanePos, makeStringWithNAs(), MSDevice_SSM::Encounter::maxDRAC, MSDevice_SSM::Encounter::maxMDRAC, MSDevice_SSM::Encounter::MDRACspan, MSDevice_SSM::Encounter::minPPET, MSDevice_SSM::Encounter::minTTC, myComputeDRAC, myComputeMDRAC, myComputePET, myComputePPET, myComputeTTC, myHolderMS, myOutputFile, mySaveTrajectories, myUseGeoCoords, myWriteLanesPositions, OutputDevice::openTag(), MSDevice_SSM::Encounter::PET, MSDevice_SSM::Encounter::ConflictPointInfo::pos, MSDevice_SSM::Encounter::PPETspan, SIMTIME, MSDevice_SSM::Encounter::ConflictPointInfo::speed, 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().

Here is the caller graph for this function:

◆ writePositions()

bool MSDevice_SSM::writePositions ( const SUMOVehicle v)
staticprivate

Field Documentation

◆ EGO_ENCOUNTERTYPES

const std::set< int > MSDevice_SSM::EGO_ENCOUNTERTYPES
staticprivate

Definition at line 828 of file MSDevice_SSM.h.

Referenced by filterByConflictType().

◆ FOE_ENCOUNTERTYPES

const std::set< int > MSDevice_SSM::FOE_ENCOUNTERTYPES
staticprivate

Definition at line 827 of file MSDevice_SSM.h.

Referenced by filterByConflictType().

◆ myActiveEncounters

EncounterVector MSDevice_SSM::myActiveEncounters
private

◆ myBRspan

std::vector<double> MSDevice_SSM::myBRspan
private

All values for brake rate.

Definition at line 786 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myComputeBR

bool MSDevice_SSM::myComputeBR
private

Definition at line 759 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().

◆ myComputeDRAC

bool MSDevice_SSM::myComputeDRAC
private

◆ myComputeMDRAC

bool MSDevice_SSM::myComputeMDRAC
private

◆ myComputePET

bool MSDevice_SSM::myComputePET
private

Definition at line 759 of file MSDevice_SSM.h.

Referenced by getParameter(), MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().

◆ myComputePPET

bool MSDevice_SSM::myComputePPET
private

◆ myComputeSGAP

bool MSDevice_SSM::myComputeSGAP
private

Definition at line 759 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().

◆ myComputeTGAP

bool MSDevice_SSM::myComputeTGAP
private

Definition at line 759 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and MSDevice_SSM().

◆ myComputeTTC

bool MSDevice_SSM::myComputeTTC
private

Flags for switching on / off comutation of different SSMs, derived from myMeasures.

Definition at line 759 of file MSDevice_SSM.h.

Referenced by computeSSMs(), determineTTCandDRACandPPETandMDRAC(), getParameter(), MSDevice_SSM(), qualifiesAsConflict(), and writeOutConflict().

◆ myCreatedOutputFiles

std::set< std::string > MSDevice_SSM::myCreatedOutputFiles
staticprivate

remember which files were created already (don't duplicate xml root-elements)

Definition at line 808 of file MSDevice_SSM.h.

Referenced by cleanup(), and MSDevice_SSM().

◆ myDescription

std::string MSMoveReminder::myDescription
protectedinherited

a description of this moveReminder

Definition at line 297 of file MSMoveReminder.h.

Referenced by MSMoveReminder::getDescription(), and MSMoveReminder::setDescription().

◆ myDroppedConflictTypes

std::vector<int> MSDevice_SSM::myDroppedConflictTypes
private

Which conflict types to exclude from the output.

Definition at line 756 of file MSDevice_SSM.h.

Referenced by flushConflicts(), and MSDevice_SSM().

◆ myEdgeFilter

std::set< const MSEdge * > MSDevice_SSM::myEdgeFilter
staticprivate

spatial filter for SSM device output

Definition at line 800 of file MSDevice_SSM.h.

Referenced by cleanup(), getEdgeFilter(), initEdgeFilter(), and update().

◆ myEdgeFilterActive

bool MSDevice_SSM::myEdgeFilterActive
staticprivate

Definition at line 802 of file MSDevice_SSM.h.

Referenced by cleanup(), initEdgeFilter(), and update().

◆ myEdgeFilterInitialized

bool MSDevice_SSM::myEdgeFilterInitialized
staticprivate

Definition at line 801 of file MSDevice_SSM.h.

Referenced by buildVehicleDevices(), cleanup(), and initEdgeFilter().

◆ myEquipmentRNG

SumoRNG MSDevice::myEquipmentRNG
staticprivateinherited

A random number generator used to choose from vtype/route distributions and computing the speed factors.

Definition at line 181 of file MSDevice.h.

Referenced by MSDevice::equippedByDefaultAssignmentOptions(), and MSDevice::getEquipmentRNG().

◆ myExplicitIDs

std::map< std::string, std::set< std::string > > MSDevice::myExplicitIDs
staticprivateinherited

vehicles which explicitly carry a device, sorted by device, first

Definition at line 178 of file MSDevice.h.

Referenced by MSDevice::equippedByDefaultAssignmentOptions().

◆ myExtraTime

double MSDevice_SSM::myExtraTime
private

Extra time in seconds to be logged after a conflict is over.

Definition at line 746 of file MSDevice_SSM.h.

Referenced by createEncounters(), MSDevice_SSM(), updateEncounter(), and updatePassedEncounter().

◆ myFilterConflictTypes

bool MSDevice_SSM::myFilterConflictTypes
private

Whether to exclude certain conflicts containing certain conflict types from the output.

Definition at line 754 of file MSDevice_SSM.h.

Referenced by flushConflicts(), and MSDevice_SSM().

◆ myGlobalMeasuresLaneIDs

std::vector<std::string> MSDevice_SSM::myGlobalMeasuresLaneIDs
private

All values for lanes.

Definition at line 782 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myGlobalMeasuresLanesPositions

std::vector<double> MSDevice_SSM::myGlobalMeasuresLanesPositions
private

All values for positions on the lanes.

Definition at line 784 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myGlobalMeasuresPositions

PositionVector MSDevice_SSM::myGlobalMeasuresPositions
private

All values for positions (coordinates)

Definition at line 780 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myGlobalMeasuresTimeSpan

std::vector<double> MSDevice_SSM::myGlobalMeasuresTimeSpan
private

Definition at line 778 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myHolder

SUMOVehicle& MSVehicleDevice::myHolder
protectedinherited

The vehicle that stores the device.

Definition at line 90 of file MSVehicleDevice.h.

Referenced by MSDevice_ElecHybrid::acceleration(), MSDevice_Vehroutes::addRoute(), MSDevice_Transportable::addTransportable(), MSDevice_StationFinder::alreadyPlannedCharging(), MSDevice_Transportable::anyLeavingAtStop(), MSDevice_ToC::awarenessRecoveryStep(), MSDevice_Taxi::cancelCurrentCustomers(), MSDevice_Taxi::cancelCustomer(), MSDevice_ToC::checkDynamicToC(), MSDevice_Taxi::compatibleLine(), MSDevice_ElecHybrid::computeChargedEnergy(), computeGlobalMeasures(), MSDevice_ElecHybrid::consumption(), MSDevice_Taxi::customerArrived(), MSDevice_ToC::deactivateDeliberateLCs(), MSDevice_Taxi::dispatchShared(), MSDevice_StationFinder::estimateConsumption(), MSDevice_StationFinder::evaluateCustomComponents(), MSDevice_StationFinder::findChargingStation(), findFoeConflictLane(), MSDevice_StationFinder::freeSpaceAtChargingStation(), MSDevice_Tripinfo::generateOutput(), MSDevice_Tripinfo::generateOutputForUnfinished(), MSVehicleDevice::getHolder(), MSDevice_StationFinder::getLastStepStoppingPlaceOccupancy(), MSVehicleDevice::getNumericalID(), MSDevice_ElecHybrid::getParameter(), MSDevice_Routing::getParameter(), MSDevice_Taxi::getParameter(), MSDevice_Battery::getParameter(), MSDevice_ToC::getParameter(), MSDevice_ElecHybrid::getParameterDouble(), MSDevice_Taxi::getStopLane(), MSDevice_StationFinder::getStoppingPlaceCapacity(), MSDevice_StationFinder::getStoppingPlaceOccupancy(), MSDevice_Taxi::hasFuturePickup(), MSDevice_Routing::loadState(), MSDevice_FCDReplay::move(), MSDevice_ToC::MRMExecutionStep(), MSDevice_ElecHybrid::MSDevice_ElecHybrid(), MSDevice_Taxi::MSDevice_Taxi(), MSDevice_Routing::notifyEnter(), MSDevice_Vehroutes::notifyEnter(), MSDevice_Emissions::notifyIdle(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Battery::notifyMove(), MSDevice_Bluelight::notifyMove(), MSDevice_Emissions::notifyMove(), MSDevice_Friction::notifyMove(), MSDevice_Transportable::notifyMove(), MSDevice_StationFinder::notifyMove(), MSDevice_ToC::notifyMove(), MSDevice_Emissions::notifyMoveInternal(), MSDevice_Battery::notifyParking(), MSDevice_Vehroutes::notifyStopEnded(), MSVehicleDevice::ComparatorNumericalVehicleIdLess::operator()(), MSDevice_Routing::preInsertionReroute(), MSDevice_Taxi::prepareStop(), MSDevice_Transportable::removeTransportable(), MSDevice_ToC::requestToC(), MSDevice_Routing::reroute(), MSDevice_StationFinder::rerouteToChargingStation(), MSDevice_ToC::resetDeliberateLCs(), MSDevice_Bluelight::resetVehicle(), MSDevice_Tripinfo::saveState(), MSDevice_ElecHybrid::setParameter(), MSDevice_Taxi::setParameter(), MSDevice_Battery::setParameter(), MSDevice_ToC::setVehicleColor(), MSDevice_ToC::switchHolderType(), MSDevice_StationFinder::teleportToChargingStation(), MSDevice_ToC::ToCPreparationStep(), MSDevice_Transportable::transferAtSplitOrJoin(), MSDevice_ToC::triggerDownwardToC(), MSDevice_ToC::triggerMRM(), MSDevice_ToC::triggerUpwardToC(), updateAndWriteOutput(), MSDevice_StationFinder::updateChargeLimit(), MSDevice_Taxi::updateMove(), MSDevice_Routing::wrappedRerouteCommandExecute(), MSDevice_ToC::writeOutput(), MSDevice_Vehroutes::writeOutput(), MSDevice_Vehroutes::writeXMLRoute(), MSDevice_Transportable::~MSDevice_Transportable(), and MSDevice_Vehroutes::~MSDevice_Vehroutes().

◆ myHolderMS

◆ myID

std::string Named::myID
protectedinherited

The name of the object.

Definition at line 125 of file Named.h.

Referenced by MSDriveWay::addBidiFoes(), MSE2Collector::addDetectorToLanes(), MSDriveWay::addFoes(), MSDriveWay::addParallelFoes(), MSDriveWay::addReversalFoes(), MSDriveWay::addSwitchFoes(), RODFDetector::buildDestinationDistribution(), MSDriveWay::buildDriveWay(), NGEdge::buildNBEdge(), NGNode::buildNBNode(), MSSOTLTrafficLightLogic::checkPhases(), NBNode::computeNodeShape(), NEMALogic::constructTimingAndPhaseDefs(), MSE2Collector::detectorUpdate(), GNEPOI::getAttribute(), GNEPoly::getAttribute(), MSLane::getCanonicalPredecessorLane(), MSLane::getCanonicalSuccessorLane(), Named::getID(), NBEdge::getLaneID(), NEMALogic::getPhaseObj(), ROEdge::getStoredEffort(), GNEPOI::getSumoBaseObject(), MSLane::getSurroundingVehicles(), ROEdge::getTravelTime(), NBEdge::init(), MSSOTLTrafficLightLogic::init(), MSDelayBasedTrafficLightLogic::init(), NEMALogic::init(), MSLane::isInsertionSuccess(), NBNode::NBNode(), NBNode::NBNode(), MSE2Collector::notifyEnter(), MSE2Collector::notifyLeave(), MSE2Collector::notifyMove(), MSMeanData::openInterval(), NEMALogic::parseControllerType(), RORouteDef::preComputeCurrentRoute(), NBEdge::reinitNodes(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), NBEdge::setGeometry(), Named::setID(), MSSOTLTrafficLightLogic::setToATargetPhase(), Distribution_Parameterized::toStr(), MSChargingStation::writeAggregatedChargingStationOutput(), MSDriveWay::writeBlocks(), MSDriveWay::writeBlockVehicles(), MSChargingStation::writeChargingStationOutput(), RODFDetector::writeEmitterDefinition(), MSOverheadWire::writeOverheadWireSegmentOutput(), RODFDetector::writeSingleSpeedTrigger(), MSTractionSubstation::writeTractionSubstationOutput(), MEInductLoop::writeXMLOutput(), and MSE3Collector::writeXMLOutput().

◆ myInstances

std::set< MSDevice_SSM *, ComparatorNumericalIdLess > * MSDevice_SSM::myInstances = new std::set<MSDevice_SSM*, ComparatorNumericalIdLess>()
staticprivate

All currently existing SSM devices.

Definition at line 59 of file MSDevice_SSM.h.

Referenced by cleanup(), getInstances(), MSDevice_SSM(), and ~MSDevice_SSM().

◆ myIssuedParameterWarnFlags

int MSDevice_SSM::myIssuedParameterWarnFlags = 0
staticprivate

bitset storing info whether warning has already been issued about unset parameter (warn only once!)

Definition at line 812 of file MSDevice_SSM.h.

Referenced by filterByConflictType(), getDetectionRange(), getExtraTime(), getMDRAC_PRT(), getMeasuresAndThresholds(), getOutputFilename(), requestsTrajectories(), useGeoCoords(), writeLanesPositions(), and writePositions().

◆ myLane

◆ myLastVehicleUpdateValues

std::map<long long int, std::pair<SUMOTime, double> > MSMoveReminder::myLastVehicleUpdateValues
privateinherited

◆ myMaxBR

std::pair<std::pair<double, Position>, double> MSDevice_SSM::myMaxBR
private

Extremal values for the global measures (as <<<time, Position>, value>, [leaderID]>-pairs)

Definition at line 793 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myMDRACPRT

double MSDevice_SSM::myMDRACPRT
private

perception reaction time for MDRAC

Definition at line 744 of file MSDevice_SSM.h.

Referenced by determineTTCandDRACandPPETandMDRAC().

◆ myMinSGAP

std::pair<std::pair<std::pair<double, Position>, double>, std::string> MSDevice_SSM::myMinSGAP
private

Definition at line 794 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myMinTGAP

std::pair<std::pair<std::pair<double, Position>, double>, std::string> MSDevice_SSM::myMinTGAP
private

Definition at line 795 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myOldestActiveEncounterBegin

double MSDevice_SSM::myOldestActiveEncounterBegin
private

begin time of the oldest active encounter

Definition at line 769 of file MSDevice_SSM.h.

Referenced by createEncounters(), flushConflicts(), and processEncounters().

◆ myOutputFile

OutputDevice* MSDevice_SSM::myOutputFile
private

Output device.

Definition at line 805 of file MSDevice_SSM.h.

Referenced by flushGlobalMeasures(), MSDevice_SSM(), and writeOutConflict().

◆ myPastConflicts

EncounterQueue MSDevice_SSM::myPastConflicts
private

Past encounters that where qualified as conflicts and are not yet flushed to the output file.

Definition at line 771 of file MSDevice_SSM.h.

Referenced by closeEncounter(), flushConflicts(), MSDevice_SSM(), and update().

◆ myRange

double MSDevice_SSM::myRange
private

Detection range. For vehicles closer than this distance from the ego vehicle, SSMs are traced.

Definition at line 742 of file MSDevice_SSM.h.

Referenced by findFoeConflictLane(), MSDevice_SSM(), and update().

◆ mySaveTrajectories

bool MSDevice_SSM::mySaveTrajectories
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 740 of file MSDevice_SSM.h.

Referenced by MSDevice_SSM(), and writeOutConflict().

◆ mySGAPspan

std::vector<double> MSDevice_SSM::mySGAPspan
private

All values for space gap.

Definition at line 788 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myTGAPspan

std::vector<double> MSDevice_SSM::myTGAPspan
private

All values for time gap.

Definition at line 790 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().

◆ myThresholds

std::map<std::string, double> MSDevice_SSM::myThresholds
private

Definition at line 737 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), MSDevice_SSM(), and qualifiesAsConflict().

◆ myUseGeoCoords

bool MSDevice_SSM::myUseGeoCoords
private

Whether to use the original coordinate system for output.

Definition at line 748 of file MSDevice_SSM.h.

Referenced by flushGlobalMeasures(), makeStringWithNAs(), makeStringWithNAs(), MSDevice_SSM(), and writeOutConflict().

◆ myWriteLanesPositions

bool MSDevice_SSM::myWriteLanesPositions
private

Wether to print the lanes and positions for all timesteps and conflicts.

Definition at line 752 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), flushGlobalMeasures(), and writeOutConflict().

◆ myWritePositions

bool MSDevice_SSM::myWritePositions
private

Wether to print the positions for all timesteps.

Definition at line 750 of file MSDevice_SSM.h.

Referenced by computeGlobalMeasures(), and flushGlobalMeasures().


The documentation for this class was generated from the following files: