SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSInductLoop Class Reference

An unextended detector measuring at a fixed position on a fixed lane. More...

#include <MSInductLoop.h>

Inheritance diagram for MSInductLoop:
MSMoveReminder MSDetectorFileOutput Named GUIInductLoop

Data Structures

struct  VehicleData
 Struct to store the data of the counted vehicle internally. More...
 

Public Types

enum  Notification {
  NOTIFICATION_DEPARTED, NOTIFICATION_JUNCTION, NOTIFICATION_SEGMENT, NOTIFICATION_LANE_CHANGE,
  NOTIFICATION_TELEPORT, NOTIFICATION_PARKING, NOTIFICATION_ARRIVED, NOTIFICATION_VAPORIZED,
  NOTIFICATION_TELEPORT_ARRIVED
}
 Definition of a vehicle state. More...
 

Public Member Functions

void addTo (const StoringVisitor &cont) const
 Adds this object to the given container. More...
 
virtual std::vector< VehicleDatacollectVehiclesOnDet (SUMOTime t) const
 Returns vehicle data for vehicles that have been on the detector starting at the given time. More...
 
const std::string & getID () const
 Returns the id. More...
 
const MSLanegetLane () const
 Returns the lane the reminder works on. More...
 
SUMOReal getPosition () const
 Returns the position of the detector on the lane. More...
 
 MSInductLoop (const std::string &id, MSLane *const lane, SUMOReal positionInMeters, bool splitByType)
 Constructor. More...
 
virtual void notifyMoveInternal (SUMOVehicle &veh, SUMOReal timeOnLane, SUMOReal speed)
 Internal notification about the vehicle moves. More...
 
virtual void reset ()
 Resets all generated values to allow computation of next interval. More...
 
void setID (const std::string &newID)
 resets the id More...
 
 ~MSInductLoop ()
 Destructor. More...
 
Methods inherited from MSMoveReminder
bool notifyMove (SUMOVehicle &veh, SUMOReal oldPos, SUMOReal newPos, SUMOReal newSpeed)
 Checks whether the vehicle shall be counted and/or shall still touch this MSMoveReminder. More...
 
bool notifyLeave (SUMOVehicle &veh, SUMOReal lastPos, MSMoveReminder::Notification reason)
 Dismisses the vehicle if it is on the detector due to a lane change. More...
 
bool notifyEnter (SUMOVehicle &veh, MSMoveReminder::Notification reason)
 Returns whether the detector may has to be concerned during the vehicle's further movement. More...
 
Methods returning current values
SUMOReal getCurrentSpeed () const
 Returns the speed of the vehicle on the detector. More...
 
SUMOReal getCurrentLength () const
 Returns the length of the vehicle on the detector. More...
 
SUMOReal getCurrentOccupancy () const
 Returns the current occupancy. More...
 
unsigned int getCurrentPassedNumber () const
 Returns the number of vehicles that have passed the detector. More...
 
std::vector< std::string > getCurrentVehicleIDs () const
 Returns the ids of vehicles that have passed the detector. More...
 
SUMOReal getTimestepsSinceLastDetection () const
 Returns the time since the last vehicle left the detector. More...
 
Methods inherited from MSDetectorFileOutput.
void writeXMLOutput (OutputDevice &dev, SUMOTime startTime, SUMOTime stopTime)
 Writes collected values into the given stream. More...
 
void writeXMLDetectorProlog (OutputDevice &dev) const
 Opens the XML-output using "detector" as root element. More...
 
Virtual methods to implement by derived classes
virtual void detectorUpdate (const SUMOTime step)
 Updates the detector (computes values) More...
 
virtual GUIDetectorWrapperbuildDetectorGUIRepresentation ()
 Builds the graphical representation. More...
 

Protected Types

typedef std::deque< VehicleDataVehicleDataCont
 Type of myVehicleDataCont. More...
 
