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

Loading…
Cancel
Save