Benutzer-Werkzeuge

Webseiten-Werkzeuge


decoderdb

BiDiB-DecoderDB

Die BiDiB-DecoderDB ist ein offenes Verzeichnis (Repository) für Decoder und Firmwaredefinitionen.
Definitionen werden derzeit von BiDiB-Monitor verwendet, um eine komfortable Unterstützung bei der Verwaltung und Bearbeitung von Konfigurationsvariablen (CVs) des lokalen Fahrezug/Decoder-Bestands zu bieten.

Jeder Interessierte ist eingeladen zur stetigen Verbesserung und Erweiterung der beizutragen.

Die Daten sind hierfür in einem öffentlichen Github Repository abgelegt.
Um Daten zu ändern wird Github Account sowie eine Freigabe durch das BiDiB-Team benötigt.

Decoders & Firmware

Das Verzeichnis enthält zwei Arten von Daten: Decoderdefinitionen und Firmwaredefinitionen. Die Decoderdefinition beschreibt die grundlegenden Spezifikationen eines Decoders wie Produktkennungen, Abmessungen, elektrische Grenzwerte, aber auch Verweise auf Produktbilder und Handbücher.

Die Firmwaredefinition enthält die Beschreibungen aller für die jeweilige Firmwareversion verfügbaren Konfigurationsvariablen. Sie enthält außerdem eine Strukturdefinition, die eine einfache Navigation durch die große Variablenmenge ermöglicht.

Der Verweis zwischen Decoderdefinition und Firmwaredefinition erfolgt über eine Liste von Decodernamen innerhalb der Firmwaredefinition.

Firmwaredefinition

Eine Firmwaredefinition hat im Wesentlichen 3 Hauptbestandteile.

  1. Decoder → eine Liste aller Decoder für die diese Definition gültig ist
  2. CVs → Liste aller verfügbaren CVs bzw. CV Gruppen
  3. Struktur → Definition der Navigationstruktur incl. Referenzen zu den jeweiligen CVs

Die gesamte Definitionsstrukture sieht dabei wie folgt aus.

{
    "firmware": {
        "decoders": []
        "protocol": {
            "cvs": [],
            "cvStructure": [],
            "type": "dcc"
        },
        "version": "31.57",
        "releaseDate": "2014-05-24T00:00:00.000",
        "manufacturerId": 145,
        "manufacturerExtendedId": 0,
     },     
    "version": {
        "createdBy": "...",
        "creatorLink": ...",
        "author": "...",
        "lastUpdate": "2025-10-25T20:46:48.860Z",
        "created": "2016-05-09T00:00:00.000"
    }
}
        

Die Listen für CVs und die Struktur sind dabei unter dem Knoten 'protocol' zu finden.

Decoder

Ein Decoder wird über den Namen, die TypIds und den Decodertyp definiert.

{
   "name":"Car Decoder V5",
   "typeIds":"50",
   "type":3
}

Aktuell funktioniert die Auflösung zur Decoderdefinition ausschließlich über den Namen.

CVs

Ein CV bzw. CVGroup Objekt ist die eigentliche Beschreibung der Konfigurationsvariablen. Neben der CV Nummer (number) und dem Typ (type) ist die Id (id) eines der wichtigsten Elemente in der Beschreibung, da dieses zur Referenzierung in der Struktur verwendet wird. Die Id kann der CV Nummer entsprechen, aber auch eine beliebige Zeichenfolge enthalten. Sie muss jedoch innerhalb der gesammten CV/Cv-Gruppen Liste eindeutig sein.

Zusätzliche Elemente sind der Standardwert (defaultValue), die Zugriffsrechte (mode), zulässige Werte (possibleValues) und die Beschreibung (descriptions)

{
   "number": 1,
   "type": "byte",
   "id": "1",
   "defaultValue": 3,
   "mode": "rw",
   "possibleValues": "1-127",
   "descriptions": [
      {
         "language": "de",
         "text": "Adresse kurz"
      }
   ]
},

Eine CV Gruppe stellt entsprechend eine Zusammenfassung von CVs dar.

{
   "id": "10",
   "type": "dccLongAddr",   
   "defaultValue": 0,
   "mode": "rw",
   "possibleValues": "0-10239",
   "descriptions": [
      {
         "language": "de",
         "text": "Adresse lang"
      }
   ]
   "cvs": [
      {
         "number": 18,
         "type": "byte",
         "defaultValue": 0,
         "mode": "rw",
         "possibleValues": "0-255",
         "descriptions": [
            {
               "language": "de",
               "text": "Niederwertiges Byte"
            }
         ]
      },
      {
         "number": 17,
         "type": "byte",
         "defaultValue": 192,
         "mode": "rw",
         "possibleValues": "192-231",
         "descriptions": [
            {
               "language": "de",
               "text": "Höherwertiges Byte"
            }
         ]
      }
   ],
},

