Taster, Schalter und Not-Aus im AddOn

Anmerkung:
In diesem Kapitel wird nur die Verarbeitung der Taster und Schalter in einem AddOn behandelt.

Wie sieht schematisch der Ablauf aus, wenn ein Taster oder Schalter betätigt wird?

  • Die USB-Box registriert den Flankenwechsel*)
  • Cockpit-XP erhält von der USB-Box die Information, dass eine Betätigung erfolgt ist
  • Im Addon (ggf. auch in mehreren!) wird der Code unter DigInputEvent gestartet
  • Es erfolgt die Verarbeitung, z.B.
    1. die CU über das Relais der USB-Box auf Pause schalten,
    2. den auslösenden Fahrer automatisch bestrafen,
    3. einen Sprachtext ausgeben usw.

😉 Nur ein Flankenwechsel, also eine Veränderung (!) von „Aus auf Ein“ sowie von „Ein auf Aus“ löst ein Ereignis aus!

Die Unterschiede zwischen Taster und Schalter im DigInputEvent

Taster

Die folgende Erklärung gilt für einen Taster, der ein „Schießer“ ist, d.h. der den Stromkreis im Ruhezustand trennt und für die Dauer der Betätigung schließt. Für einen „Öffner“ ist die Beschreibung sinngemäß umzukehren.

Flankenwechsel von 0 auf 1, Cockpit.Slot = 0 → Betätigung
Flankenwechsel von 1 auf 0, Cockpit.Slot = 1 → Loslassen

Damit könnte die typische Behandlung einer Betätigung so aussehen:

  • Chaos wird ausgelöst:
    1. Taster wird betätigt = Flankenwechsel von 0 auf 1: Verarbeitung „Chaos“, z.B. CU auf Pause, Strafe usw.
    2. Taster wird losgelassen = Flankenwechsel von 1 auf 0: Keine Verarbeitung nötig
  • Rennen wird fortgesetzt:
    1. Taster wird erneut betätigt = Flankenwechsel von 0 auf 1: Verarbeitung „Fortsetzung“, z.B. CU betätigen usw.
    2. Taster wird losgelassen = Flankenwechsel von 1 auf 0: Keine Verarbeitung nötig

Schalter

Die folgende Erklärung gilt für einen Schalter, der für Chaos vom Zustand „ausgeschaltet“ auf den Zustand „eingeschaltet“ wechselt. Für einen „Öffner“ ist die Beschreibung sinngemäß umzukehren.

Kein Unterschied zum Taster, d.h.
Flankenwechsel von 0 auf 1, Cockpit.Slot = 0 → Einschalten
Flankenwechsel von 1 auf 0, Cockpit.Slot = 1 → Ausschalten

Die typische Behandlung sieht aber anders als beim Taster aus, da für Chaos-Auslösung und Fortsetzung nur einmal ein Flankenwechsel von 0 auf 1 (einschalten, Chaos) und einmal von 1 auf 0 (ausschalten, Fortsetzung) stattfindet!

  • Chaos wird ausgelöst:
    1. Schalter wird eingeschaltet = Flankenwechsel von 0 auf 1: Verarbeitung „Chaos“, z.B. CU auf Pause, Strafe usw.
  • Rennen wird fortgesetzt:
    1. Schalter wird ausgeschaltet = Flankenwechsel von 1 auf 0: Verarbeitung „Fortsetzung“, z.B. CU betätigen usw.

Not-Aus

Da es sich beim Not-Aus elektrisch um einen ganz normalen Schalter handelt, gibt es für die Programmierung keine Besonderheiten zu berücksichtigen.

Die durch Schalterprellen verursachten Doppel- bzw. Mehrfachauslösungen werden unter Schalterprellen erkennen und beseitigen behandelt.

 
cockpit-xp/chaos/chaos_mit_tastern/taster_schalter_addon.txt · Zuletzt geändert: 2020/11/28 12:16 (Externe Bearbeitung)