typedef std::map< SUMOVehicle
*, SUMOReal
VehicleMap
 Type of myVehiclesOnDet. More...
 

Protected Member Functions

void writeTypedXMLOutput (OutputDevice &dev, SUMOTime startTime, SUMOTime stopTime, const std::string &type, const VehicleDataCont &vdc, const VehicleMap &vm)
 
Methods that add and remove vehicles from internal container
virtual void enterDetectorByMove (SUMOVehicle &veh, SUMOReal entryTimestep)
 Introduces a vehicle to the detector's map myVehiclesOnDet. More...
 
virtual void leaveDetectorByMove (SUMOVehicle &veh, SUMOReal leaveTimestep)
 Processes a vehicle that leaves the detector. More...
 
virtual void leaveDetectorByLaneChange (SUMOVehicle &veh)
 Removes a vehicle from the detector's map myVehiclesOnDet. More...
 

Static Protected Member Functions

Function for summing up values
static SUMOReal speedSum (SUMOReal sumSoFar, const MSInductLoop::VehicleData &data)
 Adds up VehicleData::speedM. More...
 
static SUMOReal lengthSum (SUMOReal sumSoFar, const MSInductLoop::VehicleData &data)
 Adds up VehicleData::lengthM. More...
 

Protected Attributes

unsigned myDismissedVehicleNumber
 The number of dismissed vehicles. More...
 
std::string myID
 The name of the object. More...
 
MSLane *const myLane
 Lane on which the reminder works. More...
 
SUMOReal myLastLeaveTime
 Leave-time of the last vehicle detected [s]. More...
 
SUMOReal myLastOccupancy
 Occupancy by the last vehicle detected. More...
 
VehicleDataCont myLastVehicleDataCont
 Data of vehicles that have completely passed the detector in the last time interval. More...
 
const SUMOReal myPosition
 Detector's position on lane [m]. More...
 
bool mySplitByType
 Whether additional information split by vehicle classes shall be generated. More...
 
VehicleDataCont myVehicleDataCont
 Data of vehicles that have completely passed the detector. More...
 
VehicleMap myVehiclesOnDet
 Data for vehicles that have entered the detector (vehicle -> enter time) More...
 

Private Member Functions

 MSInductLoop (const MSInductLoop &)
 Invalidated copy constructor. More...
 
MSInductLoopoperator= (const MSInductLoop &)
 Invalidated assignment operator. More...
 

Detailed Description

An unextended detector measuring at a fixed position on a fixed lane.

Only vehicles that passed the entire detector are counted. We ignore vehicles that are emitted onto the detector and vehicles that change their lane while they are on the detector, because we cannot determine a meaningful enter/leave-times.

This detector uses the MSMoveReminder mechanism, i.e. the vehicles call the detector if they pass it.

See Also
MSMoveReminder
MSDetectorFileOutput

Definition at line 70 of file MSInductLoop.h.

Member Typedef Documentation

typedef std::deque< VehicleData > MSInductLoop::VehicleDataCont
protected

Type of myVehicleDataCont.

Definition at line 356 of file MSInductLoop.h.

typedef std::map< SUMOVehicle*, SUMOReal > MSInductLoop::VehicleMap
protected

Type of myVehiclesOnDet.

Definition at line 366 of file MSInductLoop.h.

Member Enumeration Documentation

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_TELEPORT 

The vehicle is being teleported.

NOTIFICATION_PARKING 

The vehicle starts or ends parking.

NOTIFICATION_ARRIVED 

The vehicle arrived at its destination (is deleted)

NOTIFICATION_VAPORIZED 

The vehicle got vaporized.

NOTIFICATION_TELEPORT_ARRIVED 

The vehicle was teleported out of the net.

Definition at line 93 of file MSMoveReminder.h.

Constructor & Destructor Documentation

MSInductLoop::MSInductLoop ( const std::string &  id,
MSLane *const  lane,
SUMOReal  positionInMeters,
bool  splitByType 
)

Constructor.

