ulog_parameters_dialog.cpp
Go to the documentation of this file.
2 #include "ui_ulog_parameters_dialog.h"
3 
4 #include <QTableWidget>
5 #include <QSettings>
6 #include <QHeaderView>
7 
9  : QDialog(parent), ui(new Ui::ULogParametersDialog)
10 {
11  ui->setupUi(this);
12  QTableWidget* table_info = ui->tableWidgetInfo;
13  QTableWidget* table_params = ui->tableWidgetParams;
14  QTableWidget* table_logs = ui->tableWidgetLogs;
15 
16  table_info->setRowCount(parser.getInfo().size());
17  int row = 0;
18  for (const auto& it : parser.getInfo())
19  {
20  table_info->setItem(row, 0, new QTableWidgetItem(QString::fromStdString(it.first)));
21  table_info->setItem(row, 1, new QTableWidgetItem(QString::fromStdString(it.second)));
22  row++;
23  }
24  table_info->sortItems(0);
25 
26  table_params->setRowCount(parser.getParameters().size());
27  row = 0;
28  for (const auto& param : parser.getParameters())
29  {
30  table_params->setItem(row, 0,
31  new QTableWidgetItem(QString::fromStdString(param.name)));
32  if (param.val_type == ULogParser::FLOAT)
33  {
34  table_params->setItem(row, 1,
35  new QTableWidgetItem(QString::number(param.value.val_real)));
36  }
37  else
38  {
39  table_params->setItem(row, 1,
40  new QTableWidgetItem(QString::number(param.value.val_int)));
41  }
42  row++;
43  }
44  table_params->sortItems(0);
45 
46  table_logs->setRowCount(parser.getLogs().size());
47  row = 0;
48  for (const auto& log_msg : parser.getLogs())
49  {
50  QString time = QString::number(0.001 * double(log_msg.timestamp / 1000), 'f', 2);
51  table_logs->setItem(row, 0, new QTableWidgetItem(time));
52 
53  switch (log_msg.level)
54  {
55  case '0':
56  table_logs->setItem(row, 1, new QTableWidgetItem("EMERGENCY"));
57  break;
58  case '1':
59  table_logs->setItem(row, 1, new QTableWidgetItem("ALERT"));
60  break;
61  case '2':
62  table_logs->setItem(row, 1, new QTableWidgetItem("CRITICAL"));
63  break;
64  case '3':
65  table_logs->setItem(row, 1, new QTableWidgetItem("ERROR"));
66  break;
67  case '4':
68  table_logs->setItem(row, 1, new QTableWidgetItem("WARNING"));
69  break;
70  case '5':
71  table_logs->setItem(row, 1, new QTableWidgetItem("NOTICE"));
72  break;
73  case '6':
74  table_logs->setItem(row, 1, new QTableWidgetItem("INFO"));
75  break;
76  case '7':
77  table_logs->setItem(row, 1, new QTableWidgetItem("DEBUG"));
78  break;
79  default:
80  table_logs->setItem(row, 1, new QTableWidgetItem(QString::number(log_msg.level)));
81  }
82  table_logs->setItem(row, 2,
83  new QTableWidgetItem(QString::fromStdString(log_msg.msg)));
84  row++;
85  }
86 }
87 
89 {
90  QTableWidget* table_info = ui->tableWidgetInfo;
91  QTableWidget* table_params = ui->tableWidgetParams;
92 
93  QSettings settings;
94  restoreGeometry(settings.value("ULogParametersDialog/geometry").toByteArray());
95  table_info->horizontalHeader()->restoreState(
96  settings.value("ULogParametersDialog/info/state").toByteArray());
97  table_params->horizontalHeader()->restoreState(
98  settings.value("ULogParametersDialog/params/state").toByteArray());
99 
100  table_info->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Interactive);
101  table_info->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Interactive);
102 
103  table_params->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Interactive);
104  table_params->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Interactive);
105 }
106 
108 {
109  QTableWidget* table_info = ui->tableWidgetInfo;
110  QTableWidget* table_params = ui->tableWidgetParams;
111 
112  QSettings settings;
113  settings.setValue("ULogParametersDialog/geometry", this->saveGeometry());
114  settings.setValue("ULogParametersDialog/info/state",
115  table_info->horizontalHeader()->saveState());
116  settings.setValue("ULogParametersDialog/params/state",
117  table_params->horizontalHeader()->saveState());
118 
119  delete ui;
120 }
bool param(const std::string &param_name, T &param_val, const T &default_val)
const std::map< std::string, std::string > & getInfo() const
const std::vector< Parameter > & getParameters() const
ULogParametersDialog(const ULogParser &parser, QWidget *parent=nullptr)
const std::vector< MessageLog > & getLogs() const
float time
Definition: mqtt_test.py:17
Ui::ULogParametersDialog * ui


plotjuggler
Author(s): Davide Faconti
autogenerated on Mon Jun 19 2023 03:12:53