Schnittstelle für TVM

Hier werden Wünsche für zukünftige neue Funktionen der Software gesammelt.
Nachricht
Autor
Benutzeravatar
F. Schn.
Beiträge: 7061
Registriert: 24.10.2011 18:58:26

Re: Schnittstelle für TVM

#21 Beitrag von F. Schn. »

Gorgi denkt (soweit ich das sehe) an eine neue DLL-Schnittstelle; mit einer Methode mit 40 (26+14) Argumenten, die nur für TVM430 genutzt würde. Wenn ich den Code so anschaue, ist es wohl eher als Codespende gedacht, und nicht als eine offene Schnittstelle für jedes zukünftige Zugsicherungssystem, an die du wohl gerade denkst.
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

Benutzeravatar
Gorgi [Vale]
Beiträge: 231
Registriert: 10.04.2019 20:22:10
Aktuelle Projekte: Am Bau bei der LN6 mitwirken.

Mdl Hcknhm, (Pausiert)
Strecke 4020 & 4080 Schwetzingen(Mannheim) bis Üst. Forst / Graben-Neudorf. (Pausiert)

Re: Schnittstelle für TVM

#22 Beitrag von Gorgi [Vale] »

Carsten Hölscher hat geschrieben: 04.09.2024 23:06:04 Welche dll-Schnittstelle nutzt Du denn?

Carsten
Ehrlich gesagt bin ich schon etwas über die Fragen verwundert, kannst du diese bitte detaillierter Stellen oder bitte einfach dir es ansehen (Der Aufruf der dll in Delphi ist grade mal 155 Zeilen, davon 25 Leerzeilen für die bessere Sichtbarkeit, ebenso ist sind die Aufrufe sehr sauber geschrieben und öfter wegen der Sichtbarkeit in der nächsten Zeile)?
Aber ich versuche es mal zu beantworten:
  • Funktion TProcessArraysFunc als stdcall.
  • dll wird dynamisch geladen mit LoadLibrary mit der Adresse der Funktion "process_arrays".
  • Die Parameter werden als Zeiger übergeben.
  • dll darf nicht entladen werden für einen Zug wenn dieser noch vorhanden ist, erst nach entfernen des Zuges darf die dll Instanz geschlossen werden.
  • Jeder Zug braucht seinen eigenen Aufruf für die dll im eigenen Speicher, sodass immer nur einem Zug eine dll Instanz zur Verfügung steht und nicht mehrere Züge zeitgleich auf den selben Speicher zugreifen.
Ich hoffe das konnte die Frage beantworten.

Gruß
Gorgi

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33728
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Schnittstelle für TVM

#23 Beitrag von Carsten Hölscher »

Ich wollte nur wissen, ob das über die recht neue Fahrzeug-dll-Schnittstelle geht oder irgendwie anders.

Carsten

Benutzeravatar
Gorgi [Vale]
Beiträge: 231
Registriert: 10.04.2019 20:22:10
Aktuelle Projekte: Am Bau bei der LN6 mitwirken.

Mdl Hcknhm, (Pausiert)
Strecke 4020 & 4080 Schwetzingen(Mannheim) bis Üst. Forst / Graben-Neudorf. (Pausiert)

Re: Schnittstelle für TVM

#24 Beitrag von Gorgi [Vale] »

Carsten Hölscher hat geschrieben: 04.09.2024 23:34:59 Ich wollte nur wissen, ob das über die recht neue Fahrzeug-dll-Schnittstelle geht oder irgendwie anders.

Carsten
Ach verstehe, Tschuldigung dann habe ich wohl an dir vorbeigeredet,
nach Nachfrage bei @F. Schn. geht das über die Fahrzeug-dll-Schnittstelle nicht.
Dachte es wäre klar das es dafür eine neue Schnittstelle geben müsste, soweit ich weiß hattest du es damals beim großem Treffen vorgeschlagen wenn ich mich nicht täusche.
Ich hätte daher vorgeschlagen dass die dll's gemeinsam für alle anderen Zugbeeinflussungen, die in dll geschrieben sind, einfach einen separaten gemeinsamen Ordner erhalten und jeweils nur aus diesem Ordner aufgerufen werden.
Achso, das ist übrigens nicht die TVM 430, sondern der Vorgänger TVM 300, wie er noch auf mehreren Strecken in Frankreich in Betrieb ist. TVM 430 ist weitaus komplexer und noch nicht soweit fortgeschritten um es hier mitzuteilen.

Gruß
Gorgi

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33728
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: Schnittstelle für TVM

#25 Beitrag von Carsten Hölscher »

Also das Ganze ist als Vorschlag gemeint? Ich dachte Du zeigst irgendwas, was schon geht.

Carsten

Benutzeravatar
Gorgi [Vale]
Beiträge: 231
Registriert: 10.04.2019 20:22:10
Aktuelle Projekte: Am Bau bei der LN6 mitwirken.

Mdl Hcknhm, (Pausiert)
Strecke 4020 & 4080 Schwetzingen(Mannheim) bis Üst. Forst / Graben-Neudorf. (Pausiert)

Re: Schnittstelle für TVM

#26 Beitrag von Gorgi [Vale] »

Carsten Hölscher hat geschrieben: 05.09.2024 12:32:50 Also das Ganze ist als Vorschlag gemeint? Ich dachte Du zeigst irgendwas, was schon geht.

