From 9c37a13d006ada09a4d27539a40070530ae99faf Mon Sep 17 00:00:00 2001 From: Paul Beuchat <beuchatp@control.ee.ethz.ch> Date: Sat, 8 Sep 2018 15:54:00 +0200 Subject: [PATCH] Added a mutex to the RF status label, and adjust the clearing and updating of the bettery status label, seems to be working without too many freezes... will always require more testing --- .../GUI_Qt/studentGUI/include/MainWindow.h | 1 + .../GUI_Qt/studentGUI/src/MainWindow.cpp | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/include/MainWindow.h b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/include/MainWindow.h index 896286d8..28b9dbb6 100644 --- a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/include/MainWindow.h +++ b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/include/MainWindow.h @@ -223,6 +223,7 @@ private: QMutex m_flying_state_mutex; QMutex voltage_field_mutex; QMutex battery_status_label_mutex; + QMutex rf_status_label_mutex; int m_battery_state; // BATTERY EMPTY VOLTAGES (THESE SHOULD BE READ IN AS PARAMTERS) //const std::vector<float> m_cutoff_voltages {3.1966, 3.2711, 3.3061, 3.3229, 3.3423, 3.3592, 3.3694, 3.385, 3.4006, 3.4044, 3.4228, 3.4228, 3.4301, 3.4445, 3.4531, 3.4677, 3.4705, 3.4712, 3.4756, 3.483, 3.4944, 3.5008, 3.5008, 3.5084, 3.511, 3.5122, 3.5243, 3.5329, 3.5412, 3.5529, 3.5609, 3.5625, 3.5638, 3.5848, 3.6016, 3.6089, 3.6223, 3.628, 3.6299, 3.6436, 3.6649, 3.6878, 3.6983, 3.7171, 3.7231, 3.7464, 3.7664, 3.7938, 3.8008, 3.816, 3.8313, 3.8482, 3.866, 3.8857, 3.8984, 3.9159, 3.9302, 3.9691, 3.997, 4.14 }; diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp index c1d91b1c..11f30d9e 100644 --- a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp +++ b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp @@ -481,11 +481,13 @@ void MainWindow::setCrazyRadioStatus(int radio_status) case CONNECTED: { // SET THE APPROPRIATE IMAGE FOR THE RADIOSTATUS LABEL - ui->rf_status_label->clear(); + rf_status_label_mutex.lock(); + //ui->rf_status_label->clear(); QPixmap rf_connected_pixmap(":/images/rf_connected.png"); ui->rf_status_label->setPixmap(rf_connected_pixmap); ui->rf_status_label->setScaledContents(true); - ui->rf_status_label->update(); + //ui->rf_status_label->update(); + rf_status_label_mutex.unlock(); // ENABLE THE REMAINDER OF THE GUI enableGUI(); break; @@ -494,22 +496,26 @@ void MainWindow::setCrazyRadioStatus(int radio_status) case CONNECTING: { // SET THE APPROPRIATE IMAGE FOR THE RADIO STATUS LABEL - ui->rf_status_label->clear(); + rf_status_label_mutex.lock(); + //ui->rf_status_label->clear(); QPixmap rf_connecting_pixmap(":/images/rf_connecting.png"); ui->rf_status_label->setPixmap(rf_connecting_pixmap); ui->rf_status_label->setScaledContents(true); - ui->rf_status_label->update(); + //ui->rf_status_label->update(); + rf_status_label_mutex.unlock(); break; } case DISCONNECTED: { // SET THE APPROPRIATE IMAGE FOR THE RADIO STATUS LABEL - ui->rf_status_label->clear(); + rf_status_label_mutex.lock(); + //ui->rf_status_label->clear(); QPixmap rf_disconnected_pixmap(":/images/rf_disconnected.png"); ui->rf_status_label->setPixmap(rf_disconnected_pixmap); ui->rf_status_label->setScaledContents(true); - ui->rf_status_label->update(); + //ui->rf_status_label->update(); + rf_status_label_mutex.unlock(); // SET THE BATTERY VOLTAGE FIELD TO BE BLANK QString qstr = "-.-- V"; voltage_field_mutex.lock(); -- GitLab