====== Konfigurationsoptionen ====== Die in einer Decoderkonfiguration enthaltenen Decoderoptionen bilden einen wichtigen Bestandteil. Es können Optionen erzeugt, geändert, kopiert und gelöscht werden oder mit der Maus an eine andere Stelle der Hierarchie verschoben werden. Die einzelnen Typen von Optionen werden im folgenden beschrieben: ===== Ordner ===== Ordner dienen dazu, zusammengehörige Optionen im Explorer-Fenster zu gruppieren, oder Optionen, die nichts miteinander zu tun haben, voneinander zu trennen. Bei einem Lokdecoder beispielsweise werden die Optionen zur Festlegung der Fahreigenschaften und Geschwindigkeit üblicherweise zusammen gruppiert und von den Optionen getrennt, welche die Funktionsausgänge beeinflussen. Dies wird erreicht durch die Erzeugung verschiedener Ordner für die beiden Gruppen von Optionen. Die Optionen, die in einem Ordner enthalten sind, werden auch Unteroptionen dieses Ordners genannt. Ordner können auch andere Ordner enthalten. Obwohl Ordner nicht direkt mit physischen Einstellungsoptionen (Konfigurationsvariablen) des Decoders oder Geräts verknüpft sind, können Ordner auch Zahlenwerte anzeigen. Ein typisches Beispiel eines solchen Ordners ist die vierstellige Adresse bei einem NMRA DCC-kompatiblen Fahrzeugempfänger. Dieser enthält zwei numerische Optionen für die CV 17 und 18 als Unteroptionen. Der Ordner gruppiert diese beiden Optionen, da sie sehr eng miteinander zusammenhängen. Zusätzlich kann der Ordner die vierstellige Adresse anzeigen, die sich aus dem Inhalt von CV 17 und 18 ergibt. Umgekehrt werden alle Änderungen der beim Ordner angezeigten vierstelligen Adresse automatisch entsprechend in die Unteroptionen übertragen. Auf diese Weise kann die vierstellige Adresse einfach als vierstellige Zahl eingegeben und die CV 17 bzw. 18 mit den entsprechenden Werten versorgt werden, ohne die komplizierten Rechenregeln für die Umrechnung der vierstelligen Adresse selbst anwenden zu müssen. Weil Ordner nicht mit einer echten Konfigurationsoption des Decoders verknüpft sind, können etwaige beim Ordner angezeigte Werte auch nicht direkt im Decoder gespeichert werden. Stattdessen werden diese Werte für die komfortable Bearbeitung bestimmter anderer Konfigurationsoptionen verwendet. Ein Ordner, der die vierstellige Adresse eines NMRA DCC-kompatiblen Fahrzeugempfängers repräsentiert, kann für die vierstellige Bearbeitung dieser Adresse verwendet werden. Falls hier beispielsweise der Wert 1234 eingegeben wird, werden die Unteroptionen CV 17 and CV 18 automatisch auf 196 bzw. 210 gesetzt. Der Wert 1234 wird selbst nicht im Decoder gespeichert, da dieser keinen Speicher besitzt, diesen Wert direkt zu speichern. Stattdessen werden die beiden zu CV 17 und CV 18 gehörenden Werte im Decoder gespeichert, die die Adresse 1234 ergeben. Der beim Order angezeigte Wert dient dagegen der komfortablen Bearbeitung vierstelliger Adressen. Die bei Ordnern angezeigten Werte werden als frei editierbare Zahlen oder als Liste mit einer begrenzten Auswahl vordefinierter Möglichkeiten im Explorerfenster angezeigt. ===== Nummer ===== Nummern repräsentieren numerische Konfigurationsoptionen des Decoders oder Teile einer solchen Option. Ein typisches Beispiel einer solchen Nummer ist die CV 1 bei einem NMRA DCC-kompatiblen Fahrzeugempfänger, welche die zweistellige digitale Adresse des Decoders enthält. Die bei Nummern angezeigten Werte werden als frei editierbare Zahlen oder als Liste mit einer begrenzten Auswahl vordefinierter Möglichkeiten im Explorerfenster angezeigt. Nummern können keine Unteroptionen enthalten. ===== Check Box ===== Check Boxen oder binäre Optionen repräsentieren Konfigurationsoptionen, die nur die Werte 0 oder 1 annehmen können. Solche Optionen werden üblicherweise verwendet, um bestimmte Funktionen in einem Decoder ein- oder auszuschalten. Ein typisches Beispiel einer solchen binären Option ist das sechste Bit von CV 29 bei einem NMRA DCC-kompatiblen Fahrzeugempfänger, mit dem der Decoder auf zweistellige oder vierstellige Adresse geschaltet werden kann. Die bei binären Optionen angezeigten Werte werden als Check Box („Häkchen“) im Explorerfenster angezeigt. Binäre Optionen können keine Unteroptionen enthalten. Es ist außerdem nicht erlaubt, binäre Optionen "frei schwebend" anzulegen. Das bedeutet, es ist nicht erlaubt, eine binäre Option für ein Bit einer Konfigurationsoption anzulegen, ohne auch eine Nummer, Struktur oder Formel (siehe unten) für die Konfigurationvariable zu erzeugen, zu der das Bit gehört. Es ist also beispielsweise nicht erlaubt, für das sechste Bit von CV 29 eines NMRA DCC-kompatiblen Fahrzeugempfängers eine binäre Option anzulegen, ohne für die CV29 selbst eine Nummer oder Struktur zu definieren. Es ist allerdings nicht unbedingt nötig, dass die binäre Option eine Unteroption dieser Nummer oder Struktur ist. Die binäre Option darf auch anderswo in der Hierarchie der Optionen platziert werden. ===== Struktur ===== Strukturen repräsentieren numerische Konfigurationsoptionen des Decoders, die aus anderen Unteroptionen zusammengesetzt sind. Strukturen enthalten Unteroptionen, welche die verschiedenen Bits der Option repräsentieren. Ein typisches Beispiel einer solchen Struktur ist die CV 29 bei einem NMRA DCC-kompatiblen Fahrzeugempfänger, welche die Grundeinstellungen des Decoders enthält. Diese Grundeinstellungen können jeweils wieder durch eine binäre Unteroption dargestellt werden. Wenn ein bestimmter Decoder z.B. 5 einstellbare Bits in CV 29 enthält, so kann diese CV 29 im Explorerfenster durch eine Struktur dargestellt werden, welche 5 binäre Optionen als Unteroptionen enthält. Die Werte von Strukturen werden im Explorerfenster als Zahlen angezeigt. Wenn sich der Wert der angezeigten Zahl ändert, wird automatisch die Anzeige bei den Unteroptionen entsprechend angepasst. Wird umgekehrt der Wert einer Unteroption geändert, so wird automatisch der Wert der Struktur angepasst. Strukturen können nicht nur binäre Unteroptionen enthalten wie im Beispiel der CV 29, sondern auch Nummern. Ein typisches Beispiel einer solchen Struktur ist die CV 19 bei einem NMRA DCC-kompatiblen Fahrzeugempfänger, welche die Mehrfachtraktionsadresse in den unteren 7 Bits enthält und eine Einstellung für die Fahrtrichtungsumkehr im obersten Bit. Diese Option kann im Explorerfenster durch eine Struktur dargestellt werden, die eine 7-Bit umfassende Nummer und eine binäre Option als Unteroption enthält. Strukturen müssen Unteroptionen enthalten. ===== Formel ===== Formeln werden für numerische Konfigurationsoptionen eines Decoders verwendet, deren Wert mit Hilfe einer mathematischen Formel aus den Werten der enthaltenen Unteroptionen berechnet wird. Formeln enthalten immer Unteroptionen. Ein Beispiel einer solchen Formel ist CV 115 im ZIMO-Decoder MX60. Diese CV beeinflusst die „Kupplungsansteuerung“ und kann zweistellige Werte zwischen 0 und 99 enthalten. Dabei steuert die Zehnerstelle die „Dauer der Vollspannung“ mit Werten zwischen 0 und 9, und die Einerstelle den „Prozentsatz der Spannung nach Puls“, ebenfalls mit Werten zwischen 0 und 9. Wird die Spannung nach Puls auf 3 und die Dauer der Vollspannung auf 7 gesetzt, so ergibt sich ein Wert von 73 für die CV. Anders ausgedrückt wird der Wert der CV mit der Formel 10*A+B berechnet, wobei A den Wert der „Dauer der Vollspannung“ und B den Wert der „Spannung nach Puls“ beschreibt. Der Wert von Formeln wird als Zahlenwert im Explorerfenster angezeigt. Formeln müssen Unteroptionen enthalten. Es sind nur Nummern (s.o.) als Unteroptionen erlaubt. ===== Überblick über die Optionstypen ===== ^ Typ ^ Besitzt \\ Unteroptionen ^ Anzeige ^ Korrespondiert mit einer echten\\ Konfigurationsvariable im Decoder\\ (z.B. einer CV) ^ Zweck ^ Beispiel\\ (NMRA DCC) ^ | Ordner | Ja | Nummer oder Liste | Nein | Gruppiert zusammengehörige Optionen. | Ordner, mit allen Optionen, welche die Geschwindigkeit einer Lok beeinflussen | | Nummer | Nein | Nummer oder Liste | Ja | Zahlenwerte, die in einer Konfigurationsvariable des Decoders oder einem Teil von ihr gespeichert werden. | CV1,\\ CV18,\\ Mehrfachtraktionsadresse in den unteren 7 Bits von CV19 | | Check Box | Nein | Check Box | Ja (ein Bit) | Repräsentiert ein einzelnes Bit einer Konfigurationsvariable des Decoders. | Bits von CV29,\\ Oberstes Bit von CV19 | | Struktur | Ja | Nummer | Ja | Für Optionen, die bitweise aus anderen Optionen zusammen-gesetzt sind. | CV29, CV19 | | Formel | Ja | Nummer | Ja | Für Optionen, deren Wert aus den Werten anderer Optionen mit Hilfe einer Formel berechnet wird. | CV115\\ (Zimo MX60) | Jede Option wird mit einer Reihe von Eigenschaften versehen. Diese Eigenschaften fallen in unterschiedliche Kategorien. Diese Eigenschaften beschreiben, wie die Option im Explorerfenster angezeigt, wie ihr Wert bearbeitet oder wie der Wert mit einem im Decoder zu speichernden Wert (CV) verknüpft sein soll (sofern vorhanden). Die Eigenschaften beschreiben also das Look & Feel der Option sowie die Art ihrer Speicherung. Allgemeine Eigenschaften legen den Namen der Option fest, Hilfeinformationen, die in einem Tooltip angezeigt werden, oder andere Merkmale einer Option. Physische Eigenschaften beschreiben die Nummer der mit einer Option verknüpften physischen Option (CV-Nummer), den Wertebereich und die belegten Bits, etc. Weiterhin ist es möglich, eine Formel für die Berechnung des Werts der Option anzugeben (z.B. bei DCC die vierstellige Adresse, die aus den Werten von CV17 und CV 18 berechnet wird) oder eine Liste von Auswahlmöglichkeiten, falls der Wert intuitiv über eine Liste mit möglichen Einstellangaben bearbeitet werden soll. Es ist auch möglich, andere Optionen anzugeben, mit denen die ausgewählte Option abhängig von den Werten jener Optionen freigeschaltet oder gesperrt werden kann. Es ist z.B. sinnvoll, die Option für die vierstellige Adresse eines NMRA DCC-kompatiblen Lokomotivdecoders im Explorerfenster zu sperren, wenn das 6. Bit von DCC CV 29, mit dem der Adressierungsmodus bestimmt wird, gelöscht ist. Schließlich kann einer Option auch noch ein Editor zugeordnet werden (z.B. der Editor zum Bearbeiten von Geschwindigkeitstabellen, siehe Abschnitt 2.4). Dieser Editor erscheint dann im Decoderfenster, wenn diese Option ausgewählt wird. ===== Referenz ===== Referenzen werden verwendet, um mit möglichst wenig Aufwand weitgehend exakte Referenzen sind nützlich, wenn eine Reihe von Konfigurationsoptionen erstellt werden sollen, die sich nur durch Namen und Nummer unterscheiden. Es ist auch möglich, Referenzen auf Ordner zu erstellen. In diesem Fall werden die Namen aller Optionen, die in diesem Ordner enthalten sind, aus den Namen im ursprünglichen Ordner abgeleitet. Die Nummern dieser Optionen werden automatisch angepasst. Kopien von anderen Optionen zu erzeugen. Referenzen definieren keinen eigenen Optionstyp. Sie können jedoch genutzt werden, um die Arbeit für die Erstellung einer Reihe nahezu identischer Optionen deutlich zu verringern. Ein Beispiel sind die Optionen zur Beschreibung der Zusatzfunktionen eines DCC Lokdecoders. In vielen Fällen gibt es hier pro physikalischen Funktionsausgang bzw. logischer DCC-Funktion (z. B. F1, F2, ...) eine Konfigurationsoption oder eine Gruppe von Optionen (vorzugsweise in einem Ordner zusammengefasst). Insgesamt werden alle Funktionsausgänge bzw. alle logischen DCC-Funktionen von einer Reihe von Optionen oder Gruppen von Optionen beschrieben, die sich untereinander nur durch ihre Namen und ihre Nummer (CV-Nummer) unterscheiden. Um die Vervielfachung dieser fast identischen Konfigurationsoptionen zu vermeiden, ist es möglich, nur für die erste dieser Optionen eine vollständige Konfigurationsoption zu erstellen und für die anderen, nahezu identischen Optionen je eine Referenz zu erzeugen, die sich auf die erste Option bezieht. In den Referenzen kann dann der Name bzw. die Nummer geeignet angepasst werden. Referenzen sind nützlich, wenn eine Reihe von Konfigurationsoptionen erstellt werden sollen, die sich nur durch Namen und Nummer unterscheiden. Es ist auch möglich, Referenzen auf Ordner zu erstellen. In diesem Fall werden die Namen aller Optionen, die in diesem Ordner enthalten sind, aus den Namen im ursprünglichen Ordner abgeleitet. Die Nummern dieser Optionen werden automatisch angepasst. Gegenüber einer per Zwischenablage erstellten Kopie einer Option haben Referenzen den Vorteil, dass sich nachträgliche Korrekturen und Veränderungen der Originaloption dementsprechend auch auf alle Referenzen automatisch auswirken. ===== Indizierte Optionen ===== Manche Decoder besitzen so viele Einstellungsmöglichkeiten, dass hierfür eine große Menge von Konfigurationsoptionen (CVs) erforderlich ist. Andererseits ist die Anzahl der über das Gleissignal ansprechbaren Optionen begrenzt. Damit in einem Decoder mehr Optionswerte gespeichert werden können als diese Grenzen eigentlich zulassen, wird ein sogenannter „indizierter Zugriff“ vorgenommen. Dies bedeutet, dass sich die Bedeutung einer CV ändern kann, abhängig vom Wert eines sogenannten „Indexregisters“. Durch das Ändern des Wertes im Index-Register ändert man automatisch die Werte und die Bedeutung der indizierten Optionen mit. Auf diese Weise kann eine Option mit einer bestimmten Nummer (z.B. die CV 280) mehrmals verwendet werden und löst den Mangel an CVs. Wenn beispielsweise die CV 260 als Index-Register für die CV 280 verwendet wird, so wird mit jeder Änderung von CV260 die Bedeutung von CV 280 gleich mit geändert. Wenn für die CV 260 die fünf Werte von 0 bis 4 zugelassen werden, so lassen sich in der CV 280 fünf unterschiedliche Werte mit jeweils unterschiedlicher Bedeutung speichern. Um einen bestimmten Wert in die CV 280 zu schreiben bzw. aus dieser zu lesen, muss zuvor der entsprechende Wert zwischen 0 und 4 in die CV 260 geschrieben werden. Wird hier 0 hineingeschrieben, so kann auf den ersten Wert in CV 280 zugegriffen werden, wenn 1 in die CV 260 geschrieben wird, so kann auf den zweiten Wert in CV 280 zugegriffen werden usw. In der Decoderdatenbank von TrainProgrammer™ können auch indizierte Optionen hinterlegt werden. Beim Programmiervorgang wird vor dem Zugriff auf eine indizierte Option immer automatisch der passende Wert in das oder die Optionen geschrieben, welche für den indizierten Zugriff verwendet werden. In der Decoderdatenbank ist es also z.B. möglich, die CV 260 als Indexregister für die CV 280 einrichten. Für die fünf Werte von 0 bis 4 lassen sich dann fünf verschiedene Konfigurationsoptionen festlegen und mit CV 280 verknüpfen. Diese fünf Optionen können unterschiedliche Namen, Bedeutungen, Wertebereiche und andere Eigenschaften haben. Bei jeder dieser Optionen wird dann angegeben, welche CV als Indexregister fungiert (in diesem Beispiel also CV 260) und welcher Wert (in diesem Beispiel 0 bis 4) in das Indexregister zu schreiben ist, um auf die betreffende Option zugreifen zu können. Ein und dieselbe Option kann auch mit mehreren Indexregistern indiziert werden. In diesem Fall sind dann vor dem Programmieren der indizierten Option mehrere Indexregister mit den entsprechenden Werten zu belegen. TrainProgrammer™ geht sogar soweit, dass selbst die Indexregister selber wieder indiziert sein können. Derzeit ist aber kein Decoder bekannt, der so etwas verwendet. Es ist darüber hinaus auch möglich, Referenzen auf indizierte Optionen zu bilden und damit indizierte Optionen mit wenig Aufwand zu vervielfältigen. Die Versorgung der Indexregister mit den richtigen Werten wird von TrainProgrammer™ während des Programmiervorgangs vor dem Zugriff auf die indizierte Option vollautomatisch durchgeführt. Für den Endanwender erfolgt die Programmierung indizierter Optionen daher praktisch genauso komfortabel und einfach, wie der Zugriff auf normale, nicht indizierte Optionen auch. Mehrsprachigkeit, Ableitungen, Vorlagen Die in diesem Abschnitt beschriebenen Funktionen sind nützlich für die Erstellung von Decoderkonfigurationen, die nicht nur für den persönlichen Gebrauch bestimmt sind, sondern auch von anderen Benutzern verwendet werden sollen. ===== Mehrsprachige Decoderkonfigurationen ===== Jede Decoderkonfiguration kann sprachabhängige Bestandteile (z.B. Bezeichnungen, Kurzbeschreibungen, etc.) für unterschiedliche Sprachen enthalten. Die aktuell verwendete Sprache hängt dann immer davon ab, in welcher Sprache TrainProgrammer™ installiert wurde. Mit den Optionen der Decoder-Datenbank ist es jedoch möglich, die sprachabhängigen Inhalte einer Decoderkonfiguration gleichzeitig für alle unterstützten Sprachen zu bearbeiten. Auf diese Weise kann jede Decoderkonfiguration für verschiedene Sprachen erzeugt werden. Wenn solch eine Decoderkonfiguration in der deutschen Version von TrainProgrammer™ verwendet wird, so werden automatisch die deutschsprachigen Inhalte der Decoderkonfiguration angezeigt. Wird dieselbe Decoder-Konfiguration in der englischen Version von TrainProgrammer™ verwendet, so werden automatisch die englischsprachigen Inhalte dieser Decoderkonfiguration sichtbar. Die derzeit unterstützten Sprachen sind Deutsch und Englisch. ===== Ableitung ===== Es ist möglich, Decoderkonfigurationen von anderen abzuleiten. Dies ist sehr nützlich und zeitsparend, wenn mehrere ähnliche Decoderkonfigurationen erstellt werden sollen. In vielen Fällen sind die Konfigurationen der Decoder eines Herstellers zueinander sehr ähnlich, wenn nicht sogar identisch. In diesem Fall ist es sinnvoll, eine Decoderkonfiguration für einen typischen Vertreter einer solchen Familie von ähnlichen Decodern zu erstellen und dann Konfigurationen für die anderen Decoder dieser Familie aus der ersten abzuleiten. Die Ableitung bewirkt zunächst, dass alle Optionen der Basis-Decoderkonfiguration von der abgeleiteten Konfiguration übernommen werden. Weiterhin ist es möglich, ausgewählte Optionen in der abgeleiteten Konfiguration zu ändern, um die Teile der abgeleiteten Konfiguration zu berücksichtigen, die sich von der Basis-Konfiguration unterscheiden. Folgende Änderungen sind in abgeleiteten Konfigurationen möglich: * Optionen, die in der Basiskonfiguration enthalten sind, die aber nicht von der abgeleiteten Konfiguration unterstützt werden, können aus der abgeleiteten Konfiguration entfernt werden. * Neue Optionen, die von der abgeleiteten Konfiguration unterstützt, aber nicht in der Basiskonfiguration enthalten sind, können hinzugefügt werden. * Optionen der Basis-Konfiguration können mitsamt untergeordneter Optionen in der abgeleiteten Konfiguration vollständig ersetzt werden. Das hat den gleichen Effekt wie das Entfernen einer Option und Hinzufügen einer neuen. * Ausgewählte Teile des Inhalts einer Option können in abgeleiteten Konfigurationen überschrieben werden. Dies ist nützlich, wenn die abgeleitete Option sich nur in inhaltlichen Details von der Basis-Option unterscheidet, wie z.B. Standardwert, minimal oder maximal zulässige Werte, Namen oder Tool-Tipps, etc. ===== Vorlagen ===== Vorlagen runden das Konzept der Ableitung ab. Angenommen, es gebe eine Familie von nahezu identischen Decodern mit einem großen Teil von gemeinsamen Optionen. In sol-chen Fällen ist es hilfreich, eine Decoderkonfiguration, die sämtliche Gemeinsamkeiten dieser Decoder enthält, als Basiskonfiguration zu erstellen und alle anderen Konfigurationen von dieser Basis abzuleiten. Wenn die Basiskonfiguration selbst aber keinen wirklich vorhandenen Decoder repräsentiert, so kann diese Konfiguration in der Daten-bank als Vorlage gekennzeichnet werden. Diese Vorlagen werden nur benutzt, um ande-re Decodern in der Decoder-Datenbank davon abzuleiten. Aber Sie werden im normalen Programmierbetrieb nicht in den entsprechenden Auswahllisten von TrainPro-grammer™ angezeigt.