1 #ifndef SNIFFERITEM_H
2 #define SNIFFERITEM_H
3 
4 #include <QVariant>
5 #include <QTime>
6 #include "can_structs.h"
7 
8 struct fstCan
9 {
10     quint8 data[8];
11     quint32 dataTimestamp[8];
12     int len;
13 };
14 
15 enum dc
16 {
17     NO,
18     INC,
19     DEINC
20 };
21 
22 
23 class SnifferItem
24 {
25 public:
26     explicit SnifferItem(const CANFrame& pFrame, quint32 seq);
27     virtual ~SnifferItem();
28 
29     quint64 getId() const;
30     float getDelta() const;
31     int getData(uchar i) const;
32     quint8 getNotchPattern(uchar i) const;
33     quint8 getLastData(uchar i) const;
34     quint32 getDataTimestamp(uchar i) const;
35     quint32 getSeqInterval(uchar i) const;
36     dc dataChange(uchar) const;
37     int elapsed() const;
38     void update(const CANFrame& pFrame, quint32 timeSeq, bool mute);
39     void updateMarker();
40     void notch(bool);
41 
42 private:
43     quint32         mID;
44     struct fstCan   mLast;
45     struct fstCan   mCurrent;
46     struct fstCan   mLastMarker;
47     struct fstCan   mMarker;
48     quint8          mNotch[8];
49     quint64         mLastTime;
50     quint64         mCurrentTime;
51     quint64         mCurrSeqVal;
52 
53     QTime           mTime;
54 };
55 
56 #endif // SNIFFERITEM_H
57