Stream monitor

Stream monitoring: multi-tab data/image/command/message monitoring and single-stream panels.

Overview

quatm/GUI/streammonitor/ provides the stream monitor: MainWindow uses tabs to hold monitors for data streams (Data), image streams (Image), commands (Command), message logs (Message) and history (History), among others; each monitor tab is a StreamMonitor that subscribes to a single data stream and displays it in real time.

Components

ComponentDescription
MainWindowMonitoring main window: multi-tab container + menu
StreamMonitorSingle-stream monitoring panel: subscribes to one data stream and displays it in real time
MessageTableModelMessage log table model (timestamp/source/level/content, colored by level)
ImageTableModelImage stream metadata table (fixed time/source columns + dynamic key columns)
AutoSortProxyModelAuto-sorting proxy model ordered by descending timestamp

Monitoring types

TabContent
DataReal-time curves/tables of numeric data streams
ImageScientific image streams and their metadata
CommandCommand / instruction streams
MessageMessage log (timestamp/source/level/content)
HistoryHistorical records

Usage

from quatm.GUI.streammonitor import MainWindow, StreamMonitor

win = MainWindow(parent=parent)   # multi-tab monitoring main window
panel = StreamMonitor(name="PMT", stream_type="Data", parent=parent)  # single-stream panel

This monitoring interface is normally started as a standalone process; the single-stream StreamMonitor panel can also be embedded in other windows.