Adds reminder to MSLane.

Parameters
[in]idUnique id
[in]laneLane where detector woks on
[in]positionPosition of the detector within the lane
[in]splitByTypeWhether additional information split by vehicle classes shall be generated

Definition at line 59 of file MSInductLoop.cpp.

References myPosition, and reset().

MSInductLoop::~MSInductLoop ( )

Destructor.

Definition at line 71 of file MSInductLoop.cpp.

MSInductLoop::MSInductLoop ( const MSInductLoop )
private

Invalidated copy constructor.

Member Function Documentation

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 114 of file Named.h.

References Named::StoringVisitor::add().

virtual GUIDetectorWrapper* MSDetectorFileOutput::buildDetectorGUIRepresentation ( )
inlinevirtualinherited

Builds the graphical representation.

Meant to be overridden by graphical versions of the detectors

Returns
A wrapper for the detector which performs the user I/O within the GUI

Reimplemented in GUI_E2_ZS_Collector, GUIInductLoop, GUIE3Collector, GUI_E2_ZS_CollectorOverLanes, and GUIInstantInductLoop.

Definition at line 123 of file MSDetectorFileOutput.h.

std::vector< MSInductLoop::VehicleData > MSInductLoop::collectVehiclesOnDet ( SUMOTime  t) const
virtual
virtual void MSDetectorFileOutput::detectorUpdate ( const SUMOTime  step)
inlinevirtualinherited

Updates the detector (computes values)

Parameters
[in]stepThe current time step

Reimplemented in MSMeanData, MSE3Collector, MSMeanData_Harmonoise, and MSE2Collector.

Definition at line 113 of file MSDetectorFileOutput.h.

References UNUSED_PARAMETER.

void MSInductLoop::enterDetectorByMove ( SUMOVehicle veh,
SUMOReal  entryTimestep 
)
protectedvirtual

Introduces a vehicle to the detector's map myVehiclesOnDet.

Parameters
vehThe entering vehicle.
entryTimestepTimestep (not necessary integer) of entrance.

Reimplemented in GUIInductLoop.

Definition at line 277 of file MSInductLoop.cpp.

References myVehiclesOnDet.

Referenced by GUIInductLoop::enterDetectorByMove(), and notifyMove().

SUMOReal MSInductLoop::getCurrentLength ( ) const

Returns the length of the vehicle on the detector.

If no vehicle is on the detector, -1 is returned, otherwise this vehicle's length.

Returns
The length [m] of the vehicle if one is on the detector, -1 otherwise

Definition at line 144 of file MSInductLoop.cpp.

References collectVehiclesOnDet(), DELTA_T, MSNet::getInstance(), lengthSum(), and SUMOReal.

Referenced by GUIInductLoop::MyWrapper::getParameterWindow(), and TraCIServerAPI_InductionLoop::processGet().

SUMOReal MSInductLoop::getCurrentOccupancy ( ) const

Returns the current occupancy.

If a vehicle is on the detector, 1 is returned. If a vehicle has passed the detector in this timestep, its occupancy value is returned. If no vehicle has passed, 0 is returned.

Returns
This detector's current occupancy
Todo:
recheck (especially if more than one vehicle has passed)

Definition at line 153 of file MSInductLoop.cpp.

References collectVehiclesOnDet(), DELTA_T, MSNet::getCurrentTimeStep(), MSNet::getInstance(), MAX2(), MIN2(), STEPS2TIME, SUMOReal, and TS.

Referenced by GUIInductLoop::MyWrapper::getParameterWindow(), and TraCIServerAPI_InductionLoop::processGet().

unsigned int MSInductLoop::getCurrentPassedNumber ( ) const

Returns the number of vehicles that have passed the detector.

If a vehicle is on the detector, 1 is returned. If a vehicle has passed the detector in this timestep, 1 is returned. If no vehicle has passed, 0 is returned.

