Cabana: warn when DBC message length is wrong (#26154)

display warning if message size is incorrect
old-commit-hash: a927d7b0ea
taco
Dean Lee 3 years ago committed by GitHub
parent fc4d06777c
commit c62b6478a0
  1. 16
      tools/cabana/detailwidget.cc
  2. 3
      tools/cabana/detailwidget.h

@ -29,6 +29,17 @@ DetailWidget::DetailWidget(QWidget *parent) : QWidget(parent) {
title_layout->addWidget(edit_btn); title_layout->addWidget(edit_btn);
main_layout->addLayout(title_layout); main_layout->addLayout(title_layout);
// warning
warning_widget = new QWidget(this);
QHBoxLayout *warning_hlayout = new QHBoxLayout(warning_widget);
QLabel *warning_icon = new QLabel(this);
warning_icon->setPixmap(style()->standardIcon(QStyle::SP_MessageBoxWarning).pixmap({16, 16}));
warning_hlayout->addWidget(warning_icon);
warning_label = new QLabel(this);
warning_hlayout->addWidget(warning_label,1, Qt::AlignLeft);
warning_widget->hide();
main_layout->addWidget(warning_widget);
// binary view // binary view
binary_view = new BinaryView(this); binary_view = new BinaryView(this);
main_layout->addWidget(binary_view, 0, Qt::AlignTop); main_layout->addWidget(binary_view, 0, Qt::AlignTop);
@ -64,6 +75,7 @@ void DetailWidget::setMessage(const QString &message_id) {
void DetailWidget::dbcMsgChanged() { void DetailWidget::dbcMsgChanged() {
if (msg_id.isEmpty()) return; if (msg_id.isEmpty()) return;
warning_widget->hide();
qDeleteAll(signals_container->findChildren<SignalEdit *>()); qDeleteAll(signals_container->findChildren<SignalEdit *>());
QString msg_name = tr("untitled"); QString msg_name = tr("untitled");
if (auto msg = dbc()->msg(msg_id)) { if (auto msg = dbc()->msg(msg_id)) {
@ -76,6 +88,10 @@ void DetailWidget::dbcMsgChanged() {
QObject::connect(form, &SignalEdit::save, this, &DetailWidget::saveSignal); QObject::connect(form, &SignalEdit::save, this, &DetailWidget::saveSignal);
} }
msg_name = msg->name.c_str(); msg_name = msg->name.c_str();
if (msg->size != can->lastMessage(msg_id).dat.size()) {
warning_label->setText(tr("Message size (%1) is incorrect!").arg(msg->size));
warning_widget->show();
}
} }
edit_btn->setVisible(true); edit_btn->setVisible(true);
name_label->setText(msg_name); name_label->setText(msg_name);

@ -46,7 +46,8 @@ private:
void updateState(); void updateState();
QString msg_id; QString msg_id;
QLabel *name_label, *time_label; QLabel *name_label, *time_label, *warning_label;
QWidget *warning_widget;
QPushButton *edit_btn; QPushButton *edit_btn;
QWidget *signals_container; QWidget *signals_container;
HistoryLog *history_log; HistoryLog *history_log;

Loading…
Cancel
Save