Ackdetektor und wie man Informationen aus den Decodern ausliest

Informationen an den Decoder zu schicken ist einfach, denn dies ist die übliche Richtung der Datenübertragung, wie sie bei der Modellbahn auftritt. Doch ab und an tritt auch mal der umgekehrte Fall auf, daß Informationen vom Decoder zur Zentrale geschickt werden sollen; beispielsweise beim auslesen von Decoderinformationen. Nun stellt sich die Frage: Wie funktioniert dies "entgegen der Einbahnstraße"?

Die Lösung ist simpel aber leider etwas umständlich:
Die Zentrale bietet dem Decoder verschiedene Informationen an und dann, wenn die angebotene Information mit der im Decoder gespeicherten Information übereinstimmt, bestätigt (acknowledge: engl. bestätigen) dies der Decoder. Konkret heißt dies, daß er für eine bestimmte Zeit den Motor anschaltet wodurch ein merklicher Strom fließt. Dieser Strom wird vom Ackdetektor detektiert (sollte man kaum für möglich halten bei der Bezeichnung ;-) ) und der Zentrale gemeldet.

Beispiel:
Im Decoder ist in CV 2 der Wert 5 gespeichert. Beim Auslesen geht die Zentrale nunwie folgt vor:
CV 2, Wert 0 anbieten; keine Reaktion
CV 2, Wert 1 anbieten; keine Reaktion
CV 2, Wert 2 anbieten; keine Reaktion
CV 2, Wert 3 anbieten; keine Reaktion
CV 2, Wert 4 anbieten; keine Reaktion
CV 2, Wert 5 anbieten; Wert stimmt überein, Decoder schaltet den Motor kurz ein, Ackdetector registriert dieses, meldet es an die Zentrale und diese kennt somit den in CV 2 abgelegten Wert.

Dieses Verfahren ist insbesondere dann lästig, wenn hohe Werte in den CVs abgelegt sind. Dann können bis zu 255 Versuche nötig sein, um eine CV auszulesen.
Ein etwas schnelleres Verfahren, das jedoch nicht von allen Decodern unterstützt wird, ist das Auslesen der einzelnen bits einer CV. So kann man mit 16 Versuchen (jeweils auf Null und Eins testen) ein ganzen Byte auslesen.