Returns
The number of vehicles that have passed the detector
Todo:
recheck (especially if more than one vehicle has passed)

Definition at line 170 of file MSInductLoop.cpp.

References collectVehiclesOnDet(), DELTA_T, and MSNet::getInstance().

Referenced by GUIInductLoop::MyWrapper::getParameterWindow(), and TraCIServerAPI_InductionLoop::processGet().

SUMOReal MSInductLoop::getCurrentSpeed ( ) const

Returns the speed of the vehicle on the detector.

If no vehicle is on the detector, -1 is returned, otherwise this vehicle's current speed.

Returns
The speed [m/s] of the vehicle if one is on the detector, -1 otherwise

Definition at line 135 of file MSInductLoop.cpp.

References collectVehiclesOnDet(), DELTA_T, MSNet::getInstance(), speedSum(), and SUMOReal.

Referenced by GUIInductLoop::MyWrapper::getParameterWindow(), and TraCIServerAPI_InductionLoop::processGet().

std::vector< std::string > MSInductLoop::getCurrentVehicleIDs ( ) const

Returns the ids of vehicles that have passed the detector.

Returns
The ids of vehicles that have passed the detector
Todo:
recheck (especially if more than one vehicle has passed)

Definition at line 177 of file MSInductLoop.cpp.

References collectVehiclesOnDet(), DELTA_T, and MSNet::getInstance().

Referenced by TraCIServerAPI_InductionLoop::processGet().

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

Returns the id.

Returns
The stored id

Definition at line 60 of file Named.h.

References Named::myID.

