Eclipse SUMO - Simulation of Urban MObility
Command_SaveTLSProgram Class Reference

Writes the switch times of a tls into a file when the tls switches. More...

#include <Command_SaveTLSProgram.h>

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

Public Member Functions

 Command_SaveTLSProgram (const MSTLLogicControl::TLSLogicVariants &logics, OutputDevice &od)
 Constructor. More...
 
virtual SUMOTime shiftTime (SUMOTime, SUMOTime, SUMOTime)
 Reschedule or deschedule the command when quick-loading state. More...
 
 ~Command_SaveTLSProgram ()
 Destructor. More...
 
Derived from Command
SUMOTime execute (SUMOTime currentTime)
 Writes the state of the tls if a change occurred. More...
 

Data Fields

int priority = 0
 

Private Member Functions

 Command_SaveTLSProgram (const Command_SaveTLSProgram &)
 Invalidated copy constructor. More...
 
Command_SaveTLSProgramoperator= (const Command_SaveTLSProgram &)
 Invalidated assignment operator. More...
 
void writeCurrent ()
 Write the current program. More...
 

Private Attributes

const MSTLLogicControl::TLSLogicVariantsmyLogics
 The traffic light logic to use. More...
 
OutputDevicemyOutputDevice
 The device to write to. More...
 
std::string myPreviousProgramID
 Storage for prior sub-id. More...
 
std::vector< MSPhaseDefinitionmyPreviousStates
 Storage for prior state. More...
 
std::string myTLSID
 Storage for the tls ID (needed in destructor) More...
 

Detailed Description

Writes the switch times of a tls into a file when the tls switches.

Todo:
Revalidate this - as tls are not seting the link information directly ater being switched, the computed information may be delayed

Definition at line 46 of file Command_SaveTLSProgram.h.

Constructor & Destructor Documentation

◆ Command_SaveTLSProgram() [1/2]

Command_SaveTLSProgram::Command_SaveTLSProgram ( const MSTLLogicControl::TLSLogicVariants logics,
OutputDevice od 
)

Constructor.

Parameters
[in]tllsThe logic to write state of
[in]odThe output device to write the state into

Definition at line 34 of file Command_SaveTLSProgram.cpp.

References MSEventControl::addEvent(), MSNet::getEndOfTimestepEvents(), MSNet::getInstance(), myOutputDevice, and OutputDevice::writeXMLHeader().

◆ ~Command_SaveTLSProgram()

Command_SaveTLSProgram::~Command_SaveTLSProgram ( )

Destructor.

Definition at line 42 of file Command_SaveTLSProgram.cpp.

References writeCurrent().

◆ Command_SaveTLSProgram() [2/2]

Command_SaveTLSProgram::Command_SaveTLSProgram ( const Command_SaveTLSProgram )
private

Invalidated copy constructor.

Member Function Documentation

◆ execute()

SUMOTime Command_SaveTLSProgram::execute ( SUMOTime  currentTime)
virtual

Writes the state of the tls if a change occurred.

If the state or the active program has changed, the state is written to the output device.

Parameters
[in]currentTimeThe current simulation time
Returns
Always DELTA_T (will be executed in next time step)
See also
Command
Todo:
Here, a discrete even (on switch / program change) would be appropriate

Implements Command.

Definition at line 48 of file Command_SaveTLSProgram.cpp.

References DELTA_T, MSTLLogicControl::TLSLogicVariants::getActive(), MSTrafficLightLogic::getCurrentPhaseDef(), Named::getID(), MSPhaseDefinition::getName(), MSTrafficLightLogic::getProgramID(), MSPhaseDefinition::getState(), myLogics, myPreviousProgramID, myPreviousStates, myTLSID, and writeCurrent().

◆ operator=()

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

Invalidated assignment operator.

◆ shiftTime()

virtual SUMOTime Command::shiftTime ( SUMOTime  ,
SUMOTime  ,
SUMOTime   
)
inlinevirtualinherited

Reschedule or deschedule the command when quick-loading state.

The implementations should return -1 if the command shall not be re-scheduled, or a value >= 0 that describe the new time at which the command shall be executed again.

Parameters
[in]currentTimeThe current simulation time
[in]execTimeThe time at which the command would have been executed
[in]newTimeThe simulation time at which the simulation is restarted
Returns
The time at which the command shall be executed again

Reimplemented in MSCalibrator::CalibratorCommand, and MSTrafficLightLogic::SwitchCommand.

Definition at line 83 of file Command.h.

◆ writeCurrent()

void Command_SaveTLSProgram::writeCurrent ( )
private

Write the current program.

Definition at line 64 of file Command_SaveTLSProgram.cpp.

References OutputDevice::closeTag(), myOutputDevice, myPreviousProgramID, myPreviousStates, myTLSID, OutputDevice::openTag(), STEPS2TIME, SUMO_ATTR_DURATION, SUMO_ATTR_ID, SUMO_ATTR_NAME, SUMO_ATTR_PROGRAMID, SUMO_ATTR_STATE, SUMO_ATTR_TYPE, SUMO_TAG_PHASE, SUMO_TAG_TLLOGIC, TIME2STEPS, OutputDevice::writeAttr(), and OutputDevice::writePadding().

Referenced by execute(), and ~Command_SaveTLSProgram().

Here is the caller graph for this function:

Field Documentation

◆ myLogics

const MSTLLogicControl::TLSLogicVariants& Command_SaveTLSProgram::myLogics
private

The traffic light logic to use.

Definition at line 86 of file Command_SaveTLSProgram.h.

Referenced by execute().

◆ myOutputDevice

OutputDevice& Command_SaveTLSProgram::myOutputDevice
private

The device to write to.

Definition at line 83 of file Command_SaveTLSProgram.h.

Referenced by Command_SaveTLSProgram(), and writeCurrent().

◆ myPreviousProgramID

std::string Command_SaveTLSProgram::myPreviousProgramID
private

Storage for prior sub-id.

Definition at line 92 of file Command_SaveTLSProgram.h.

Referenced by execute(), and writeCurrent().

◆ myPreviousStates

std::vector<MSPhaseDefinition> Command_SaveTLSProgram::myPreviousStates
private

Storage for prior state.

Definition at line 89 of file Command_SaveTLSProgram.h.

Referenced by execute(), and writeCurrent().

◆ myTLSID

std::string Command_SaveTLSProgram::myTLSID
private

Storage for the tls ID (needed in destructor)

Definition at line 95 of file Command_SaveTLSProgram.h.

Referenced by execute(), and writeCurrent().

◆ priority

int Command::priority = 0
inherited

Definition at line 87 of file Command.h.

Referenced by MSTrafficLightLogic::SwitchCommand::SwitchCommand().


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