Carsten
Ähm, meinst du sowas:
Aus dem aktuellen Auszug sind dass die Geschwindigkeitsstufen die mein Code ausgibt anhand der eingestellten Parameter:
(Jede vier zusammenliegenden Zeilen stellen einen Block dar. Es wurden die Demodaten genutzt die auch im Delphicode stehen. Wenn Beispielsweise die Daten für die Streckenhöchstgeschwindigkeit verändert werden, so erkennt der Code es automatisch und setzt die Blockgeschwindigkeit von dort bis zum Zug herunter. Aber theoretisch darf man im Betrieb nix verändern, aber falls doch, so erkennt der Code es korrekt und die Geschwindigkeitsstufen werden dementsprechend korrekt angepasst. Ebenso ist im Code zu sehen eine Stelle wo nur 270 als Streckenhöchstgeschwindigkeit statt 300 gilt, und der Code erfasst es und gibt es dementsprechend korrekt aus mit der vorliegenden Blockherruntersignalisierung, ebenso ist auch eine theoretische Weiche mit 220 km/h eingebaut, auch das wird korrekt abgebildet.)

Code: Alles auswählen

tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 30, COVIT: 90
GeschwindigkeitCode: 02

Signalabstand: 2000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 80, COVIT: 170
GeschwindigkeitCode: 80A

Signalabstand: 2000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 160, COVIT: 235
GeschwindigkeitCode: 160A

Signalabstand: 2000
tvm300maxGeschwindigkeit: 270
Geschwindigkeit: 220, COVIT: 285
GeschwindigkeitCode: 220A

Signalabstand: 2000
tvm300maxGeschwindigkeit: 270
Geschwindigkeit: 270, COVIT: 285
GeschwindigkeitCode: (270V)

Signalabstand: 2000
tvm300maxGeschwindigkeit: 270
Geschwindigkeit: 271, COVIT: 285
GeschwindigkeitCode: 270V

Signalabstand: 3000
tvm300maxGeschwindigkeit: 270
Geschwindigkeit: 271, COVIT: 285
GeschwindigkeitCode: 270V

Signalabstand: 2000
tvm300maxGeschwindigkeit: 270
Geschwindigkeit: 271, COVIT: 285
GeschwindigkeitCode: 270V

Signalabstand: 2500
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 270, COVIT: 315
GeschwindigkeitCode: 270A

Signalabstand: 500
Geschwindigkeit: 270, COVIT: 315
GeschwindigkeitCode: 270A

Signalabstand: 2000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 300, COVIT: 315
GeschwindigkeitCode: (300V)

Signalabstand: 2000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 300, COVIT: 315
GeschwindigkeitCode: 300V

Signalabstand: 2000
tvm300maxGeschwindigkeit: 230
Geschwindigkeit: 220, COVIT: 235
GeschwindigkeitCode: 220E

Signalabstand: 2000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 220, COVIT: 235
GeschwindigkeitCode: 220E

Signalabstand: 2000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 220, COVIT: 285
GeschwindigkeitCode: 220A

Signalabstand: 2000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 270, COVIT: 315
GeschwindigkeitCode: 270A

Signalabstand: 3000
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 300, COVIT: 315
GeschwindigkeitCode: (300V)

Signalabstand: 1500
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 300, COVIT: 315
GeschwindigkeitCode: (300V)

Signalabstand: 2500
tvm300maxGeschwindigkeit: 300
Geschwindigkeit: 300, COVIT: 315
GeschwindigkeitCode: 300V
Nun hier das was als Ergebnis rauskommt:

Code: Alles auswählen

Ausgelesen Daten f³r aktuellen Block in dem sich der Zug befindet: Geschwindigkeit: 300, COVIT: 315
GeschwindigkeitCode: 300V

Zulõssige H÷chstgeschwindigkeit nach Sicherungsystem: 300.000000
Zwangsbremsung: 0
Leuchtet COVIT: 0
Fehlercode: 0
Gruß
Gorgi

Edit:
Was derzeit noch nicht geht sind Wechsel von TVM 300 zu TVM 430 und TVM 430 zu TVM 300, Ebenso Wechsel von TVM 300 zu ETCS Level 2 oder ETCS Level 2 zu TVM 300. (Kann ich da theoretisch einen Aufruf ans ETCS Senden, mit gebe mir an was das ETCS beim Signal/Ort xy in xy Kilometer Entfernung zeigt und ob es eine Bremskurve ist oder keine Bremskurve an der Stelle ist, währe gut zu wissen, so könnte ich das direkt miteinander verknüpfen. Insofern sollte ein Levelwechsel vom ETCS zu TVM natürlich auch abfragen können was der aktuelle Code für den Block xy ist. Aber ich denke das hat aktuell noch etwas Zeit.)
Der Wechsel von TVM 300 zu KVB ist fertig eingebaut, aber KVB wird noch nicht aufgerufen, da nicht existent, aber theoretisch Stünde einem Ausstieg von 220 km/h auf Lichtsignale nix im Weg. Am Wechsel von KVB zu TVM 300 bin ich aktuell dran, da fehlt noch der Feinschliff.
Teilweise gehen die Befehle über die Boucle schon oder ich habe sie nach hinten geschoben, weil Zusi sowas noch nicht kann, wie Hauptschalter ausschalten und wieder einschalten, ohne das dabei die Leistung reduziert werden muss.
Aber im Grunde habe ich für alles eigentlich ne Idee für die Umsetzung wie es möglich ist. Mein Ziel ist es ja auch es zu möglichst 100% korrekt umzusetzen. Wenn irgendjemand Fehler findet so kann ich diese korrigieren.

Antworten