Referenced by Named::StoringVisitor::add(), MSDetectorControl::add(), RORouteDef::addAlternative(), MSNet::addBusStop(), NBLoadedSUMOTLDef::addConnection(), NLHandler::addConnection(), NIImporter_OpenDrive::addE2EConnectionsSecure(), RONet::addNode(), NIImporter_SUMO::addPhase(), RONet::addRouteDef(), NBDistrict::addSink(), NBDistrict::addSource(), NBTrafficLightLogic::addStep(), MSRouteHandler::addStop(), NIXMLTrafficLightsHandler::addTlConnection(), NIVissimDisturbance::addToNode(), MSVehicle::addTraciStop(), MSPerson::MSPersonStage_Driving::beginEventOutput(), MSPerson::MSPersonStage_Waiting::beginEventOutput(), NIVisumTL::build(), MS_E2_ZS_CollectorOverLanes::buildCollector(), NIImporter_VISUM::buildDistrictNode(), NIVissimConnection::buildEdgeConnections(), NBEdge::buildInnerEdges(), NIVissimEdge::buildNBEdge(), NBRampsComputer::buildOffRamp(), NBRampsComputer::buildOnRamp(), MSVehicleTransfer::checkInsertions(), ODDistrictHandler::closeDistrict(), NLHandler::closeEdge(), RORouteHandler::closeRouteDistribution(), NBTrafficLightDefinition::collectEdges(), NBOwnTLDef::collectLinks(), NBTrafficLightDefinition::compute(), NBNode::computeInternalLaneShape(), NBEdge::computeLaneShapes(), NBNode::computeLogic(), NBNode::computeNodeShape(), NBTrafficLightLogicCont::computeSingleLogic(), NBTurningDirectionsComputer::computeTurnDirectionsForNode(), NBEdge::connections_sorter(), MSLane::detectCollisions(), NIVissimDistrictConnection::dict_BuildDistricts(), MSPerson::MSPersonStage_Driving::endEventOutput(), MSPerson::MSPersonStage_Waiting::endEventOutput(), MSE3Collector::enter(), Command_SaveTLSSwitches::execute(), MSVTypeProbe::execute(), NBNodeCont::extract(), NBTrafficLightLogicCont::extract(), NBEdgeCont::extract(), MSNet::getBusStopID(), MS_E2_ZS_CollectorOverLanes::getLanePredeccessorLanes(), NIImporter_VISUM::getNamedEdgeContinuating(), NLTriggerBuilder::getPosition(), NBNode::getPossiblySplittedIncoming(), NBNode::getPossiblySplittedOutgoing(), NIImporter_VISUM::getReversedContinuating(), NBEdgeCont::ignoreFilterMatch(), MSActuatedTrafficLightLogic::init(), MSAgentbasedTrafficLightLogic::init(), NIImporter_SUMO::initTrafficLightLogic(), NIXMLTrafficLightsHandler::initTrafficLightLogic(), NBDistrictCont::insert(), NBTrafficLightLogicCont::insert(), NBNodeCont::insert(), NBEdgeCont::insert(), NBEdgeCont::joinSameNodeConnectingEdges(), MSE3Collector::leave(), NIImporter_OpenDrive::loadNetwork(), MSVehicle::moveChecked(), NBRampsComputer::moveRampRight(), MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(), MSVehicle::MSVehicle(), NBOwnTLDef::myCompute(), NBLoadedTLDef::myCompute(), NIXMLTrafficLightsHandler::myEndElement(), NIXMLEdgesHandler::myEndElement(), NIImporter_SUMO::myEndElement(), NIXMLConnectionsHandler::myStartElement(), MSLaneSpeedTrigger::myStartElement(), MSTriggeredRerouter::myStartElement(), NBConnection::NBConnection(), NBRequest::NBRequest(), MSDevice_Tripinfo::notifyEnter(), MSDevice_Tripinfo::notifyLeave(), MSDevice_Person::notifyLeave(), RORouteHandler::openRoute(), Named::ComparatorIdLess::operator()(), NBTurningDirectionsComputer::combination_by_angle_sorter::operator()(), NBOwnTLDef::edge_by_incoming_priority_sorter::operator()(), NBNetBuilder::by_id_sorter::operator()(), NBContHelper::same_connection_edge_sorter::operator()(), NBNode::nodes_by_id_sorter::operator()(), MSEdge::by_id_sorter::operator()(), NIImporter_VISUM::parse_EdgePolys(), NIImporter_VISUM::parse_Lanes(), NIImporter_VISUM::parse_LanesConnections(), NIImporter_VISUM::parse_Turns(), NIImporter_VISUM::parse_TurnsToSignalGroups(), NIXMLConnectionsHandler::parseDeprecatedLaneDefinition(), NIXMLConnectionsHandler::parseLaneBound(), RORDLoader_SUMOBase::parseRoute(), NBLoadedTLDef::SignalGroup::patchTYellow(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), NWWriter_SUMO::prohibitionConnection(), NBEdgeCont::recheckPostProcessConnections(), NBLoadedTLDef::SignalGroup::remapIncoming(), NBLoadedTLDef::SignalGroup::remapOutgoing(), NBLoadedSUMOTLDef::removeConnection(), NBNode::removeSelfLoops(), NBEdgeCont::removeUnwishedEdges(), NBNodeCont::removeUnwishedNodes(), NBNodeCont::rename(), NBEdgeCont::rename(), NBConnection::replaceFrom(), MSBaseVehicle::replaceRouteEdges(), NBConnection::replaceTo(), NIImporter_DlrNavteq::TrafficlightsHandler::report(), NIXMLTrafficLightsHandler::retrieveLaneIndex(), PCPolyContainer::save(), RONet::saveAndRemoveRoutesUntil(), NBNodeCont::setAsTLControlled(), NBEdge::setControllingTLInformation(), MSLane::setCritical(), NIXMLEdgesHandler::setNodes(), NBOwnTLDef::setTLControllingInformation(), NBLoadedSUMOTLDef::setTLControllingInformation(), NBLoadedTLDef::setTLControllingInformation(), NBEdgeCont::splitAt(), RORDLoader_SUMOBase::startRoute(), NBEdge::startShapeAt(), NIXMLConnectionsHandler::validateLaneInfo(), MSEmissionExport::write(), MSInstantInductLoop::write(), NBSign::writeAsPOI(), NWWriter_SUMO::writeConnection(), NWWriter_SUMO::writeDistrict(), MSFullExport::writeEdge(), MSXMLRawOut::writeEdge(), NWWriter_SUMO::writeEdge(), MSMeanData::writeEdge(), NWWriter_XML::writeEdgesAndConnections(), NWWriter_SUMO::writeInternalConnections(), NWWriter_SUMO::writeJunction(), MSQueueExport::writeLane(), MSFullExport::writeLane(), NWWriter_DlrNavteq::writeLinksUnsplitted(), NWWriter_OpenDrive::writeNetwork(), NWWriter_XML::writeNodes(), NWWriter_DlrNavteq::writeNodesUnsplitted(), writeTypedXMLOutput(), MSFullExport::writeVehicles(), MSRouteProbe::writeXMLOutput(), and MSE2Collector::writeXMLOutput().

