Cabana: display dash instead of zero if no data (#26686)

display dash instead of zero if no data
old-commit-hash: 4d74e44ae1
taco
Dean Lee 2 years ago committed by GitHub
parent c5abe3f139
commit ae59b2075a
  1. 16
      tools/cabana/binaryview.cc

@ -181,15 +181,14 @@ void BinaryViewModel::updateState() {
auto prev_items = items;
const auto &binary = can->lastMessage(msg_id).dat;
// data size may changed.
if (!dbc_msg && binary.size() != row_count) {
beginResetModel();
if (binary.size() > row_count) {
beginInsertRows({}, row_count, binary.size() - 1);
row_count = binary.size();
items.clear();
items.resize(row_count * column_count);
endResetModel();
endInsertRows();
}
char hex[3] = {'\0'};
for (int i = 0; i < std::min(binary.size(), row_count); ++i) {
for (int i = 0; i < binary.size(); ++i) {
for (int j = 0; j < column_count - 1; ++j) {
items[i * column_count + j].val = ((binary[i] >> (7 - j)) & 1) != 0 ? '1' : '0';
}
@ -197,8 +196,13 @@ void BinaryViewModel::updateState() {
hex[1] = toHex(binary[i] & 0xf);
items[i * column_count + 8].val = hex;
}
for (int i = binary.size(); i < row_count; ++i) {
for (int j = 0; j < column_count; ++j) {
items[i * column_count + j].val = "-";
}
}
for (int i = 0; i < items.size(); ++i) {
for (int i = 0; i < row_count; ++i) {
if (i >= prev_items.size() || prev_items[i].val != items[i].val) {
auto idx = index(i / column_count, i % column_count);
emit dataChanged(idx, idx);

Loading…
Cancel
Save