SUMO - Simulation of Urban MObility
|
Changes the wished vehicle speed / lanes. More...
#include <MSVehicle.h>
Public Member Functions | |
ChangeRequest | checkForLaneChanges (SUMOTime currentTime, const MSEdge ¤tEdge, unsigned int currentLaneIndex) |
SUMOReal | getOriginalSpeed () const |
Returns the originally longitudianl speed to use. More... | |
Influencer () | |
Constructor. More... | |
SUMOReal | influenceSpeed (SUMOTime currentTime, SUMOReal speed, SUMOReal vSafe, SUMOReal vMin, SUMOReal vMax) |
Applies stored velocity information on the speed to use. More... | |
bool | isVTDControlled () const |
void | postProcessVTD (MSVehicle *v) |
void | setConsiderMaxAcceleration (bool value) |
Sets whether the maximum acceleration shall be regarded. More... | |
void | setConsiderMaxDeceleration (bool value) |
Sets whether the maximum deceleration shall be regarded. More... | |
void | setConsiderSafeVelocity (bool value) |
Sets whether the safe velocity shall be regarded. More... | |
void | setLaneTimeLine (const std::vector< std::pair< SUMOTime, unsigned int > > &laneTimeLine) |
Sets a new lane timeline. More... | |
void | setSpeedTimeLine (const std::vector< std::pair< SUMOTime, SUMOReal > > &speedTimeLine) |
Sets a new velocity timeline. More... | |
void | setVTDControlled (bool c, MSLane *l, SUMOReal pos, int edgeOffset, const MSEdgeVector &route) |
~Influencer () | |
Destructor. More... | |
Private Attributes | |
bool | myAmVTDControlled |
bool | myConsiderMaxAcceleration |
Whether the maximum acceleration shall be regarded. More... | |
bool | myConsiderMaxDeceleration |
Whether the maximum deceleration shall be regarded. More... | |
bool | myConsiderSafeVelocity |
Whether the safe velocity shall be regarded. More... | |
std::vector< std::pair < SUMOTime, unsigned int > > | myLaneTimeLine |
The lane usage time line to apply. More... | |
SUMOReal | myOriginalSpeed |
The velocity before influence. More... | |
bool | mySpeedAdaptationStarted |
Whether influencing the speed has already started. More... | |
std::vector< std::pair < SUMOTime, SUMOReal > > | mySpeedTimeLine |
The velocity time line to apply. More... | |
int | myVTDEdgeOffset |
MSLane * | myVTDLane |
SUMOReal | myVTDPos |
MSEdgeVector | myVTDRoute |
Changes the wished vehicle speed / lanes.
The class is used for passing velocities or velocity profiles obtained via TraCI to the vehicle.
The adaptation is controlled by the stored time line of speeds/lanes. Additionally, the variables myConsiderSafeVelocity, myConsiderMaxAcceleration, and myConsiderMaxDeceleration control whether the safe velocity, the maximum acceleration, and the maximum deceleration have to be regarded.
Definition at line 799 of file MSVehicle.h.
MSVehicle::Influencer::Influencer | ( | ) |
Constructor.
Definition at line 144 of file MSVehicle.cpp.
MSVehicle::Influencer::~Influencer | ( | ) |
Destructor.
Definition at line 150 of file MSVehicle.cpp.
MSVehicle::ChangeRequest MSVehicle::Influencer::checkForLaneChanges | ( | SUMOTime | currentTime, |
const MSEdge & | currentEdge, | ||
unsigned int | currentLaneIndex | ||
) |
Definition at line 200 of file MSVehicle.cpp.
References MSEdge::getLanes(), MSVehicle::REQUEST_HOLD, MSVehicle::REQUEST_LEFT, MSVehicle::REQUEST_NONE, and MSVehicle::REQUEST_RIGHT.
Referenced by MSVehicle::enterLaneAtLaneChange(), MSVehicle::enterLaneAtMove(), and TraCIServerAPI_Vehicle::processSet().
|
inline |
Returns the originally longitudianl speed to use.
Definition at line 859 of file MSVehicle.h.
References myOriginalSpeed.
Referenced by MSVehicle::getSpeedWithoutTraciInfluence().
SUMOReal MSVehicle::Influencer::influenceSpeed | ( | SUMOTime | currentTime, |
SUMOReal | speed, | ||
SUMOReal | vSafe, | ||
SUMOReal | vMin, | ||
SUMOReal | vMax | ||
) |
Applies stored velocity information on the speed to use.
The given speed is assumed to be the non-influenced speed from longitudinal control. It is stored for further usage in "myOriginalSpeed".
[in] | currentTime | The current simulation time |
[in] | speed | The undisturbed speed |
[in] | vSafe | The safe velocity |
[in] | vMin | The minimum velocity |
[in] | vMax | The maximum simulation time |
Definition at line 167 of file MSVehicle.cpp.
References DELTA_T, MAX2(), MIN2(), STEPS2TIME, and SUMOReal.
Referenced by MSVehicle::executeMove(), and MSVehicle::planMoveInternal().
|
inline |
Definition at line 873 of file MSVehicle.h.
References myAmVTDControlled.
Referenced by MSLaneChanger::change(), MSVehicle::executeMove(), MSLane::executeMovements(), and MSVehicle::planMoveInternal().
void MSVehicle::Influencer::postProcessVTD | ( | MSVehicle * | v) |
Definition at line 242 of file MSVehicle.cpp.
References MSVehicle::getBestLanes(), MSVehicle::getLane(), MSBaseVehicle::myCurrEdge, MSMoveReminder::NOTIFICATION_TELEPORT, MSVehicle::onRemovalFromNet(), MSLane::removeVehicle(), and MSBaseVehicle::replaceRouteEdges().
void MSVehicle::Influencer::setConsiderMaxAcceleration | ( | bool | value) |
Sets whether the maximum acceleration shall be regarded.
[in] | value | Whether the maximum acceleration shall be regarded |
Definition at line 230 of file MSVehicle.cpp.
Referenced by TraCIServerAPI_Vehicle::processSet().
void MSVehicle::Influencer::setConsiderMaxDeceleration | ( | bool | value) |
Sets whether the maximum deceleration shall be regarded.
[in] | value | Whether the maximum deceleration shall be regarded |
Definition at line 236 of file MSVehicle.cpp.
Referenced by TraCIServerAPI_Vehicle::processSet().
void MSVehicle::Influencer::setConsiderSafeVelocity | ( | bool | value) |
Sets whether the safe velocity shall be regarded.
[in] | value | Whether the safe velocity shall be regarded |
Definition at line 224 of file MSVehicle.cpp.
Referenced by TraCIServerAPI_Vehicle::processSet().
void MSVehicle::Influencer::setLaneTimeLine | ( | const std::vector< std::pair< SUMOTime, unsigned int > > & | laneTimeLine) |
Sets a new lane timeline.
[in] | laneTimeLine | The time line of lanes to use |
Definition at line 161 of file MSVehicle.cpp.
Referenced by TraCIServerAPI_Vehicle::processSet().
void MSVehicle::Influencer::setSpeedTimeLine | ( | const std::vector< std::pair< SUMOTime, SUMOReal > > & | speedTimeLine) |
Sets a new velocity timeline.
[in] | speedTimeLine | The time line of speeds to use |
Definition at line 154 of file MSVehicle.cpp.
Referenced by TraCIServerAPI_Vehicle::processSet().
|
inline |
Definition at line 863 of file MSVehicle.h.
References myAmVTDControlled, myVTDEdgeOffset, myVTDLane, myVTDPos, and myVTDRoute.
Referenced by traci::TraCIServer::setVTDControlled().
|
private |
Definition at line 899 of file MSVehicle.h.
Referenced by isVTDControlled(), and setVTDControlled().
|
private |
Whether the maximum acceleration shall be regarded.
Definition at line 894 of file MSVehicle.h.
|
private |
Whether the maximum deceleration shall be regarded.
Definition at line 897 of file MSVehicle.h.
|
private |
Whether the safe velocity shall be regarded.
Definition at line 891 of file MSVehicle.h.
The lane usage time line to apply.
Definition at line 882 of file MSVehicle.h.
|
private |
The velocity before influence.
Definition at line 885 of file MSVehicle.h.
Referenced by getOriginalSpeed().
|
private |
Whether influencing the speed has already started.
Definition at line 888 of file MSVehicle.h.
The velocity time line to apply.
Definition at line 879 of file MSVehicle.h.
|
private |
Definition at line 902 of file MSVehicle.h.
Referenced by setVTDControlled().
|
private |
Definition at line 900 of file MSVehicle.h.
Referenced by setVTDControlled().
|
private |
Definition at line 901 of file MSVehicle.h.
Referenced by setVTDControlled().
|
private |
Definition at line 903 of file MSVehicle.h.
Referenced by setVTDControlled().