1.0.1 — GPL-3.0-only Lizenz ergänzt, SPDX-Hinweise gesetzt und Release-/CI-/Doku-Dateien aktualisiert.
1.0.0 — Erste stabile GitHub-Release-Version. Enthält strikt gültige R-Net.json, Semikolon-CSV, robuste Versionsausgabe, deliver-Target und GitHub-CI.
0.2.17 — Versionsoptionen robust gemacht: --version und --libversion werden vor dem Qt-CommandLineParser abgefangen. Das Smoke-Test-Sample enthält keine absichtlichen Decoder-UNKNOWNs mehr.
0.2.16 — Lib-Version wird sichtbar ausgegeben: --version, --libversion und libversion: in der normalen Textausgabe. Alle Markdown-/Doc-Dateien wurden auf den aktuellen Stand gebracht.
0.2.15 — CMake-Target deliver ergänzt; erzeugt ein versioniertes Quellen-ZIP direkt aus dem Build-System.
0.2.14 — R-Net.json und Dokumentation auf korrekt geschriebene, strikt gültige JSON-Schlüssel bereinigt. Tippfehler-Aliase werden nicht mehr dokumentiert und nicht mehr als Parser-Aliase akzeptiert.
0.2.13 — GitHub-Pflegestand: Skripte, Doku, CONTRIBUTING/SECURITY/Issue-Templates und zusätzliche Kommentare ergänzt.
0.2.12 — CSV-Spaltenüberschrift präzisiert: die letzte Spalte heißt jetzt ausgabe.
0.2.11 — Test-App: --out/-o schreibt Semikolon-CSV.
0.2.10 — R-Net.json um Frame-Metadaten phase, quelle, senke ergänzt.
Eigenständige Qt-Core-Shared-Library zum Dekodieren von R-Net/CAN-Botschaften aus einer editierbaren R-Net.json.
RNetMsgBrokerals Shared LibraryreadJson(jsonFilename)zum Laden von Frame-Definitionen aus syntaktisch gültigem JSON- interne Ablage als
QMultiMap<id-result, Definition> add(json)unddel(json)für Runtime-Erweiterung/-LöschungtoString(CanMsg)undtoString(canId, data, extended, remote)RNetMsgBrokerTestals Konsolen-Test-App- Versionsausgabe über
--version,--libversionundRNetMsgBroker::versionString() R-Net.jsonmit bekannten R-Net-Frame-Familien- Frame-Metadaten
phase,quelle,senkeundzyklus - Feld-Metadaten
unit/einheitunddescription
toString() liefert bewusst eine kurze Broker-/Log-Zeile:
RnetMsg_xyz (Modul=1); field_1=0xaa; field_2=0xbb
Dabei kommen id_parts aus der CAN-ID und fields aus dem Datenfeld hinter #.
R-Net.json muss syntaktisch gültiges JSON sein. Keine Kommentare, keine unquotierten Schlüssel, keine 0x-Zahlen ohne Anführungszeichen und keine absichtlich falsch geschriebenen Schlüssel.
Korrekte Schlüssel:
{
"Id-and-mask": "0x56700",
"id-result": "0x56700",
"key-mask": "0xFFF0F",
"rnet_name": "RnetMsg_xyz",
"frametype": "example",
"phase": "test.example",
"quelle": "test",
"senke": "test",
"zyklus": "20ms",
"id_parts": [
{ "name": "Modul", "bit_mask": "0xf0", "shift": 4, "big_endian": false }
],
"fields": [
{
"name": "field_1",
"bit_mask": "0x00ff00",
"shift": 8,
"big_endian": false,
"einheit": "",
"description": "oberes Beispiel-Datenbyte"
},
{
"name": "field_2",
"bit_mask": "0x0000ff",
"shift": 0,
"big_endian": false,
"einheit": "",
"description": "unteres Beispiel-Datenbyte"
}
]
}readJson() akzeptiert nur syntaktisch gültiges JSON. Prüfung:
python3 -m json.tool R-Net.json >/dev/null && echo JSON_OKBei --full erscheinen die Frame-Metadaten in der Abschlussklammer, z. B.:
RNetJsmSerialHeartbeat; serial32=0xfc801ecd; serial_tail=0x0; {typ=serial, phase=startup.serial_auth, quelle=jsm, senke=pm, id=0x0000000e, mask=0x000007ff, result=0x0000000e, STD, data=FC 80 1E CD 00 00 00 00}
./build/RNetMsgBrokerTest --version
./build/RNetMsgBrokerTest --libversion--version wird vor dem Qt-CommandLineParser abgefangen und gibt die Test-App-/Library-Version aus. --libversion gibt nur die reine Library-Version aus, z. B.:
1.0.1
Bei normaler Textausgabe ohne --out steht die Library-Version zusätzlich in der ersten Ausgabezeile:
libversion: 1.0.1
geladen: 187 Definitionen aus ...
Bei --out/-o bleibt die Datei reine Semikolon-CSV; Versions- und Ladehinweise gehen nur ins Log.
./build/RNetMsgBrokerTest -d ./testdata/candump_sample.txt --full -o ./testdata/candump_sample.csvCSV-Spalten:
zeile;zeit;interface;can_id;format;rtr;dlc;data;name;typ;phase;quelle;senke;ausgabe
Enthalten sind CHANGELOG.md, AUTHORS.md, CONTRIBUTING.md, SECURITY.md, GitHub-Templates, scripts/build.sh, scripts/check.sh, scripts/candump_to_csv.sh, scripts/list_unknown_observed.py und die Dokumente unter docs/.
Lizenz: GNU General Public License v3.0 only (GPL-3.0-only). Die vollständige Lizenz steht in LICENSE; Quell- und Skriptdateien tragen SPDX-Hinweise.
cmake -S . -B build -G Ninja
cmake --build build -j"$(nproc)"Das CMake-Target deliver erzeugt ein versioniertes Quellen-ZIP im Build-Verzeichnis:
cmake -S . -B build -G Ninja
cmake --build build --target deliver
ls -l build/RNetMsgBroker_v*.zipDas Archiv enthält die Projektdateien für Weitergabe/GitHub, aber keine Build-Artefakte und kein .git-Verzeichnis.
./build/RNetMsgBrokerTest --version
./build/RNetMsgBrokerTest --libversion
./build/RNetMsgBrokerTest --both
./build/RNetMsgBrokerTest -d ./testdata/candump_sample.txt --full -o ./testdata/candump_sample.csv
./scripts/check.sh