2019-05-19 09:30:49 +02:00
|
|
|
#ifndef HISTORYGRAPH_H
|
|
|
|
#define HISTORYGRAPH_H
|
|
|
|
|
|
|
|
#include <QDateTime>
|
|
|
|
#include <QHostAddress>
|
|
|
|
#include <QFile>
|
|
|
|
#include <QString>
|
|
|
|
#include <QTimer>
|
|
|
|
#include "global.h"
|
|
|
|
#include "util.h"
|
|
|
|
|
|
|
|
/* Definitions ****************************************************************/
|
|
|
|
// number of history items to store
|
|
|
|
#define NUM_ITEMS_HISTORY 600
|
|
|
|
|
2019-05-20 21:00:09 +02:00
|
|
|
/* Interface ********************************************************************/
|
|
|
|
class AHistoryGraph
|
2019-05-19 09:30:49 +02:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum EHistoryItemType
|
|
|
|
{
|
|
|
|
HIT_LOCAL_CONNECTION,
|
|
|
|
HIT_REMOTE_CONNECTION,
|
|
|
|
HIT_SERVER_STOP
|
|
|
|
};
|
|
|
|
|
2019-05-20 21:00:09 +02:00
|
|
|
AHistoryGraph();
|
|
|
|
~AHistoryGraph() { }
|
|
|
|
|
2019-05-19 09:30:49 +02:00
|
|
|
void Start ( const QString& sNewFileName );
|
|
|
|
void Add ( const QDateTime& newDateTime, const EHistoryItemType curType );
|
|
|
|
void Add ( const QDateTime& newDateTime, const QHostAddress ClientInetAddr );
|
2019-05-20 21:00:09 +02:00
|
|
|
virtual void Update ( );
|
2019-05-19 09:30:49 +02:00
|
|
|
|
|
|
|
protected:
|
|
|
|
struct SHistoryData
|
|
|
|
{
|
|
|
|
QDateTime DateTime;
|
|
|
|
EHistoryItemType Type;
|
|
|
|
};
|
|
|
|
void DrawFrame ( const int iNewNumTicksX );
|
|
|
|
void AddMarker ( const SHistoryData& curHistoryData );
|
2019-05-20 21:00:09 +02:00
|
|
|
virtual void Save ( const QString sFileName ) = 0;
|
2019-05-19 09:30:49 +02:00
|
|
|
|
2019-05-20 21:00:09 +02:00
|
|
|
virtual void rect ( const unsigned int x, const unsigned int y, const unsigned int width, const unsigned int height ) = 0;
|
|
|
|
virtual void text ( const unsigned int x, const unsigned int y, const QString& value ) = 0;
|
|
|
|
virtual void line ( const unsigned int x1, const unsigned int y1, const unsigned int x2, const unsigned int y2, const unsigned int strokeWidth = 1 ) = 0;
|
|
|
|
virtual void point ( const unsigned int x, const unsigned int y, const unsigned int size, const QString& colour ) = 0;
|
2019-05-19 09:30:49 +02:00
|
|
|
|
2019-05-20 21:00:09 +02:00
|
|
|
// Constructor sets these
|
|
|
|
QString sFileName;
|
2019-05-19 09:30:49 +02:00
|
|
|
bool bDoHistory;
|
|
|
|
CFIFO<SHistoryData> vHistoryDataFifo;
|
2019-05-20 21:00:09 +02:00
|
|
|
unsigned int iNumTicksX; // Class global, not sure why
|
|
|
|
|
|
|
|
QString BackgroundColor;
|
|
|
|
QString FrameColor;
|
|
|
|
QString GridColor;
|
|
|
|
QString TextColor;
|
|
|
|
QString MarkerNewColor;
|
|
|
|
QString MarkerNewLocalColor;
|
|
|
|
QString MarkerStopColor;
|
|
|
|
|
|
|
|
const unsigned int canvasRectX;
|
|
|
|
const unsigned int canvasRectY;
|
|
|
|
const unsigned int canvasRectWidth;
|
|
|
|
const unsigned int canvasRectHeight;
|
|
|
|
|
|
|
|
const unsigned int iGridFrameOffset;
|
|
|
|
const unsigned int iGridWidthWeekend;
|
|
|
|
const unsigned int iXAxisTextHeight;
|
|
|
|
const unsigned int gridFrameX;
|
|
|
|
const unsigned int gridFrameY;
|
|
|
|
const unsigned int gridFrameWidth;
|
|
|
|
const unsigned int gridFrameHeight;
|
|
|
|
const unsigned int gridFrameRight;
|
|
|
|
const unsigned int gridFrameBottom;
|
|
|
|
|
|
|
|
const QString axisFontFamily;
|
|
|
|
const QString axisFontWeight;
|
|
|
|
const unsigned int axisFontSize;
|
|
|
|
|
|
|
|
const unsigned int iYAxisStart;
|
|
|
|
const unsigned int iYAxisEnd;
|
|
|
|
const unsigned int iNumTicksY;
|
|
|
|
|
|
|
|
const unsigned int iTextOffsetToGrid;
|
|
|
|
const unsigned int iTextOffsetX;
|
|
|
|
|
|
|
|
const unsigned int iMarkerSizeNewCon;
|
|
|
|
const unsigned int iMarkerSizeServSt;
|
|
|
|
|
|
|
|
// others
|
|
|
|
double dayXSpace;
|
|
|
|
unsigned int iYSpace;
|
|
|
|
QDate curDate;
|
|
|
|
QTimer TimerDailyUpdate;
|
2019-05-19 09:30:49 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // HISTORYGRAPH_H
|