SUMOReal MSInductLoop::getPosition ( ) const
inline

Returns the position of the detector on the lane.

Returns
The detector's position in meters

Definition at line 99 of file MSInductLoop.h.

References myPosition.

Referenced by TraCIServerAPI_InductionLoop::getPosition(), TraCIServerAPI_InductionLoop::getTree(), and TraCIServerAPI_InductionLoop::processGet().

SUMOReal MSInductLoop::getTimestepsSinceLastDetection ( ) const

Returns the time since the last vehicle left the detector.

Returns
Timesteps from last leaving (detection) of the detector

Definition at line 188 of file MSInductLoop.cpp.

References MSNet::getInstance(), myLastLeaveTime, myVehiclesOnDet, and STEPS2TIME.

Referenced by GUIInductLoop::MyWrapper::getParameterWindow(), and TraCIServerAPI_InductionLoop::processGet().

void MSInductLoop::leaveDetectorByLaneChange ( SUMOVehicle veh)
protectedvirtual

Removes a vehicle from the detector's map myVehiclesOnDet.

Parameters
vehThe leaving vehicle.

Reimplemented in GUIInductLoop.

Definition at line 299 of file MSInductLoop.cpp.

References myDismissedVehicleNumber, and myVehiclesOnDet.

Referenced by GUIInductLoop::leaveDetectorByLaneChange(), and notifyLeave().

void MSInductLoop::leaveDetectorByMove ( SUMOVehicle veh,
SUMOReal  leaveTimestep 
)
protectedvirtual

Processes a vehicle that leaves the detector.

Removes a vehicle from the detector's map myVehiclesOnDet and adds the vehicle data to the internal myVehicleDataCont.

Parameters
vehThe leaving vehicle.
leaveTimestepTimestep (not necessary integer) of leaving.

Reimplemented in GUIInductLoop.

Definition at line 284 of file MSInductLoop.cpp.

References SUMOVehicle::getID(), MSVehicleType::getID(), MSVehicleType::getLength(), SUMOVehicle::getVehicleType(), myLastLeaveTime, myLastOccupancy, myVehicleDataCont, myVehiclesOnDet, and SUMOReal.

Referenced by GUIInductLoop::leaveDetectorByMove(), and notifyMove().

static SUMOReal MSInductLoop::lengthSum ( SUMOReal  sumSoFar,
const MSInductLoop::VehicleData data 
)
inlinestaticprotected

Adds up VehicleData::lengthM.

Definition at line 332 of file MSInductLoop.h.

References MSInductLoop::VehicleData::lengthM.

Referenced by getCurrentLength(), and writeTypedXMLOutput().

bool MSInductLoop::notifyEnter ( SUMOVehicle veh,
MSMoveReminder::Notification  reason 
)
virtual

Returns whether the detector may has to be concerned during the vehicle's further movement.

If the detector is in front of the vehicle, true is returned. If the vehicle's front has passed the detector, false, because the vehicle is no longer relevant for the detector.

