Ergänzungen zum TCP-Protokoll

Aus ZusiWiki
Version vom 20. April 2021, 18:10 Uhr von Johannes (Diskussion | Beiträge) (→‎11.3.3.3.1 Führerstands-IDs: 0x35 (UTM-Zone 2))
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

11.3.3.6 Befehl 01 0A – INPUT (Client → Zusi)

Tastaturzuordnung, Tastaturaktion, Tastaturkommando

anhand des Dialogs Konfiguration -> Eingabegeräte -> Tastatur:

Tastaturzuordnung: Entspricht den "Kategorien" in der linken Spalte (z.B. Fahrschalter, Führerbremsventil). Jeder Schalter/Kombischalter im Führerstand hat eine Tastaturzuordnung, auf die er reagiert. Daher muss im TCP-Protokoll die Tastaturzuordnung auch dann angegeben werden, wenn ein Tastaturkommando angegeben wird (aus dem die Tastaturzuordnung ja eigentlich auch hervorginge).

Tastaturkommando: Entspricht den Tabelleneinträgen. Für die meisten Einträge gibt es separate Kommandos für "Taste gedrückt" und "Taste losgelassen".

Tastaturaktion: Eine gleichzeitige Angabe von Tastaturkommando und Tastaturaktion ist nicht sinnvoll. Hier die möglichen Kombinationen:

Was soll erreicht werden? Tastaturkommando Tastaturaktion
Kombischalter (z.B. Fahrschalter, Fbv) -- Auf-/Abschalten ignoriert Ab_Down, Ab_Up, Auf_Down, Auf_Up, Absolut, Absolut1000er
Kombischalter (z.B. Fahrschalter, Fbv) -- Spezialfunktionen Kommando ohne "Up"/"Down" im Namen, z.B. Fahrschalter_Grundstellung ignoriert
Einfacher Schalter (z.B. Angleicher) -- Schalterbetätigung ignoriert Down, Up (auch Absolut, siehe unten)
Baugruppe mit mehreren Schaltern (z.B. PZB) -- Schalterbetätigung Kommando, z.B. PZBWachsam_Down/PZBWachsam_Up ignoriert

Kurze Tastendrücke werden nicht erkannt

Schickt man einen "Down"- und einen "Up"-Befehl kurz hintereinander (z.B. im selben Paket), scheint Zusi ihn nicht immer zu erkennen.

Ansteuerung von Schaltern/Tastern per Absolutwert

Auch Schalter und Taster lassen sich über die Angabe einer absoluten Rastenstellung ansteuern. Die Positionsangabe 1 (oder höher) schaltet den Schalter ein, die Positionsangabe 0 schaltet ihn aus.

Achtung: Da die Angleicher-Baugruppe im Führerstand ein Taster mit Tastaturzuordnung "Führerbremsventil" ist, führt daher eine Ansteuerung des Fbv per Angabe einer absoluten Rastenstellung derzeit immer zur Betätigung des Angleichers (Nr. 481 in der Liste der bekannten Programmfehler). Ebenso ist die Baugruppe "Dynamische Bremse deaktivieren" ein Taster mit Tastaturzuordnung "Dynamische Bremse". Eine Ansteuerung der dynamischen Bremse mit absoluter Rastenstellung führt zur Betätigung dieses Schalters.

Angabe der Rastennummer bei Kombischaltern

Dokumentiert ist: "Bei den Schaltern mit mehr als einer Schaltstellung gibt der Wert 0 immer die Grundstellung an." Das scheint so nicht zu stimmen. Die Zählung entspricht der Zählung der Rasten (beginnend bei 0), wie sie im Führerstand konfiguriert ist. Die Grundstellung spielt keine Rolle.

11.3.3.3.1 Führerstands-IDs

0x35 (UTM-Zone 2)

Der gesendete Wert muss zunächst als Gleitkommazahl interpretiert und in eine Ganzzahl konvertiert werden. Diese Ganzzahl kann dann als ASCII-Wert interpretiert werden (z.B. 85=U).

0x55 (Stromabnehmer)

Der gesendete Wert muss zunächst als Gleitkommazahl interpretiert und in eine Ganzzahl konvertiert werden. Diese Ganzzahl kann dann bitweise interpretiert werden als:

  • Bit 1 gesetzt ⇔ Stromabnehmer 1 ist oben oder hebt sich gerade
  • Bit 2 gesetzt ⇔ Stromabnehmer 2 ist oben oder hebt sich gerade
  • Bit 3 gesetzt ⇔ Stromabnehmer 3 ist oben oder hebt sich gerade
  • Bit 4 gesetzt ⇔ Stromabnehmer 4 ist oben oder hebt sich gerade
  • Bit 5 gesetzt ⇔ Stromabnehmer 1 hebt sich gerade
  • Bit 6 gesetzt ⇔ Stromabnehmer 2 hebt sich gerade
  • Bit 7 gesetzt ⇔ Stromabnehmer 3 hebt sich gerade
  • Bit 8 gesetzt ⇔ Stromabnehmer 4 hebt sich gerade

wobei Bit 1 das niedrigstwertige Bit ist.