Modifier and Type | Class and Description |
---|---|
static class |
Stau.IndikatorSorter
Klasse zur Sortierung von Indikatoren innerhalb einer Fahrtrichtung nach
ihrer Position.
|
Modifier and Type | Field and Description |
---|---|
private de.bsvrz.dav.daf.main.ResultData |
eigenschaftenDaten
der Datensatz mit den Eigenschaften des Staus.
|
private de.bsvrz.dav.daf.main.DataDescription |
eigenschaftenDesc
die Datenbeschreibung für den Versand der Eigenschaften eines Staus.
|
private Set<ISobIndikator> |
indikatoren
die Indikatoren, die den Stau "verursachen".
|
private static de.bsvrz.sys.funclib.debug.Debug |
LOGGER
Logger für Debugausgaben.
|
private de.bsvrz.dav.daf.main.config.SystemObject |
obj
das Systemobjekt, mit dem der Stau innerhalb des Datenverteilers
repräsentiert wird.
|
private static long |
pidCounter
globaler Zähler zum Bilden einer eindeutigen PID für Stauobjekte.
|
private SvpPrognoseDaten |
prognose
die Liste der letzten Prognosedaten für den Stau.
|
private double |
prognoseVerlaengerung
der Wert der letzten prognostizierten Stauverlaengerung.
|
private IFahrtRichtung |
richtung
die Fahrtrichtung für die der Stau ermittelt wurde.
|
private boolean |
senkeAktiv
Indikator, ob eine Senke zum Empfang der Staueigenschaften aktiv ist.
|
private Object |
senkeAktivMutex
Mutex für das Flag
senkeAktiv . |
private long |
startZeitpunkt
der Startzeitpunkt des Staus.
|
private Map<ISobIndikator,Long> |
trenner
die Liste der Indikatoren, die eine Aufspaltung des Stauobjekts
verursacht, wenn die parametrierte Verzögerungszeit überschritten wurde,
inklusive des Zeitpunkts der Statusänderung des Indikators.
|
Constructor and Description |
---|
Stau(IFahrtRichtung richtung)
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
void |
addIndikator(ISobIndikator indikator)
fügt dem Stauobjekt einen Indikator hinzu.
|
void |
addIndikatoren(Collection<ISobIndikator> indikatorliste)
fügt dem Stauobjekt eine Liste von Indikatoren hinzu.
|
void |
aktualisierePrognoseVerlaengerung()
aktualisiert die für den Stau berechnete Prognoseverlängerung auf Basis
des aktuellen Status der beteiligten Störfallindikatoren.
|
long |
anzahlFahrStreifen(long offset)
liefert die Anzahl der Fahrstreifen an der angegebenen Position innerhalb
des Staus.
|
void |
dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object,
de.bsvrz.dav.daf.main.DataDescription dataDescription,
byte state)
Die Funktion verarbeitet den Status der Senke für die Eigenschaften des
Stauobjekts.
|
void |
entferneIndikator(ISobIndikator indikator)
entfernt den Indikator aus dem Stauobjekt.
|
void |
entfernen()
Die Funktion entfernt einen Stau vom betroffenen Verkehsmodellnetz.
|
void |
entferneTrenner(ISobIndikator indikator)
entfernt einen als Stautrenner vorgemerktemn Indikator von dem
Stauobjekt.
|
Collection<SobStrassenKnoten> |
ermittleAsAmAnfang(de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.MessQuerschnittAllgemein mq)
liefert die Menge der Knoten, die zwischen Stauanfang und dem übergebenen
Messquerschnitt liegen.
|
Collection<SobStrassenKnoten> |
ermittleAsAmEnde(de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.MessQuerschnittAllgemein mq)
liefert die Menge der Knoten, die zwischen Stauende und dem übergebenen
Messquerschnitt liegen.
|
private int |
getAnfangsOffset(List<de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.StrassenSegment> segmente)
ermitteln des Offsets des Stauendes relativ zum Ende des letzten
Straßensegments, das am Stau beteiligt ist.
|
private int |
getEndeOffset(List<de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.StrassenSegment> segmente)
ermitteln des Offsets des Staubeginns relativ zum ersten Straßensegment,
das am Stau beteiligt ist.
|
List<ISobIndikator> |
getIndikatoren()
liefert die Liste der am Stau beteiligten Indikatoren.
|
Collection<SobStrassenKnoten> |
getKnotenImStau()
liefert die Menge der Strassenknoten, die sich im Stau befinden.
|
long |
getLaenge()
liefert die reale Länge des Stauobjektes in Metern, ohne die Verlängerung
durch die Prognose.
|
SobStrassenTeilSegment |
getLetztesStsImStau()
liefert das letzte Straßenteilsegment, das sich im Stau befindet.
|
SobMessQuerschnitt |
getMqAmAnfang()
liefert den ersten Messquerschnitt entgegengesetzt zur Fahrtrichtung
innerhalb des Staus.
|
SobMessQuerschnitt |
getMqAmEnde()
liefert den letzten Messquerschnitt entgegengesetzt zur Fahrtrichtung
innerhalb des Staus.
|
SobMessQuerschnitt |
getMqDanach()
liefert den ersten Messquerschnitt, der in Fahrtrichtung vor dem Stau und
vor dem nächsten freien Autobahnkreuz, - dreieck oder -ende liegt.
|
SobMessQuerschnitt |
getMqDavor()
liefert den ersten Messquerschnitt, der entgegengesetzt zur Fahrtrichtung
noch nicht vom Stau betroffen ist und vor dem nächsten freien
Autobahnkreuz, - dreieck oder -ende liegt.
|
private String |
getNextPid()
liefert die nächste an einen Stau zu vergebende PID.
|
long |
getOffset()
liefert die Position des Staus relativ zum Beginn des
Straßensegments in der entsprechenden Richtung.
|
SvpPrognoseDaten |
getPrognose()
liefert die Prognosedaten des Stauobjekts.
|
private de.bsvrz.dav.daf.main.ResultData |
getPrognoseDatenSatz()
erzeugt einen Datensatz zum versenden der aktuellen Prognosedaten des
Staus.
|
(package private) double |
getPrognoseVerlaengerung()
liefert die Länge, um die ein Stauobjekt durch die aktuelle Prognose
verlängert wird.
|
long |
getStartZeit()
liefert den Zeitpunkt, zu dem das Stauobjekt angelegt wurde.
|
double |
getStauLuecke(ISobIndikator ind)
ermittelt die Länge der Lücke, die ein ungestauter Indikator innerhalb
eines Stauobjekts öffnen würde.
|
double |
getStrassenEnde()
liefert den Längenoffset des Stauendes bezüglich der FahrtRichtung der
Straße inklusive der Verlängerung durch die Stauverlaufsprognose.
|
List<de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.StrassenSegment> |
getStrassenSegmente()
liefert die Straßensegmente, auf denen sich der Stau befindet.
|
double |
getStrassenStart()
liefert den Anfangsoffset des Staus innerhalb der FahrtRichtung der
Straße.
|
SobStrassenTeilSegment |
getStsVorDemStau()
liefert das erste Straßenteilsegment, das sich in Fahrtrichtung hinter
dem Stau befindet.
|
Map<ISobIndikator,Long> |
getTrenner()
liefert die Indikatoren, die potentiell vorgemerkt sind, um ein
Stauobjekt in kleiner Teilobjekte zu teilen.
|
boolean |
isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject object,
de.bsvrz.dav.daf.main.DataDescription dataDescription)
Die Sendesteuerung wird für die Versendung der Eigenschaften des Staus
(als Parameter) unterstützt.
|
void |
publizierePrognoseDaten()
publiziert die Prognosedaten eines Staus über den Datenverteiler.
|
void |
setPrognose(SvpPrognoseDaten prognose)
setzt die Prognosedaten des Stauobjekts.
|
(package private) void |
setPrognoseVerlaengerung(double laenge)
setzt die aktuell gültige Länge, um die ein Stauobjekt durch die Prognose
verlängert wird.
|
void |
setTrenner(ISobIndikator ind,
long zeitpunkt)
registriert einen Störfallindikator, der zu einer potentiellen eventuell
verzögerten Trennung des Stauobjekt führen kann.
|
void |
sichern(long zeitpunkt)
überträgt die Daten des Staus an den Datenverteiler.
|
String |
toString() |
private static final de.bsvrz.sys.funclib.debug.Debug LOGGER
private static long pidCounter
private de.bsvrz.dav.daf.main.config.SystemObject obj
private final long startZeitpunkt
private final IFahrtRichtung richtung
private final Set<ISobIndikator> indikatoren
private final Map<ISobIndikator,Long> trenner
private SvpPrognoseDaten prognose
private boolean senkeAktiv
private final Object senkeAktivMutex
senkeAktiv
.private de.bsvrz.dav.daf.main.ResultData eigenschaftenDaten
private de.bsvrz.dav.daf.main.DataDescription eigenschaftenDesc
private double prognoseVerlaengerung
public Stau(IFahrtRichtung richtung)
richtung
- die Fahrtrichtungpublic final void addIndikator(ISobIndikator indikator)
STAU
befinden.indikator
- der hinzufügende Indikatorpublic final void addIndikatoren(Collection<ISobIndikator> indikatorliste)
STAU
befinden.indikatorliste
- die Liste der hinzuzufügenden Indikatoren.public void aktualisierePrognoseVerlaengerung()
IStau
aktualisierePrognoseVerlaengerung
in interface IStau
public final long anzahlFahrStreifen(long offset)
IStau
anzahlFahrStreifen
in interface IStau
offset
- die Position innerhalb des Stauspublic final void dataRequest(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription, byte state)
dataRequest
in interface de.bsvrz.dav.daf.main.ClientSenderInterface
ClientSenderInterface.dataRequest(de.bsvrz.dav.daf.main.config.SystemObject,
de.bsvrz.dav.daf.main.DataDescription, byte)
public void entferneIndikator(ISobIndikator indikator)
indikator
- der zu entfernende Indikatorpublic final void entfernen()
entfernen
in interface IStau
IStau.entfernen()
public void entferneTrenner(ISobIndikator indikator)
indikator
- der Indikatorpublic Collection<SobStrassenKnoten> ermittleAsAmAnfang(de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.MessQuerschnittAllgemein mq)
IStau
ermittleAsAmAnfang
in interface IStau
mq
- der Messquerschnittpublic Collection<SobStrassenKnoten> ermittleAsAmEnde(de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.MessQuerschnittAllgemein mq)
IStau
ermittleAsAmEnde
in interface IStau
mq
- der Messquerschnittprivate int getAnfangsOffset(List<de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.StrassenSegment> segmente)
segmente
- die sortierte Liste der am Stau beteiligten Straßensegmente.private int getEndeOffset(List<de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.StrassenSegment> segmente)
segmente
- die sortierte Liste der am Stau beteiligten Straßensegmente.public final List<ISobIndikator> getIndikatoren()
STAU
gesetzt ist.public Collection<SobStrassenKnoten> getKnotenImStau()
IStau
getKnotenImStau
in interface IStau
public final long getLaenge()
IStau
public SobStrassenTeilSegment getLetztesStsImStau()
IStau
null
geliefert.getLetztesStsImStau
in interface IStau
null
public final SobMessQuerschnitt getMqAmAnfang()
IStau
getMqAmAnfang
in interface IStau
null
, wenn keiner ermittelt
werden konnte.public final SobMessQuerschnitt getMqAmEnde()
IStau
getMqAmEnde
in interface IStau
null
, wenn keiner ermittelt
werden konnte.public final SobMessQuerschnitt getMqDanach()
IStau
getMqDanach
in interface IStau
null
, wenn keiner ermittelt
werden konnte.public final SobMessQuerschnitt getMqDavor()
IStau
getMqDavor
in interface IStau
null
, wenn keiner ermittelt
werden konnte.private String getNextPid()
public final long getOffset()
IStau
public SvpPrognoseDaten getPrognose()
IStau
null
geliefert.getPrognose
in interface IStau
null
private de.bsvrz.dav.daf.main.ResultData getPrognoseDatenSatz()
double getPrognoseVerlaengerung()
public final long getStartZeit()
IStau
getStartZeit
in interface IStau
public double getStauLuecke(ISobIndikator ind)
ind
- der Indikator.public final double getStrassenEnde()
IStau
getStrassenEnde
in interface IStau
public final List<de.bsvrz.sys.funclib.bitctrl.modell.verkehr.objekte.StrassenSegment> getStrassenSegmente()
IStau
getStrassenSegmente
in interface IStau
public final double getStrassenStart()
IStau
getStrassenStart
in interface IStau
public SobStrassenTeilSegment getStsVorDemStau()
IStau
null
geliefert.getStsVorDemStau
in interface IStau
null
public Map<ISobIndikator,Long> getTrenner()
public final boolean isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject object, de.bsvrz.dav.daf.main.DataDescription dataDescription)
isRequestSupported
in interface de.bsvrz.dav.daf.main.ClientSenderInterface
ClientSenderInterface.isRequestSupported(de.bsvrz.dav.daf.main.config.SystemObject,
de.bsvrz.dav.daf.main.DataDescription)
public void publizierePrognoseDaten()
IStau
publizierePrognoseDaten
in interface IStau
public final void setPrognose(SvpPrognoseDaten prognose)
IStau
setPrognose
in interface IStau
prognose
- die Datenvoid setPrognoseVerlaengerung(double laenge)
laenge
- der Wert für die Verlängerungpublic void setTrenner(ISobIndikator ind, long zeitpunkt)
ind
- der Indikatorzeitpunkt
- der Zeitpunkt, zu dem der Indikator eingetragen wirdpublic final void sichern(long zeitpunkt)
IStau
Copyright © 2017 BitCtrl Systems GmbH. All rights reserved.