OpenTraceView Architecture¶
Technical overview of OpenTraceView's architecture and design.
Architecture¶
graph TD
OV[OpenTraceView<br/>GUI Qt6 no Boost] --> OC
OC[OpenTraceCapture<br/>Core Library] --> USB[libusb]
OC --> SER[libserialport]
OC --> NET[TCP IP Sockets]
OV --> OD
CLI[OpenTraceCLI<br/>Command Line] --> OC
CLI --> OD
OD[OpenTraceDecode<br/>Decoder Library Python runtime]
subgraph Decoders
PD1[Protocol Decoders<br/>Python modules]
PD2[Utility Shared Blocks]
end
OD --> PD1
OD --> PD2
USB --> DAQ[Logic Analyzers<br/>Function Generators]
SER --> DMM[Multimeters<br/>Power Supplies]
NET --> OSC[Oscilloscopes<br/>LCR SCPI Instruments]
OC -. samples frames .-> OV
OC -. samples frames .-> CLI
OV -. decoded buses fields .-> OD
CLI -. decoded streams .-> OD
subgraph Build And Runtime
Q6[Qt6 Widgets QPA QML]
MES[Meson And Ninja]
PY[Embedded Python]
NOBOOST[No Boost]
end
OV --- Q6
OV --- MES
OD --- PY
OC --- MES
NOBOOST --- OV
style OC fill:#4f46e5,stroke:#312e81,stroke-width:3px,color:#fff
style OD fill:#0ea5e9,stroke:#075985,stroke-width:2px,color:#fff
style OV fill:#f8fafc,stroke:#4f46e5,color:#1e293b
style CLI fill:#f8fafc,stroke:#4f46e5,color:#1e293b
style USB fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e
style SER fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e
style NET fill:#e0f2fe,stroke:#0284c7,color:#0c4a6e
style DAQ fill:#fef3c7,stroke:#b45309,color:#7c2d12
style DMM fill:#fef3c7,stroke:#b45309,color:#7c2d12
style OSC fill:#fef3c7,stroke:#b45309,color:#7c2d12
style PD1 fill:#dcfce7,stroke:#15803d,color:#064e3b
style PD2 fill:#dcfce7,stroke:#15803d,color:#064e3b
style Q6 fill:#e5e7eb,stroke:#6b7280,color:#111827
style MES fill:#e5e7eb,stroke:#6b7280,color:#111827
style PY fill:#e5e7eb,stroke:#6b7280,color:#111827
style NOBOOST fill:#fee2e2,stroke:#b91c1c,color:#7f1d1d
Coming Soon¶
This architecture guide is under development. It will cover: - Application structure and components - Signal rendering pipeline - Decoder integration - Plugin architecture For now, see the overview for general OpenTraceView information.