Parameters
[in]vehThe entering vehicle.
[in]reasonhow the vehicle enters the lane
Returns
True if vehicle is on or in front of the detector.
See Also
MSMoveReminder
MSMoveReminder::notifyEnter
MSMoveReminder::Notification

Reimplemented from MSMoveReminder.

Definition at line 124 of file MSInductLoop.cpp.

References MSVehicleType::getLength(), SUMOVehicle::getPositionOnLane(), SUMOVehicle::getVehicleType(), and myPosition.

bool MSInductLoop::notifyLeave ( SUMOVehicle veh,
SUMOReal  lastPos,
MSMoveReminder::Notification  reason 
)
virtual

Dismisses the vehicle if it is on the detector due to a lane change.

If the vehicle is on the detector, it will be dismissed by incrementing myDismissedVehicleNumber and removing this vehicle's entering time from myVehiclesOnDet.

Parameters
[in]vehThe leaving vehicle.
[in]lastPosPosition on the lane when leaving.
[in]isArrivalwhether the vehicle arrived at its destination
[in]isLaneChangewhether the vehicle changed from the lane
See Also
leaveDetectorByLaneChange
MSMoveReminder
MSMoveReminder::notifyLeave

Reimplemented from MSMoveReminder.

Definition at line 113 of file MSInductLoop.cpp.

References leaveDetectorByLaneChange(), and MSMoveReminder::NOTIFICATION_JUNCTION.

bool MSInductLoop::notifyMove ( SUMOVehicle veh,
SUMOReal  oldPos,
SUMOReal  newPos,
SUMOReal  newSpeed 
)
virtual

Checks whether the vehicle shall be counted and/or shall still touch this MSMoveReminder.

As soon a vehicle enters the detector, its entry time is computed and stored in myVehiclesOnDet via enterDetectorByMove. If it passes the detector, the according leaving time is computed and stored, too, using leaveDetectorByMove.

Parameters
[in]vehVehicle that asks this remider.
[in]oldPosPosition before move.
[in]newPosPosition after move with newSpeed.
[in]newSpeedMoving speed.
Returns
True if vehicle hasn't passed the detector completely.
See Also
MSMoveReminder
MSMoveReminder::notifyMove
enterDetectorByMove
leaveDetectorByMove

Reimplemented from MSMoveReminder.

Definition at line 84 of file MSInductLoop.cpp.

References enterDetectorByMove(), MSNet::getInstance(), MSVehicleType::getLength(), SUMOVehicle::getVehicleType(), leaveDetectorByMove(), myPosition, STEPS2TIME, and SUMOReal.

virtual void MSMoveReminder::notifyMoveInternal ( SUMOVehicle veh,
SUMOReal  timeOnLane,
SUMOReal  speed 
)
inlinevirtualinherited

Internal notification about the vehicle moves.

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

Parameters
[in]vehVehicle that asks this reminder.
[in]timeOnLanetime the vehicle spent on the lane.
[in]speedMoving speed.

Reimplemented in MSMeanData::MeanDataValueTracker, MSMeanData_Net::MSLaneMeanDataValues, MSMeanData_Harmonoise::MSLaneMeanDataValues, and MSMeanData_HBEFA::MSLaneMeanDataValues.

Definition at line 200 of file MSMoveReminder.h.

References UNUSED_PARAMETER.

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

Invalidated assignment operator.

void MSInductLoop::reset ( )
virtual

Resets all generated values to allow computation of next interval.

Reimplemented from MSDetectorFileOutput.

Reimplemented in GUIInductLoop.

Definition at line 76 of file MSInductLoop.cpp.

References myDismissedVehicleNumber, myLastVehicleDataCont, and myVehicleDataCont.

Referenced by MSInductLoop(), GUIInductLoop::reset(), and writeXMLOutput().

void Named::setID ( const std::string &  newID)
inlineinherited

resets the id

Parameters
[in]newIDThe new id of this object

