From af8510682900d3a0a15de21785d1ff89cda11d25 Mon Sep 17 00:00:00 2001 From: Keith Kyzivat Date: Tue, 31 May 2022 20:03:18 -0700 Subject: [PATCH 1/2] Remove use of MetricsMonitor in the app MetricsMonitor is never enabled, and is just there causing QML warning messages for no reason. The warnings could be fixed, but there is no way to test them at present, so, for now, just disable use of it in the app. Leave the MetricsMonitor.qml present, but don't package it with the app (leave it out of console_resources.qrc). When it is to be re-enabled, then it can be fixed up and re-tested. --- .../AdvancedTabComponents/AdvancedSystemMonitorTab.qml | 2 -- .../AdvancedSystemMonitorTabLeftPane.qml | 8 -------- resources/console_resources.qrc | 1 - 3 files changed, 11 deletions(-) diff --git a/resources/AdvancedTabComponents/AdvancedSystemMonitorTab.qml b/resources/AdvancedTabComponents/AdvancedSystemMonitorTab.qml index d4fdac3a2..2f664a23c 100644 --- a/resources/AdvancedTabComponents/AdvancedSystemMonitorTab.qml +++ b/resources/AdvancedTabComponents/AdvancedSystemMonitorTab.qml @@ -55,8 +55,6 @@ Item { leftPane.observationConnectionMonitor.obsLatency[advancedSystemMonitorData.obs_latency[2][0]] = advancedSystemMonitorData.obs_latency[2][1]; leftPane.observationConnectionMonitor.obsLatency[advancedSystemMonitorData.obs_latency[3][0]] = advancedSystemMonitorData.obs_latency[3][1]; leftPane.observationConnectionMonitor.obsLatency[advancedSystemMonitorData.obs_latency[3][0]] = advancedSystemMonitorData.obs_latency[3][1]; - leftPane.metricsMonitor.entries = advancedSystemMonitorData.csac_telem_list; - leftPane.metricsMonitor.csacReceived = advancedSystemMonitorData.csac_received; leftPane.deviceMonitor.zynqTemp = advancedSystemMonitorData.zynq_temp; leftPane.deviceMonitor.feTemp = advancedSystemMonitorData.fe_temp; } diff --git a/resources/AdvancedTabComponents/AdvancedSystemMonitorTabLeftPane.qml b/resources/AdvancedTabComponents/AdvancedSystemMonitorTabLeftPane.qml index c00a8bec6..afc246f83 100644 --- a/resources/AdvancedTabComponents/AdvancedSystemMonitorTabLeftPane.qml +++ b/resources/AdvancedTabComponents/AdvancedSystemMonitorTabLeftPane.qml @@ -9,7 +9,6 @@ import SwiftConsole 1.0 Item { property alias observationConnectionMonitor: observationConnectionMonitor property alias deviceMonitor: deviceMonitorAndResetDevice.deviceMonitor - property alias metricsMonitor: metricsMonitor ColumnLayout { id: gridLayout @@ -30,13 +29,6 @@ Item { Layout.fillHeight: true } - MetricsMonitor { - id: metricsMonitor - - visible: false - enabled: false - } - } } diff --git a/resources/console_resources.qrc b/resources/console_resources.qrc index 4cf148dc6..fcdfbd091 100644 --- a/resources/console_resources.qrc +++ b/resources/console_resources.qrc @@ -29,7 +29,6 @@ AdvancedTabComponents/ThreadStateTable.qml AdvancedTabComponents/DeviceMonitor.qml AdvancedTabComponents/DeviceMonitorAndResetDevice.qml - AdvancedTabComponents/MetricsMonitor.qml AdvancedTabComponents/ObservationConnectionMonitor.qml AdvancedTabComponents/AdvancedImuTab.qml AdvancedTabComponents/AdvancedNetworkingTab.qml From cf06355c8890b7eb13cc2e7aebb2d8001a27aa49 Mon Sep 17 00:00:00 2001 From: John Michael Burke Date: Wed, 22 Jun 2022 13:17:22 -0700 Subject: [PATCH 2/2] Remove all references to csac telemetry. --- .../src/advanced_system_monitor_tab.rs | 113 -------------- console_backend/src/common_constants.rs | 4 - console_backend/src/process_messages.rs | 17 +- .../AdvancedTabComponents/MetricsMonitor.qml | 145 ------------------ src/main/resources/base/console_backend.capnp | 2 - .../advanced_system_monitor_tab.py | 26 ---- swiftnav_console/constants.py | 2 - swiftnav_console/main.py | 4 - 8 files changed, 1 insertion(+), 312 deletions(-) delete mode 100644 resources/AdvancedTabComponents/MetricsMonitor.qml diff --git a/console_backend/src/advanced_system_monitor_tab.rs b/console_backend/src/advanced_system_monitor_tab.rs index 47a2621f3..1906af905 100644 --- a/console_backend/src/advanced_system_monitor_tab.rs +++ b/console_backend/src/advanced_system_monitor_tab.rs @@ -1,7 +1,6 @@ use capnp::message::Builder; use ordered_float::OrderedFloat; use sbp::messages::piksi::{MsgDeviceMonitor, MsgThreadState}; -use sbp::messages::system::{MsgCsacTelemetry, MsgCsacTelemetryLabels}; use std::collections::HashMap; use crate::client_sender::BoxedClientSender; @@ -9,7 +8,6 @@ use crate::types::UartState; use crate::utils::{cc_to_c, normalize_cpu_usage, serialize_capnproto_builder}; const NO_NAME: &str = "(no name)"; -const METRICS_OF_INTEREST: &[&str] = &["Status", "Alarm", "Mode", "Phase", "DiscOK"]; const CURR: &str = "Curr"; const AVG: &str = "Avg"; const MIN: &str = "Min"; @@ -27,25 +25,17 @@ struct ThreadStateFields { /// # Fields: /// /// - `client_send`: Client Sender channel for communication from backend to frontend. -/// - `csac_received`: CsacTelemetry received flag. -/// - `csac_telem_list`: Vec of CsacTelemetry metrics and corresponding values. /// - `fe_temp`: RF frontend temperature reading. -/// - `headers`: Vec of CsacTelemetry metric labels. /// - `obs_latency`: UART state latency measurements. /// - `obs_period`: UART state period measurements. -/// - `telem_header_index`: Index of current CsacTelemetry label packet. /// - `threads`: Vec of, ThreadStateFields, running threads on device containing cpu and memory metric values. /// - `threads_table_list`: Vec of ThreadStateFields, sent to frontend after heartbeat received. /// - `zynq_temp`: Zynq SoC temperature reading. pub struct AdvancedSystemMonitorTab { client_sender: BoxedClientSender, - csac_received: bool, - csac_telem_list: Vec<(String, String)>, fe_temp: f64, - headers: Vec, obs_latency: HashMap, obs_period: HashMap, - telem_header_index: Option, threads: Vec, threads_table_list: Vec, zynq_temp: f64, @@ -54,10 +44,7 @@ impl AdvancedSystemMonitorTab { pub fn new(client_sender: BoxedClientSender) -> AdvancedSystemMonitorTab { AdvancedSystemMonitorTab { client_sender, - csac_received: false, - csac_telem_list: vec![], fe_temp: 0.0, - headers: vec![], obs_latency: { UART_STATE_KEYS .iter() @@ -70,7 +57,6 @@ impl AdvancedSystemMonitorTab { .map(|key| (String::from(*key), 0)) .collect() }, - telem_header_index: None, threads: vec![], threads_table_list: vec![], zynq_temp: 0.0, @@ -109,41 +95,6 @@ impl AdvancedSystemMonitorTab { self.fe_temp = cc_to_c(msg.fe_temperature); } - pub fn handle_csac_telemetry_labels(&mut self, msg: MsgCsacTelemetryLabels) { - self.headers = msg - .telemetry_labels - .to_string() - .split(',') - .map(|s| s.to_string()) - .collect(); - self.telem_header_index = Some(msg.id); - } - - pub fn handle_csac_telemetry(&mut self, msg: MsgCsacTelemetry) { - self.csac_telem_list.clear(); - if let Some(header_index) = self.telem_header_index { - if msg.id == header_index { - self.csac_received = true; - let telems: Vec = msg - .telemetry - .to_string() - .split(',') - .map(|s| s.to_string()) - .collect(); - self.headers - .clone() - .iter() - .enumerate() - .for_each(|(i, header)| { - if METRICS_OF_INTEREST.contains(&(header.clone().as_str())) { - self.csac_telem_list - .push((header.clone(), telems[i].clone())); - } - }); - } - } - } - pub fn handle_uart_state(&mut self, msg: UartState) { let uart_fields = msg.fields(); self.obs_latency @@ -198,19 +149,8 @@ impl AdvancedSystemMonitorTab { entry.set_stack_free(val.stack_free); } } - let mut csac_telem_entries = status - .reborrow() - .init_csac_telem_list(self.csac_telem_list.len() as u32); - { - for (i, (key, val)) in self.csac_telem_list.iter().enumerate() { - let mut entry = csac_telem_entries.reborrow().get(i as u32); - entry.set_key(key); - entry.set_val(val); - } - } status.set_zynq_temp(self.zynq_temp); status.set_fe_temp(self.fe_temp); - status.set_csac_received(self.csac_received); self.client_sender .send_data(serialize_capnproto_builder(builder)); } @@ -304,59 +244,6 @@ mod tests { assert_eq!(*tab.obs_period.get(&MAX.to_string()).unwrap(), pmax); } - #[test] - fn handle_csac_telemetry_test() { - let client_send = TestSender::boxed(); - let mut tab = AdvancedSystemMonitorTab::new(client_send); - let id = 13; - let headers: Vec = METRICS_OF_INTEREST.iter().map(|s| s.to_string()).collect(); - tab.headers = headers.clone(); - let telemetry_pre: Vec = "4,3,2,1,0".split(',').map(|s| s.to_string()).collect(); - let telemetry = SbpString::from(telemetry_pre.join(",")); - let csac_telem = MsgCsacTelemetry { - sender_id: Some(1337), - id, - telemetry, - }; - tab.handle_csac_telemetry(csac_telem.clone()); - assert!(tab.csac_telem_list.is_empty()); - let bad_id = 31; - tab.telem_header_index = Some(bad_id); - assert!(!tab.csac_received); - tab.handle_csac_telemetry(csac_telem.clone()); - assert!(tab.csac_telem_list.is_empty()); - tab.telem_header_index = Some(id); - assert!(!tab.csac_received); - tab.handle_csac_telemetry(csac_telem); - assert!(!tab.csac_telem_list.is_empty()); - assert!(tab.csac_received); - let telem_table_list: Vec<(String, String)> = headers - .iter() - .zip(telemetry_pre) - .map(|(h, t)| (h.clone(), t)) - .collect(); - assert_eq!(tab.csac_telem_list, telem_table_list); - } - #[test] - fn handle_csac_telemetry_labels_test() { - let client_send = TestSender::boxed(); - let mut tab = AdvancedSystemMonitorTab::new(client_send); - let id = 13; - let headers_pre: Vec = "mcdonald,had,a,farm" - .split(',') - .map(|s| s.to_string()) - .collect(); - let telemetry_labels = SbpString::from(headers_pre.join(",")); - let csac_telem_labels = MsgCsacTelemetryLabels { - sender_id: Some(1337), - id, - telemetry_labels, - }; - assert!(tab.telem_header_index.is_none()); - tab.handle_csac_telemetry_labels(csac_telem_labels); - assert_eq!(tab.telem_header_index, Some(id)); - assert_eq!(tab.headers, headers_pre); - } #[test] fn handle_device_monitor_test() { let client_send = TestSender::boxed(); diff --git a/console_backend/src/common_constants.rs b/console_backend/src/common_constants.rs index 4e451f8d5..5e8337cc0 100644 --- a/console_backend/src/common_constants.rs +++ b/console_backend/src/common_constants.rs @@ -257,14 +257,10 @@ pub enum Keys { OBS_LATENCY, #[strum(serialize = "THREADS_TABLE")] THREADS_TABLE, - #[strum(serialize = "CSAC_TELEM_LIST")] - CSAC_TELEM_LIST, #[strum(serialize = "ZYNQ_TEMP")] ZYNQ_TEMP, #[strum(serialize = "FE_TEMP")] FE_TEMP, - #[strum(serialize = "CSAC_RECEIVED")] - CSAC_RECEIVED, #[strum(serialize = "RUNNING")] RUNNING, #[strum(serialize = "NETWORK_INFO")] diff --git a/console_backend/src/process_messages.rs b/console_backend/src/process_messages.rs index 7c234d029..8425063eb 100644 --- a/console_backend/src/process_messages.rs +++ b/console_backend/src/process_messages.rs @@ -11,10 +11,7 @@ use sbp::{ observation::{MsgObsDepA, MsgSvAzEl}, orientation::{MsgAngularRate, MsgBaselineHeading, MsgOrientEuler}, piksi::{MsgDeviceMonitor, MsgNetworkStateResp, MsgThreadState}, - system::{ - MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgHeartbeat, MsgInsStatus, MsgInsUpdates, - MsgStartup, - }, + system::{MsgHeartbeat, MsgInsStatus, MsgInsUpdates, MsgStartup}, tracking::{MsgMeasurementState, MsgTrackingState}, }, Sbp, SbpMessage, @@ -122,18 +119,6 @@ fn register_events(link: sbp::link::Link) { link.register(|tabs: &Tabs, msg: MsgBaselineHeading| { tabs.baseline.lock().unwrap().handle_baseline_heading(msg); }); - link.register(|tabs: &Tabs, msg: MsgCsacTelemetry| { - tabs.advanced_system_monitor - .lock() - .unwrap() - .handle_csac_telemetry(msg); - }); - link.register(|tabs: &Tabs, msg: MsgCsacTelemetryLabels| { - tabs.advanced_system_monitor - .lock() - .unwrap() - .handle_csac_telemetry_labels(msg); - }); link.register(|tabs: &Tabs, msg: MsgDeviceMonitor| { tabs.advanced_system_monitor .lock() diff --git a/resources/AdvancedTabComponents/MetricsMonitor.qml b/resources/AdvancedTabComponents/MetricsMonitor.qml deleted file mode 100644 index f8e3df1d2..000000000 --- a/resources/AdvancedTabComponents/MetricsMonitor.qml +++ /dev/null @@ -1,145 +0,0 @@ -import "../Constants" -import "../TableComponents" -import Qt.labs.qmlmodels 1.0 -import QtCharts 2.2 -import QtQuick 2.15 -import QtQuick.Controls 2.15 -import QtQuick.Layouts 1.15 -import SwiftConsole 1.0 - -Item { - property real mouse_x: 0 - property variant entries: [] - property bool csacReceived: false - - ColumnLayout { - anchors.fill: parent - anchors.margins: Constants.systemMonitor.obsTextMargins - visible: csacReceived - - Rectangle { - Layout.fillWidth: true - Layout.preferredHeight: Constants.systemMonitor.textHeight - - Label { - text: "Metrics" - } - - } - - Rectangle { - property variant columnWidths: [width / 2, width / 2] - - Layout.fillWidth: true - Layout.fillHeight: true - clip: true - - HorizontalHeaderView { - id: horizontalHeader - - interactive: false - syncView: tableView - z: Constants.genericTable.headerZOffset - - delegate: Rectangle { - implicitWidth: columnWidths[index] - implicitHeight: Constants.genericTable.cellHeight - border.color: Constants.genericTable.borderColor - - Label { - width: parent.width - anchors.centerIn: parent - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - text: tableView.model.columns[index].display - elide: Text.ElideRight - clip: true - font.family: Constants.genericTable.fontFamily - font.pixelSize: Constants.largePixelSize - } - - MouseArea { - width: Constants.genericTable.mouseAreaResizeWidth - height: parent.height - anchors.right: parent.right - cursorShape: Qt.SizeHorCursor - onPressed: { - mouse_x = mouseX; - } - onPositionChanged: { - if (pressed) { - let oldcols = columnWidths.slice(); - var delta_x = (mouseX - mouse_x); - columnWidths[index] += delta_x; - columnWidths[(index + 1) % 2] -= delta_x; - tableView.forceLayout(); - } - } - } - - gradient: Gradient { - GradientStop { - position: 0 - color: Constants.genericTable.cellColor - } - - GradientStop { - position: 1 - color: Constants.genericTable.gradientColor - } - - } - - } - - } - - SwiftTableView { - id: tableView - - anchors.top: horizontalHeader.bottom - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - columnWidths: parent.columnWidths - - model: TableModel { - id: tableModel - - rows: [Constants.systemMonitor.defaultMetricsList] - - TableModelColumn { - display: Constants.systemMonitor.metricColumnHeaders[0] - } - - TableModelColumn { - display: Constants.systemMonitor.metricColumnHeaders[1] - } - - } - - } - - Timer { - interval: Utils.hzToMilliseconds(Constants.staticTableTimerIntervalRate) - running: true - repeat: true - onTriggered: { - if (!advancedTab.visible) - return ; - - for (var idx in entries) { - var new_row = { - }; - new_row[Constants.systemMonitor.metricColumnHeaders[0]] = entries[idx][0]; - new_row[Constants.systemMonitor.metricColumnHeaders[1]] = entries[idx][1]; - tableView.model.setRow(idx, new_row); - } - } - } - - } - - } - -} diff --git a/src/main/resources/base/console_backend.capnp b/src/main/resources/base/console_backend.capnp index fef5df80d..733dc7f8b 100644 --- a/src/main/resources/base/console_backend.capnp +++ b/src/main/resources/base/console_backend.capnp @@ -251,8 +251,6 @@ struct AdvancedSystemMonitorStatus { threadsTable @2 :List(ThreadState); zynqTemp @3: Float64; feTemp @4: Float64; - csacTelemList @5: List(KeyValPair); - csacReceived @6: Bool; } struct NetworkState { diff --git a/swiftnav_console/advanced_system_monitor_tab.py b/swiftnav_console/advanced_system_monitor_tab.py index cffaab953..19c4491b9 100644 --- a/swiftnav_console/advanced_system_monitor_tab.py +++ b/swiftnav_console/advanced_system_monitor_tab.py @@ -13,10 +13,8 @@ def advanced_system_monitor_tab_update() -> Dict[str, Any]: Keys.OBS_PERIOD: [], Keys.OBS_LATENCY: [], Keys.THREADS_TABLE: [], - Keys.CSAC_TELEM_LIST: [], Keys.ZYNQ_TEMP: 0.0, Keys.FE_TEMP: 0.0, - Keys.CSAC_RECEIVED: False, } @@ -27,10 +25,8 @@ class AdvancedSystemMonitorData(QObject): # pylint: disable=too-many-instance-a _obs_period: List[List[Any]] = [] _obs_latency: List[List[Any]] = [] _threads_table: List[List[Any]] = [] - _csac_telem_list: List[List[str]] = [] _zynq_temp: float = 0.0 _fe_temp: float = 0.0 - _csac_received: bool = False _data_updated = Signal() advanced_system_monitor_tab: Dict[str, Any] = {} @@ -50,16 +46,6 @@ def post_data_update(cls, update_data: Dict[str, Any]) -> None: def handle_data_updated(self) -> None: self.advanced_system_monitor_tab = ADVANCED_SYSTEM_MONITOR_TAB[0] - def get_csac_telem_list(self) -> List[List[str]]: - """Getter for _csac_telem_list.""" - return self._csac_telem_list - - def set_csac_telem_list(self, csac_telem_list: List[List[str]]) -> None: - """Setter for _csac_telem_list.""" - self._csac_telem_list = csac_telem_list - - csac_telem_list = Property(QTKeys.QVARIANTLIST, get_csac_telem_list, set_csac_telem_list) # type: ignore - def get_threads_table(self) -> List[List[str]]: """Getter for _threads_table.""" return self._threads_table @@ -110,16 +96,6 @@ def set_fe_temp(self, fe_temp_: float) -> None: fe_temp = Property(float, get_fe_temp, set_fe_temp) - def get_csac_received(self) -> bool: - """Getter for _csac_received.""" - return self._csac_received - - def set_csac_received(self, csac_received_: bool) -> None: - """Setter for _csac_received.""" - self._csac_received = csac_received_ - - csac_received = Property(bool, get_csac_received, set_csac_received) - class AdvancedSystemMonitorModel(QObject): # pylint: disable=too-few-public-methods @Slot(AdvancedSystemMonitorData) # type: ignore @@ -129,8 +105,6 @@ def fill_console_points( # pylint:disable=no-self-use cp.set_obs_latency(cp.advanced_system_monitor_tab[Keys.OBS_LATENCY]) cp.set_obs_period(cp.advanced_system_monitor_tab[Keys.OBS_PERIOD]) cp.set_threads_table(cp.advanced_system_monitor_tab[Keys.THREADS_TABLE]) - cp.set_csac_telem_list(cp.advanced_system_monitor_tab[Keys.CSAC_TELEM_LIST]) cp.set_fe_temp(cp.advanced_system_monitor_tab[Keys.FE_TEMP]) cp.set_zynq_temp(cp.advanced_system_monitor_tab[Keys.ZYNQ_TEMP]) - cp.set_csac_received(cp.advanced_system_monitor_tab[Keys.CSAC_RECEIVED]) return cp diff --git a/swiftnav_console/constants.py b/swiftnav_console/constants.py index 037a240c0..353a6332c 100644 --- a/swiftnav_console/constants.py +++ b/swiftnav_console/constants.py @@ -121,10 +121,8 @@ class Keys(str, Enum): OBS_PERIOD = "OBS_PERIOD" OBS_LATENCY = "OBS_LATENCY" THREADS_TABLE = "THREADS_TABLE" - CSAC_TELEM_LIST = "CSAC_TELEM_LIST" ZYNQ_TEMP = "ZYNQ_TEMP" FE_TEMP = "FE_TEMP" - CSAC_RECEIVED = "CSAC_RECEIVED" RUNNING = "RUNNING" NETWORK_INFO = "NETWORK_INFO" IP_ADDRESS = "IP_ADDRESS" diff --git a/swiftnav_console/main.py b/swiftnav_console/main.py index 6eea8b6b9..6fecad431 100644 --- a/swiftnav_console/main.py +++ b/swiftnav_console/main.py @@ -406,10 +406,6 @@ def _process_message_buffer(self, buffer): [entry.name, "%.1f" % entry.cpu, entry.stackFree] for entry in m.advancedSystemMonitorStatus.threadsTable ] - data[Keys.CSAC_TELEM_LIST][:] = [ - [entry.key, entry.val] for entry in m.advancedSystemMonitorStatus.csacTelemList - ] - data[Keys.CSAC_RECEIVED] = m.advancedSystemMonitorStatus.csacReceived data[Keys.ZYNQ_TEMP] = m.advancedSystemMonitorStatus.zynqTemp data[Keys.FE_TEMP] = m.advancedSystemMonitorStatus.feTemp AdvancedSystemMonitorData.post_data_update(data)