29 {
"departed", NOTIFICATION_DEPARTED},
30 {
"junction", NOTIFICATION_JUNCTION},
31 {
"segment", NOTIFICATION_SEGMENT},
32 {
"laneChange", NOTIFICATION_LANE_CHANGE},
33 {
"loadState", NOTIFICATION_LOAD_STATE},
34 {
"teleport", NOTIFICATION_TELEPORT},
35 {
"teleportContinuation", NOTIFICATION_TELEPORT_CONTINUATION},
36 {
"parking", NOTIFICATION_PARKING},
37 {
"parkingReroute", NOTIFICATION_PARKING_REROUTE},
38 {
"arrived", NOTIFICATION_ARRIVED},
39 {
"teleportArrived", NOTIFICATION_TELEPORT_ARRIVED},
40 {
"vaporizedCalibrator", NOTIFICATION_VAPORIZED_CALIBRATOR},
41 {
"vaporizedCollision", NOTIFICATION_VAPORIZED_COLLISION},
42 {
"vaporizedTraCI", NOTIFICATION_VAPORIZED_TRACI},
43 {
"vaporizedGUI", NOTIFICATION_VAPORIZED_GUI},
44 {
"vaporizer", NOTIFICATION_VAPORIZED_VAPORIZER},
45 {
"vaporizedBreakdown", NOTIFICATION_VAPORIZED_BREAKDOWN},
46 {
"none", NOTIFICATION_NONE}
57 myDescription(description)
59 , myNotificationMutex(true)
62 if (
myLane !=
nullptr && doAdd) {
76 if (entryTime > currentTime) {
84 const SUMOTime previousEntryTime = j->second.first;
85 if (previousEntryTime <= currentTime) {
86 entryTime = previousEntryTime;
87 entryPos = j->second.second;
90 assert(entryTime <= currentTime);
91 if ((entryTime < leaveTime) && (entryPos <= leavePos)) {
92 const double timeOnLane =
STEPS2TIME(currentTime - entryTime);
93 const double speed = (leavePos - entryPos) /
STEPS2TIME(leaveTime - entryTime);
95 assert(timeOnLane >= 0);
96 notifyMoveInternal(veh, timeOnLane, timeOnLane, speed, speed, speed * timeOnLane, speed * timeOnLane, 0.);
Representation of a lane in the micro simulation.
virtual void addMoveReminder(MSMoveReminder *rem)
Add a move-reminder to move-reminder container.
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.
std::map< long long int, std::pair< SUMOTime, double > > myLastVehicleUpdateValues
static StringBijection< Notification >::Entry NotificationValues[]
@ NOTIFICATION_NONE
must be the last one
static StringBijection< Notification > Notifications
MSMoveReminder(const std::string &description, MSLane *const lane=nullptr, const bool doAdd=true)
Constructor.
MSLane * myLane
Lane on which the reminder works.
void removeFromVehicleUpdateValues(SUMOTrafficObject &veh)
void updateDetector(SUMOTrafficObject &veh, double entryPos, double leavePos, SUMOTime entryTime, SUMOTime currentTime, SUMOTime leaveTime, bool cleanUp)
Representation of a vehicle, person, or container.
virtual NumericalID getNumericalID() const =0
return the numerical ID which is only for internal usage