CV Struktur

Über die CV Struktur wird wie Unterteilung der CVs/CVGruppen in die jeweiligen Kategorien definiert. Aus dieser ergibt sind z.B. die Navigationsstruktur im BiDiB-Monitor. Die cvStructure enthält Kategorie-Objekte welche jeweils aus der Bescreibung (descriptions) und einer Liste aus Unterelementen besteht. Diese Unterelemente können wiederum Kategorie-Objekte oder Cv-Referenzen sein.

{
    "descriptions": [
        {
            "language": "de",
            "text": "Adressen"
        }
    ],
    "items": [
        {
            "id": "1"
        },
        {
            "id": "10"
        },
        {
            "id": "229"
        },
        {
            "id": "1726",
            "activeItems": "bit:5"
        }
        
    ]
}

Das Feld id referenziert hierbei auf die id des jeweiligen Cv/CvGruppen Objekts. Zusätzlich ist es möglich über activeItems nur Teile des referenzierten Objektes auszuwählen.

Daten Bearbeiten

Um Änderungen an den Decoder- oder Firmware-Definitionen vorzunehmen, klonen Sie einfach dieses Repository, bearbeiten Sie die JSON-Dateien im Ordner repo/[decoder/firmware] und übertragen Sie die Änderungen anschließend. Da dieses Repository als Community-Projekt konzipiert ist, sind hochwertige Beiträge sehr willkommen!

Um die mühsame manuelle Bearbeitung der JSON-Dateien zu vermeiden, steht ein Editor zur Verfügung. Der Editor kann entweder über die veröffentlichte Online-Version oder direkt aus dem Repository heraus aufgerufen werden.

Mit dem Editor lassen sich die lokalen Repo-Dateien komfortabel bearbeiten. Sobald die Arbeit abgeschlossen und die Änderungen gespeichert sind, müssen sie manuell übertragen und übertragen werden.

Der Editor benötigt in jedem Fall Lese- und Schreibzugriff auf den lokalen Repository-Ordner /repo. Es wird danach gefragt, sobald Sie versuchen, den Bearbeitungsmodus für eine Decoder- oder Firmware-Definition zu aktivieren.

* Zur Bearbeitung mit dem Editor wird aktuell ein Chromium basierender Browser (Chrome/Edge) benötigt.

BiDiB-Monitor

Um das neue Repository mit BiBiB-Monitor zu verwenden, müssen die Synchronisierungseinstellungen angepasst werden. Ersetzen Sie den vorhandenen Wert für die Service-Update-URL durch https://decoderdb.bidib.org/repository.json .

![Service-URL aktualisieren](./docs/bidib-monitor-decoderdb-update.png "Service-URL aktualisieren")

Der Service-Autorisierungscode kann unverändert bleiben oder leer sein.

Da die Dateien nun im JSON-Format anstatt im XML-Format bereitgestellt werden, ist eine Version von BiBiB-Monitor 10.8.3 oder neuer erforderlich. Der allgemeine Workflow bleibt unverändert: „Nach Updates suchen“ → neue Dateien herunterladen → Dateien sind einsatzbereit.

Beim Herunterladen werden die alten Dateien im *.decdb-Format nicht gelöscht, da die Synchronisierung mit der ursprünglichen DecoderDB weiterhin parallel genutzt werden kann. Die neue BiBiB-Monitor Version lädt jedoch vorzugsweise zuerst die *.json-Dateien.

Änderungen Testen

Solange der Editor die vollständige Vorschau der CV-Definitionen nicht unterstützt, kann der BiBiB-Monitor zum Testen verwendet werden.

Daher muss die geänderte Datei aus dem Repository-Ordner in den entsprechenden Ordner innerhalb des BiBiB-Benutzerdatenverzeichnisses kopiert werden.

Decoder_145_MS450.json

[PathToRepository]\repo\decoder\145\Decoder_145_MS450.json -> C:\users\[USERNAME]\.bidib\decoder\145\Decoder_145_MS450.json

Starten Sie anschließend den BiBiB-Monitor oder, falls dieser bereits gestartet ist, öffnen Sie die Einstellungen des Decoder-Datenrepositorys und klicken Sie auf die Schaltfläche „Definitionen neu laden“.

Die Änderungen sollten nun im Decoder-Dialog sichbar sein.

decoderdb.txt · Zuletzt geändert: von RS200

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki