RumPi Linux Client 1.0
A wxWidgets desktop dashboard that visualizes a RumPi robot's live sensor data as a condition-reactive scene
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 12]
 CClientConfigLoads the user-editable client settings from an INI file (via wxFileConfig) once at startup and exposes them as typed getters with sensible defaults
 CClientUtilitiesCollects small, general-purpose helpers shared across the client UI
 CComponentDataView-model for a single component tile on the dashboard: its icon, type, name, current data string, and enabled state
 CLoggerEventForwarderBridges the library's AlertManager to the wxWidgets event system: it subscribes to the AlertManager once and forwards every alert to the given wxEvtHandler as a wxEVT_RUMPI_LOGGER_UPDATE carrying a ready-to-display LoggerLineData
 CLoggerLineDataOne line of the on-screen log: a timestamp, an alert level, and an event description
 CResourceManagerProvides the client's UI images: the per-component icons (decoded once from embedded PNG data and cached) and the alert-level glyphs from the platform's art provider
 CwxApp
 CRumPiLinuxClientThe wxWidgets application entry point for the RumPi Linux client; creates and shows the main window on startup
 CwxDataViewVirtualListModel
 CLoggerListDataA virtual list model backing the on-screen log's data-view control, holding the log lines and colouring rows by severity
 CwxFrame
 CMainWindowThe client's main window: a tabbed frame (Home scene, Summary tiles, Devices, Logger, Settings) that starts the background poll thread and the alert forwarder, and refreshes its tabs from the events they post
 CwxPanel
 CComponentPanelA dashboard tile for a single component: shows its icon, name, enabled status, and current data, auto-sizing the data field to fit its text
 CHomeScenePanelThe Home tab's stylized, condition-reactive backdrop
 CwxThread
 CRumPiManagerThreadBackground wxThread that runs the RumPi library's sensor loop and posts refreshed component data (and the curated dashboard snapshot) to the UI thread via wxEVT_RUMPI_UPDATE events