Trace erfasst serielle Byte-Streams in Echtzeit und macht sie als strukturierte Telegramme sichtbar — RS232, USB-Serial, CAN, SPI. Eigene Protokolle beschreibst du rein deklarativ in TrIML, ganz ohne eine Zeile Code.
Trace nimmt den nackten Byte-Strom von der Leitung und liefert vollständig interpretierte Telegramme — mit Feldern, Enums, Prüfsummen und hierarchischen Beschreibungen. Live, persistiert und durchsuchbar.
Erfassen, dekodieren, durchsuchen, triggern, aufzeichnen — und über den Hub aus der Ferne. Alles in einer Oberfläche.
Felder, Verzweigungen, Prüfsummen und Enums in XML — die Engine wertet sie zur Laufzeit aus und tauscht laufende Ports per Hot-Swap.
Lock-free SPSC-Ring-Buffer im Hot Path. Jedes Byte bekommt einen atomaren Millisekunden-Zeitstempel — exakte Delta- und Dauerberechnung ohne Sekundengrenzen-Fehler.
Volltextsuche über alle Telegramme mit O(log n)-Navigation, kombinierbaren Port-Filtern und Live-Treffern — direkt im laufenden Stream.
Deklarative Predicates oder NLua-Skripte werten jeden Frame aus — mit eigener Hit-Liste pro Trigger.
Jede Aufnahme liegt komplett in einer .msf-Datei — inklusive fertiger Interpretation. Kein Interpreter nötig zum Öffnen.
Sicherer Zugriff auf Probes und Nodes hinter NAT/Firewall — Ed25519-signiert, ohne eingehende Portfreigabe, mit Live-Dashboard.
Eine vollständige TrIML-Definition — und der Frame, den die Engine daraus zur Laufzeit erzeugt. Risikofrei testbar über POST /api/interpreters/dryrun.
<?xml version="1.0" encoding="utf-8"?> <Trace-Interpreter-Definition> <interpreter name="My-Interpreter" type="FrameOriented" /> <definition> <!-- Wertetabelle (Enum) --> <valuedescriptor type="byte" name="type-desc"> <descriptor value="0x01" label="Status" /> <descriptor value="0x02" label="Command" /> </valuedescriptor> <!-- Das Telegramm --> <message> <const type="byte" value="0x02" name="STX" /> <byte name="Type" valuedescriptor="type-desc" /> <byte name="Length" /> <array sizeRef="Length" name="Payload" /> <const type="byte" value="0x03" name="ETX" /> <match label="Frame" /> </message> </definition> </Trace-Interpreter-Definition>
Native C99-Capture-Engine, .NET-10-Server mit Interpretern, Echtzeit-Push per SignalR — bis in die WASM-Oberfläche.
Physische Interfaces liefern den rohen Byte-Strom.
Plugins, SPSC-Pipes, Zeitstempel, FileWriter → .bin.
32 Interpreter, 6 Controller, SignalR-Hub, Sessions.
WASM-Oberfläche auf Canvas, CLI und Desktop-App.
Gemessen wird dort, wo die Leitung liegt. Gerechnet wird dort, wo die Maschine steht. Verwaltet wird alles an einer Stelle: Probes an den Messorten liefern Bytes, Nodes betreiben die Worker, und der Hub hält als übergeordnete Ebene beide Seiten zusammen.
Die Probe wählt den Hub an, nie umgekehrt. Bytes und Steuerung laufen über dieselbe ausgehende Verbindung — hinter NAT und Firewall bleibt damit jeder Port zu.
Auch der Node baut den Tunnel nach außen auf. Der Hub nutzt ihn in Gegenrichtung: er startet dort je Session einen Worker und reicht die Bytes durch.
Die Oberfläche spricht nie direkt mit einem Worker. Jeder Aufruf geht über die Proxy-Pfade des Hubs, der Besitz und Session-Token prüft.
Ein eigenständiger Prozess direkt an der Hardware. Er hält die native Capture-Engine am Leben, gibt jedem Byte lückenlos Index und Zeitstempel und schiebt den Strom nach außen. Mehrere Probes an verschiedenen Orten können gleichzeitig in eine Session liefern — die Zeitbasis dafür kommt vom Hub.
Ein Node ist die Maschine, auf der die Worker laufen — je Session ein eigener Prozess, der Frames erkennt, sie in die Session-Datei schreibt und ausliefert. Bei Bring Your Own Node gehört diese Maschine dem Kunden: Rechenlast und Aufnahme bleiben im Haus, und geöffnet wird dafür kein einziger eingehender Port.
Die Ebene über allem: Konten und Mandanten, das Pairing von Probes und Nodes, Start und Ende jeder Session, das Routing vom Browser in genau den richtigen Worker. Trace-Daten verarbeitet er dabei selbst nicht — er vermittelt sie nur. Und er ist der einzige Zeitgeber, damit Zeitstempel über alle Messorte hinweg vergleichbar bleiben.
Die TrIML-Referenz führt vom ersten Telegramm bis zur vollständigen Element-Referenz — mit Mustern, Beispielen und Live-Test.