SUMO - Simulation of Urban MObility
Command_SaveTLCoupledLaneDet.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2018 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
17 // Writes e2 state of a link for the time the link has yellow/red
18 /****************************************************************************/
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
27 #include <microsim/MSNet.h>
31 #include <microsim/MSLinkCont.h>
35 
36 
37 // ===========================================================================
38 // method definitions
39 // ===========================================================================
41  MSDetectorFileOutput* dtf, SUMOTime begin, OutputDevice& device, MSLink* link)
42  : Command_SaveTLCoupledDet(tlls, dtf, begin, device),
43  myLink(link), myLastState(LINKSTATE_TL_RED),
44  myHadOne(false) {
45  execute();
46 }
47 
48 
50 }
51 
52 
53 void
55  if (myLink->getState() == myLastState && myHadOne) {
56  return;
57  }
58  myHadOne = true;
61  if (myStartTime != end) {
63  myStartTime = end;
64  }
65  } else if (myLink->getState() == LINKSTATE_TL_RED) {
66  myDetector->reset();
68  }
70 }
71 
72 
73 
74 /****************************************************************************/
75 
long long int SUMOTime
Definition: SUMOTime.h:36
bool myHadOne
Whether the last link state was already saved.
Storage for all programs of a single tls.
MSLink * myLink
The link to observe.
virtual void reset()
Resets collected values.
LinkState myLastState
The state the link had the last time.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
Definition: MSNet.cpp:165
Writes e2 state on each tls switch.
SUMOTime myStartTime
The last time the values were written.
SUMOTime getCurrentTimeStep() const
Returns the current simulation step.
Definition: MSNet.h:263
Command_SaveTLCoupledLaneDet(MSTLLogicControl::TLSLogicVariants &tlls, MSDetectorFileOutput *dtf, SUMOTime begin, OutputDevice &device, MSLink *link)
Constructor.
void execute()
Executes the command.
The link has red light (must brake)
virtual void writeXMLOutput(OutputDevice &dev, SUMOTime startTime, SUMOTime stopTime)=0
Write the generated output to the given device.
Static storage of an output device and its base (abstract) implementation.
Definition: OutputDevice.h:64
OutputDevice & myDevice
The file to write the output to.
MSDetectorFileOutput * myDetector
The detector to use.
Base of value-generating classes (detectors)