Trace erfasst serielle Byte-Streams in Echtzeit und macht sie als strukturierte Telegramme sichtbar — RS232, RS485, USB-Serial, CAN. Eigene Protokolle beschreibst du rein deklarativ in TrIML, ganz ohne eine Zeile Code.
Ein Klick, ohne Registrierung: Starte mit Demo-Daten oder deinem eigenen USB-Adapter (Chrome/Edge) – ohne Installation. Der Gastzugang gilt zwei Stunden. Was dabei gespeichert wird
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.
Vier kurze Clips der TraceUI bei der Arbeit: Eine Drohnenflotte sendet MAVLink-Telemetrie, Trace dekodiert jeden Frame beim Eintreffen — und den entscheidenden zu finden, kostet einen Tastendruck.
Im Browser aufgenommen, gegen einen laufenden Trace-Server. Die Drohnen-Telemetrie wird im öffentlichen MAVLink-Protokoll simuliert und vom MAVLink-Interpreter aus der Protokoll-Bibliothek dekodiert.
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; jede neue Version steht in der nächsten Session bereit.
Lock-free SPSC-Ring-Buffer im Hot Path. Jedes Byte bekommt einen Millisekunden-Zeitstempel aus einem einzigen atomaren Aufruf — ohne Sekundengrenzen-Fehler.
Volltextsuche über alle Telegramme mit O(log n)-Navigation, kombinierbaren Port-Filtern und Live-Treffern — direkt im laufenden Stream.
Deklarative Predicates 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, Puffer-Dateien je Port.
TrIML-Engine, 14 REST-Controller, SignalR-Hub, Sessions.
WASM-Oberfläche auf Canvas im Browser, ausgeliefert vom Hub.
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. Beide Verbindungen, Steuerung und Bytes, gehen nach außen — 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.