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/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/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/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 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)