Add more customization support to CANDataGrid. Used that new functionality in Flow View
to allow for bitfield triggers. Click a cell to trigger on it. Now playback will stop if that cell changes state while playing back.
This commit is contained in:
@@ -7,6 +7,27 @@ namespace Ui {
|
||||
class CANDataGrid;
|
||||
}
|
||||
|
||||
/*
|
||||
* CANDataGrid is a custom QT widget that proves that it's possible to shoehorn 12x too much crap into one widget. The purported
|
||||
* goal of the widget was to show an 8x8 grid of bits that show whether each bit in a given message is set or not. It allows one to quickly
|
||||
* visualize the bits within a CAN frame's data bytes. From there it evolved to also show whether a given bit was freshly set recently, freshly
|
||||
* unset recently, or has stayed set or unset for a while. It can also gray out bytes that don't exist in the current CAN frame.
|
||||
* This is handled by the calling code.
|
||||
*
|
||||
* After that functionality was added so it could also emit a signal when it is clicked. The signal will tell you which "bit" cell was clicked.
|
||||
*
|
||||
* Then, support was added for modifying the text color of each cell. This can be used for whatever the calling code wants. An example is
|
||||
* FlowView that uses all of the above functionality plus this functionality in order to show which bits are set as triggers for stopping
|
||||
* the flowview playback.
|
||||
*/
|
||||
|
||||
enum GridTextState
|
||||
{
|
||||
NORMAL,
|
||||
BOLD_BLUE,
|
||||
INVERT
|
||||
};
|
||||
|
||||
class CANDataGrid : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -19,6 +40,8 @@ public:
|
||||
void updateData(unsigned char *, bool);
|
||||
void setUsed(unsigned char *, bool);
|
||||
void saveImage(QString filename, int width, int height);
|
||||
void setCellTextState(int x, int y, GridTextState state);
|
||||
GridTextState geCellTextState(int x, int y);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
|
||||
@@ -31,6 +54,7 @@ private:
|
||||
unsigned char refData[8];
|
||||
unsigned char data[8];
|
||||
unsigned char usedData[8];
|
||||
GridTextState textStates[8][8];
|
||||
QPoint upperLeft, gridSize;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user