Dieter (ddebahn) und ich (_DB_) haben uns ja ein wenig dem Thema DCC-EX verschrieben und sind von den Möglichkeiten dieser Zentrale ziemlich begeistert.
Da es sich bei DCC-EX um ein Projekt aus dem angloamerikanischen Raum handelt, könnte ich mir sehr gut vorstellen, daß zu RailControl als übergeordnetes Stellwerk die Zentrale EX-CommandStation sehr gut passt. Beide Projekte sind OpenSource und ergänzen sich wunderbar.
DCC-EX bietet zudem auch sehr viel Spielraum für Modellbahner, die selbst Hand an einen Arduino oder kompatibles Board legen möchten, ohne selbst ein eigenes System entwickeln zu wollen bzw. zu müssen.
Hierbei wäre es jedoch sehr wichtig, daß RailControl gewisse Zentralenbesonderheiten unterstützt.
Wir - Dieter und ich - haben dies am Beispiel der Servoweichen erfahren:
RailControl unterstützt die Weichen ja als DCC-Zubehör (was sie meistens ja auch sind, wenn man an Weichen mit eigenem Decoder denkt). Der Befehl zum Stellen einer Weiche lautet entsprechend <a 100 0> bzw. <a 100 1> - je nachdem ob die Weiche auf Geradeaus oder Abzweigend gestellt werden soll (a - Befehl / 100 die beispielhafte DCC-Adresse / 0 oder 1 Weichenstellung)
Nun bietet die EX-CommandStation ja enorme Möglichkeiten, über die Erweiterungspins oder über I2C-Schnittstellen Servo-Erweiterungen anzuschließen. Das ‚winzige‘ Problem dabei ist aber, daß der Befehl zum Stellen einer Weiche jetzt auf <T 100 0> bzw. <T 100 1> lautet (Bei Signalen gilt das zuvor Geschriebene ebenfalls). Sehr ähnlich, aber doch anders genug...
Meine Bitte an Dich würde also lauten:
Könntest Du Dir vorstellen, das DCC-EX-Projekt ein wenig intensiver zu unterstützen?
Als Beispiel könnten wir uns vorstellen, daß bei der Konfiguration einer Weiche bzw. eines Signals eine Checkbox angewählt werden kann, die entsprechend andere Eigenschaften dieses Gerätes an-/abwählt.
Das wäre die ‚Deluxe’-Version. Es ginge natürlich auch deutlich einfacher:
der Modellbahner, der seine Anlage ja sowieso planen muß/sollte, sieht bei Verwendung der EX-CommandStation einen Adressbereich vor, der von RailControl sehr einfach berücksichtigt werden könnte:
Sollte diese DCC-EX Konfigurationsdatei nicht vorliegen, dann sind alle Weichen und Signale wie bisher als DCC-Zubehör zu betrachten (= Voreinstellung).
Nur gewisse Adressbereiche z.B. von 100.. 199 (vom User in einer DCC-EX-Konfigurationsdatei zu wählen) soll einen anderen Befehlstyp nutzen.
Wir haben das einfach einmal in der aktuellen RailControl Version ohne Konfigurationdatei

Und dann sieht der Code in RailControl (DCCPpEx.cpp) so aus:
void DccPpEx::AccessoryOnOrOff(__attribute__((unused)) const Protocol protocol,
const Address address,
const DataModel::AccessoryState state,
__attribute__((unused)) const bool on)
{
string buffer("<");
if (address < 200 && address > 100)
{
buffer += ("T ");
}
else
{
buffer += ("a ");
}
buffer += to_string(address);
buffer += " ";
buffer += state == DataModel::AccessoryStateOff ? "0" : "1";
buffer += ">";
SendInternal(buffer);
}
Natürlich ohne DCC-EX-Konfigurationsdatei - hier könnte dann folgendes stehen:
(Spalte 1 Befehlstyp - Spalte 2 Anfangsadresse - Spalte 3 Endadresse - Spalte 4 Kommentar)
T 100 199 DCC-EX Servoweichen
T 200 299 DCC-EX Servosignale
T 300 349 DCC-EX Servozubehör
:
Was hältst Du davon?
Viele Grüße aus Herne - Detlef