Changed the CAN data grid to waste less space (more for the grid now),
tweaks to the main DBC view to show the start bit and length after all signals to make it easier to see the structure at a glance.
This commit is contained in:
+37
-26
@@ -96,8 +96,8 @@ void CANDataGrid::paintEvent(QPaintEvent *event)
|
|||||||
|
|
||||||
qDebug() << "XSpan" << xSpan << " YSpan " << ySpan;
|
qDebug() << "XSpan" << xSpan << " YSpan " << ySpan;
|
||||||
|
|
||||||
int xSector = xSpan / 10;
|
int xSector = xSpan / 9;
|
||||||
int ySector = ySpan / 10;
|
int ySector = ySpan / 9;
|
||||||
|
|
||||||
blackBrush = QBrush(Qt::black);
|
blackBrush = QBrush(Qt::black);
|
||||||
whiteBrush = QBrush(Qt::white);
|
whiteBrush = QBrush(Qt::white);
|
||||||
@@ -105,39 +105,50 @@ void CANDataGrid::paintEvent(QPaintEvent *event)
|
|||||||
greenBrush = QBrush(Qt::green);
|
greenBrush = QBrush(Qt::green);
|
||||||
grayBrush = QBrush(QColor(230,230,230));
|
grayBrush = QBrush(QColor(230,230,230));
|
||||||
|
|
||||||
//the whole thing is broken up into 100 chunks which are allocated as such:
|
//the whole thing is broken up into 81 chunks which are broken up
|
||||||
//The entirety of the upper row is taken up by "BITS"
|
//into the 8x8 grid of bits in the bottom right and the other parts
|
||||||
//The next row down skips two columns and then has 7 6 5 4 3 2 1 0
|
//taken up by helper text
|
||||||
//The bottom right 64 entries are the grid
|
|
||||||
//The left most column has "BYTES" written vertically down it
|
//bigTextSize is too large when the grid gets small. Might need to tweak it then.
|
||||||
//the next left most column has "0 1 2 3 4 5 6 7" written down along the grid
|
double bigTextSize = qMin(xSector, ySector) * 0.5;
|
||||||
|
double smallTextSize = qMin(xSector, ySector) * 0.3;
|
||||||
|
|
||||||
painter.setPen(QPen(QApplication::palette().color(QPalette::Text)));
|
painter.setPen(QPen(QApplication::palette().color(QPalette::Text)));
|
||||||
QFont mainFont;
|
QFont mainFont;
|
||||||
mainFont.setPixelSize(qMin(xSector, ySector) - 10);
|
mainFont.setPixelSize(bigTextSize);
|
||||||
painter.setFont(mainFont);
|
painter.setFont(mainFont);
|
||||||
QFont smallFont;
|
QFont smallFont;
|
||||||
smallFont.setPixelSize(qMin(xSector, ySector) - 15);
|
smallFont.setPixelSize(smallTextSize);
|
||||||
QFont boldFont;
|
QFont boldFont;
|
||||||
boldFont.setPixelSize(qMin(xSector, ySector) - 10);
|
boldFont.setPixelSize(bigTextSize);
|
||||||
boldFont.setBold(true);
|
boldFont.setBold(true);
|
||||||
|
|
||||||
painter.drawText(QRect(viewport.left(), viewport.top(), xSpan, ySector), Qt::AlignCenter, tr("BITS"));
|
painter.drawText(QRect(viewport.left(), viewport.top(), xSector, ySector), Qt::AlignCenter, "BITS ->");
|
||||||
|
|
||||||
for (x = 0; x < 8; x++)
|
for (x = 0; x < 8; x++)
|
||||||
{
|
{
|
||||||
painter.drawText(QRect(viewport.left() + (x+2) * xSector, viewport.top() + ySector, xSector, ySector), Qt::AlignCenter, QString::number(7-x));
|
painter.drawText(QRect(viewport.left() + (x+1) * xSector, viewport.top(), xSector, ySector), Qt::AlignCenter, QString::number(7-x));
|
||||||
}
|
|
||||||
for (y = 0; y < 8; y++)
|
|
||||||
{
|
|
||||||
painter.drawText(QRect(viewport.left() + xSector, viewport.top() + ySector * (y + 2), xSector, ySector), Qt::AlignCenter, QString::number(y));
|
|
||||||
}
|
}
|
||||||
|
//for (y = 0; y < 8; y++)
|
||||||
|
//{
|
||||||
|
// painter.drawText(QRect(viewport.left() + xSector, viewport.top() + ySector * (y + 2), xSector, ySector), Qt::AlignCenter, QString::number(y));
|
||||||
|
//}
|
||||||
|
|
||||||
painter.drawText(viewport.left() + 10, viewport.top() + ySector * 4, "B");
|
painter.drawText(viewport.left() + 4, viewport.top() + ySector * 3, "B");
|
||||||
painter.drawText(viewport.left() + 10, viewport.top() + ySector * 5, "Y");
|
painter.drawText(viewport.left() + 4, viewport.top() + ySector * 4, "Y");
|
||||||
painter.drawText(viewport.left() + 10, viewport.top() + ySector * 6, "T");
|
painter.drawText(viewport.left() + 4, viewport.top() + ySector * 5, "T");
|
||||||
painter.drawText(viewport.left() + 10, viewport.top() + ySector * 7, "E");
|
painter.drawText(viewport.left() + 4, viewport.top() + ySector * 6, "E");
|
||||||
painter.drawText(viewport.left() + 10, viewport.top() + ySector * 8, "S");
|
painter.drawText(viewport.left() + 4, viewport.top() + ySector * 7, "S");
|
||||||
|
|
||||||
|
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 1, xSector, ySector), Qt::AlignCenter, "0");
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 2, xSector, ySector), Qt::AlignCenter, "1");
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 3, xSector, ySector), Qt::AlignCenter, "2");
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 4, xSector, ySector), Qt::AlignCenter, "3");
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 5, xSector, ySector), Qt::AlignCenter, "4");
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 6, xSector, ySector), Qt::AlignCenter, "5");
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 7, xSector, ySector), Qt::AlignCenter, "6");
|
||||||
|
painter.drawText(QRect(viewport.left(), viewport.top() + ySector * 8, xSector, ySector), Qt::AlignCenter, "7");
|
||||||
|
|
||||||
//now, color the bitfield by seeing if a given bit is freshly set/unset in the new data
|
//now, color the bitfield by seeing if a given bit is freshly set/unset in the new data
|
||||||
//compared to the old. Bits that are not set in either are white, bits set in both are black
|
//compared to the old. Bits that are not set in either are white, bits set in both are black
|
||||||
@@ -187,7 +198,7 @@ void CANDataGrid::paintEvent(QPaintEvent *event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//painter.fillRect(viewport.left() + (x+2) * xSector, viewport.top() + (y+2) * ySector, xSector, ySector, redBrush);
|
//painter.fillRect(viewport.left() + (x+2) * xSector, viewport.top() + (y+2) * ySector, xSector, ySector, redBrush);
|
||||||
painter.drawRect(viewport.left() + (x+2) * xSector, viewport.top() + (y+2) * ySector, xSector, ySector);
|
painter.drawRect(viewport.left() + (x+1) * xSector, viewport.top() + (y+1) * ySector, xSector, ySector);
|
||||||
switch (textStates[x][y])
|
switch (textStates[x][y])
|
||||||
{
|
{
|
||||||
case GridTextState::NORMAL:
|
case GridTextState::NORMAL:
|
||||||
@@ -205,12 +216,12 @@ void CANDataGrid::paintEvent(QPaintEvent *event)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
painter.drawText(viewport.left() + (x+2) * xSector + (xSector / 8), viewport.top() + (y + 3) * ySector - (ySector / 3), QString::number(y * 8 + (7-x)));
|
painter.drawText(viewport.left() + (x+1) * xSector + (xSector / 8), viewport.top() + (y + 2) * ySector - (ySector / 3), QString::number(y * 8 + (7-x)));
|
||||||
painter.setPen(QPen(Qt::gray));
|
painter.setPen(QPen(Qt::gray));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
upperLeft.setX(viewport.left() + 2 * xSector);
|
upperLeft.setX(viewport.left() + 1 * xSector);
|
||||||
upperLeft.setY(viewport.top() + 2 * ySector);
|
upperLeft.setY(viewport.top() + 1 * ySector);
|
||||||
gridSize.setX(xSector);
|
gridSize.setX(xSector);
|
||||||
gridSize.setY(ySector);
|
gridSize.setY(ySector);
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-1
@@ -116,11 +116,20 @@
|
|||||||
<number>28</number>
|
<number>28</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="headerHidden">
|
<property name="headerHidden">
|
||||||
<bool>true</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="expandsOnDoubleClick">
|
<property name="expandsOnDoubleClick">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="columnCount">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<attribute name="headerVisible">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="headerStretchLastSection">
|
||||||
|
<bool>true</bool>
|
||||||
|
</attribute>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">1</string>
|
<string notr="true">1</string>
|
||||||
|
|||||||
@@ -41,6 +41,12 @@
|
|||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="CANDataGrid" name="bitfield" native="true">
|
<widget class="CANDataGrid" name="bitfield" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>300</width>
|
<width>300</width>
|
||||||
|
|||||||
Reference in New Issue
Block a user