Definition at line 68 of file Named.h.

References Named::myID.

Referenced by NBNodeCont::rename(), and NBEdgeCont::rename().

static SUMOReal MSInductLoop::speedSum ( SUMOReal  sumSoFar,
const MSInductLoop::VehicleData data 
)
inlinestaticprotected

Adds up VehicleData::speedM.

Definition at line 327 of file MSInductLoop.h.

References MSInductLoop::VehicleData::speedM.

Referenced by getCurrentSpeed(), and writeTypedXMLOutput().

void MSInductLoop::writeTypedXMLOutput ( OutputDevice dev,
SUMOTime  startTime,
SUMOTime  stopTime,
const std::string &  type,
const VehicleDataCont vdc,
const VehicleMap vm 
)
protected
void MSInductLoop::writeXMLDetectorProlog ( OutputDevice dev) const
virtual

Opens the XML-output using "detector" as root element.

Parameters
[in]devThe output device to write the root into
See Also
MSDetectorFileOutput::writeXMLDetectorProlog
Exceptions
IOErrorIf an error on writing occurs (!!! not yet implemented)

Implements MSDetectorFileOutput.

Definition at line 198 of file MSInductLoop.cpp.

References OutputDevice::writeXMLHeader().

void MSInductLoop::writeXMLOutput ( OutputDevice dev,
SUMOTime  startTime,
SUMOTime  stopTime 
)
virtual

Writes collected values into the given stream.

Parameters
[in]devThe output device to write the data into
[in]startTimeFirst time step the data were gathered
[in]stopTimeLast time step the data were gathered
See Also
MSDetectorFileOutput::writeXMLOutput
Exceptions
IOErrorIf an error on writing occurs (!!! not yet implemented)

Implements MSDetectorFileOutput.

Definition at line 204 of file MSInductLoop.cpp.

References mySplitByType, myVehicleDataCont, myVehiclesOnDet, reset(), and writeTypedXMLOutput().

Field Documentation

unsigned MSInductLoop::myDismissedVehicleNumber
protected

The number of dismissed vehicles.

Definition at line 352 of file MSInductLoop.h.

Referenced by leaveDetectorByLaneChange(), reset(), and writeTypedXMLOutput().

MSLane* const MSMoveReminder::myLane
protectedinherited
SUMOReal MSInductLoop::myLastLeaveTime
protected

Leave-time of the last vehicle detected [s].

Definition at line 346 of file MSInductLoop.h.

Referenced by getTimestepsSinceLastDetection(), and leaveDetectorByMove().

SUMOReal MSInductLoop::myLastOccupancy
protected

Occupancy by the last vehicle detected.

Definition at line 349 of file MSInductLoop.h.

Referenced by leaveDetectorByMove().

VehicleDataCont MSInductLoop::myLastVehicleDataCont
protected

Data of vehicles that have completely passed the detector in the last time interval.

Definition at line 362 of file MSInductLoop.h.

Referenced by collectVehiclesOnDet(), and reset().

const SUMOReal MSInductLoop::myPosition
protected
bool MSInductLoop::mySplitByType
protected

Whether additional information split by vehicle classes shall be generated.

Definition at line 343 of file MSInductLoop.h.

Referenced by writeXMLOutput().

VehicleDataCont MSInductLoop::myVehicleDataCont
protected

Data of vehicles that have completely passed the detector.

Definition at line 359 of file MSInductLoop.h.

Referenced by collectVehiclesOnDet(), leaveDetectorByMove(), reset(), and writeXMLOutput().

VehicleMap MSInductLoop::myVehiclesOnDet
protected

Data for vehicles that have entered the detector (vehicle -> enter time)

Definition at line 369 of file MSInductLoop.h.

Referenced by collectVehiclesOnDet(), enterDetectorByMove(), getTimestepsSinceLastDetection(), leaveDetectorByLaneChange(), leaveDetectorByMove(), and writeXMLOutput().


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