Merge pull request #14 from pljones/feature/covid19-date-limit-on-historygraph
Feature/covid19 date limit on historygraph
This commit is contained in:
commit
09efb08254
8 changed files with 62 additions and 22 deletions
|
@ -92,6 +92,9 @@ LED bar: lbr
|
|||
// file name for logging file
|
||||
#define DEFAULT_LOG_FILE_NAME "Jamulussrvlog.txt"
|
||||
|
||||
// Default oldest item to draw in history graph (days ago)
|
||||
#define DEFAULT_DAYS_HISTORY 60
|
||||
|
||||
// default server address
|
||||
#define DEFAULT_SERVER_ADDRESS "jamulus.fischvolk.de"
|
||||
#define DEFAULT_SERVER_NAME "Central Server"
|
||||
|
|
|
@ -27,11 +27,12 @@
|
|||
|
||||
|
||||
/* Abstract class *************************************************************/
|
||||
AHistoryGraph::AHistoryGraph() :
|
||||
AHistoryGraph::AHistoryGraph( const int iMaxDaysHistory ) :
|
||||
sFileName ( "" ),
|
||||
bDoHistory ( false ),
|
||||
vHistoryDataFifo ( NUM_ITEMS_HISTORY ),
|
||||
iNumTicksX ( 0 ), // number of days in history
|
||||
iHistMaxDays ( iMaxDaysHistory ),
|
||||
|
||||
BackgroundColor ( "white" ), // background
|
||||
FrameColor ( "black" ), // frame
|
||||
|
@ -67,8 +68,8 @@ AHistoryGraph::AHistoryGraph() :
|
|||
iTextOffsetToGrid ( 3 ),
|
||||
iTextOffsetX ( 18 ),
|
||||
|
||||
iMarkerSizeNewCon ( 11 ),
|
||||
iMarkerSizeServSt ( 8 )
|
||||
iMarkerSizeNewCon ( 10 ),
|
||||
iMarkerSizeServSt ( 6 )
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -136,7 +137,7 @@ void AHistoryGraph::Update ( )
|
|||
curDate = QDate::currentDate();
|
||||
|
||||
// set oldest date to draw
|
||||
QDate minDate = curDate.addDays ( MAX_DAYS_HISTORY * -1 );
|
||||
QDate minDate = curDate.addDays ( iHistMaxDays * -1 );
|
||||
|
||||
// get oldest date in history
|
||||
QDate oldestDate = curDate.addDays ( 1 ); // one day in the future
|
||||
|
@ -298,9 +299,9 @@ void AHistoryGraph::AddMarker ( const SHistoryData& curHistoryData )
|
|||
|
||||
|
||||
/* JPEG History Graph implementation ******************************************/
|
||||
CJpegHistoryGraph::CJpegHistoryGraph() :
|
||||
AHistoryGraph(),
|
||||
PlotPixmap ( 1, 1, QImage::Format_RGB32 ),
|
||||
CJpegHistoryGraph::CJpegHistoryGraph( const int iMaxDaysHistory ) :
|
||||
AHistoryGraph ( iMaxDaysHistory ),
|
||||
PlotPixmap ( 1, 1, QImage::Format_RGB32 ),
|
||||
iAxisFontWeight ( -1 )
|
||||
{
|
||||
// scale pixmap to correct size
|
||||
|
@ -403,9 +404,9 @@ void CJpegHistoryGraph::point ( const unsigned int x, const unsigned int y, cons
|
|||
|
||||
|
||||
/* SVG History Graph implementation *******************************************/
|
||||
CSvgHistoryGraph::CSvgHistoryGraph() :
|
||||
AHistoryGraph(),
|
||||
svgImage ( "" ),
|
||||
CSvgHistoryGraph::CSvgHistoryGraph( const int iMaxDaysHistory ) :
|
||||
AHistoryGraph ( iMaxDaysHistory ),
|
||||
svgImage ( "" ),
|
||||
svgStreamWriter ( &svgImage )
|
||||
{
|
||||
// set SVG veiwBox to correct size to ensure correct scaling
|
||||
|
|
|
@ -44,10 +44,7 @@
|
|||
|
||||
/* Definitions ****************************************************************/
|
||||
// number of history items to store
|
||||
#define NUM_ITEMS_HISTORY 4800
|
||||
|
||||
// oldest item to draw
|
||||
#define MAX_DAYS_HISTORY 60
|
||||
#define NUM_ITEMS_HISTORY 20000
|
||||
|
||||
|
||||
/* Interface ******************************************************************/
|
||||
|
@ -61,7 +58,7 @@ public:
|
|||
HIT_SERVER_STOP
|
||||
};
|
||||
|
||||
AHistoryGraph();
|
||||
AHistoryGraph( const int iMaxDaysHistory );
|
||||
~AHistoryGraph() { }
|
||||
|
||||
void Start ( const QString& sNewFileName );
|
||||
|
@ -89,6 +86,7 @@ protected:
|
|||
bool bDoHistory;
|
||||
CFIFO<SHistoryData> vHistoryDataFifo;
|
||||
unsigned int iNumTicksX; // Class global, not sure why
|
||||
int iHistMaxDays;
|
||||
|
||||
QString BackgroundColor;
|
||||
QString FrameColor;
|
||||
|
@ -141,7 +139,7 @@ class CJpegHistoryGraph : public QObject, virtual public AHistoryGraph
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CJpegHistoryGraph();
|
||||
CJpegHistoryGraph( const int iMaxDaysHistory );
|
||||
virtual void Update ( );
|
||||
|
||||
protected:
|
||||
|
@ -165,7 +163,7 @@ class CSvgHistoryGraph : public QObject, virtual public AHistoryGraph
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CSvgHistoryGraph();
|
||||
CSvgHistoryGraph( const int iMaxDaysHistory );
|
||||
virtual void Update();
|
||||
|
||||
protected:
|
||||
|
|
23
src/main.cpp
23
src/main.cpp
|
@ -53,6 +53,7 @@ int main ( int argc, char** argv )
|
|||
bool bCentServPingServerInList = false;
|
||||
bool bNoAutoJackConnect = false;
|
||||
int iNumServerChannels = DEFAULT_USED_NUM_CHANNELS;
|
||||
int iMaxDaysHistory = DEFAULT_DAYS_HISTORY;
|
||||
int iCtrlMIDIChannel = INVALID_MIDI_CH;
|
||||
quint16 iPortNumber = LLCON_DEFAULT_PORT_NUMBER;
|
||||
ELicenceType eLicenceType = LT_NO_LICENCE;
|
||||
|
@ -130,6 +131,26 @@ int main ( int argc, char** argv )
|
|||
|
||||
|
||||
|
||||
// Maximum days in history display ------------------------------------
|
||||
if ( GetNumericArgument ( tsConsole,
|
||||
argc,
|
||||
argv,
|
||||
i,
|
||||
"-D",
|
||||
"--histdays",
|
||||
1,
|
||||
366,
|
||||
rDbleArgument ) )
|
||||
{
|
||||
iMaxDaysHistory = static_cast<int> ( rDbleArgument );
|
||||
|
||||
tsConsole << "- maximum days in history display: "
|
||||
<< iMaxDaysHistory << endl;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// Start minimized -----------------------------------------------------
|
||||
if ( GetFlagArgument ( argv,
|
||||
i,
|
||||
|
@ -496,6 +517,7 @@ int main ( int argc, char** argv )
|
|||
// Server:
|
||||
// actual server object
|
||||
CServer Server ( iNumServerChannels,
|
||||
iMaxDaysHistory,
|
||||
strLoggingFileName,
|
||||
iPortNumber,
|
||||
strHTMLStatusFileName,
|
||||
|
@ -610,6 +632,7 @@ QString UsageArguments ( char **argv )
|
|||
" -w, --welcomemessage welcome message on connect (server only)\n"
|
||||
" -y, --history enable connection history and set file\n"
|
||||
" name (server only)\n"
|
||||
" -D, --histdays number of days of history to display (server only)\n"
|
||||
" -z, --startminimized start minimizied (server only)\n"
|
||||
" --ctrlmidich MIDI controller channel to listen (client only)"
|
||||
"\nExample: " + QString ( argv[0] ) + " -l -inifile myinifile.ini\n";
|
||||
|
|
|
@ -198,6 +198,7 @@ void CHighPrecisionTimer::run()
|
|||
|
||||
// CServer implementation ******************************************************
|
||||
CServer::CServer ( const int iNewMaxNumChan,
|
||||
const int iMaxDaysHistory,
|
||||
const QString& strLoggingFileName,
|
||||
const quint16 iPortNumber,
|
||||
const QString& strHTMLStatusFileName,
|
||||
|
@ -212,6 +213,7 @@ CServer::CServer ( const int iNewMaxNumChan,
|
|||
const ELicenceType eNLicenceType ) :
|
||||
iMaxNumChannels ( iNewMaxNumChan ),
|
||||
Socket ( this, iPortNumber ),
|
||||
Logging ( iMaxDaysHistory ),
|
||||
JamRecorder ( strRecordingDirName ),
|
||||
bEnableRecording ( !strRecordingDirName.isEmpty() ),
|
||||
bWriteStatusHTMLFile ( false ),
|
||||
|
|
|
@ -119,6 +119,7 @@ class CServer : public QObject
|
|||
|
||||
public:
|
||||
CServer ( const int iNewMaxNumChan,
|
||||
const int iMaxDaysHistory,
|
||||
const QString& strLoggingFileName,
|
||||
const quint16 iPortNumber,
|
||||
const QString& strHTMLStatusFileName,
|
||||
|
|
|
@ -25,6 +25,14 @@
|
|||
#include "serverlogging.h"
|
||||
|
||||
// Server logging --------------------------------------------------------------
|
||||
CServerLogging::CServerLogging( const int iMaxDaysHistory ) :
|
||||
JpegHistoryGraph ( iMaxDaysHistory ),
|
||||
SvgHistoryGraph ( iMaxDaysHistory ),
|
||||
bDoLogging ( false ),
|
||||
File ( DEFAULT_LOG_FILE_NAME )
|
||||
{
|
||||
}
|
||||
|
||||
CServerLogging::~CServerLogging()
|
||||
{
|
||||
// close logging file of open
|
||||
|
@ -82,8 +90,8 @@ void CServerLogging::AddServerStopped()
|
|||
*this << strLogStr; // in log file
|
||||
|
||||
// add element to history and update on server stop
|
||||
JpegHistoryGraph.Add ( QDateTime::currentDateTime(), CJpegHistoryGraph::HIT_SERVER_STOP );
|
||||
SvgHistoryGraph.Add ( QDateTime::currentDateTime(), CJpegHistoryGraph::HIT_SERVER_STOP );
|
||||
JpegHistoryGraph.Add ( QDateTime::currentDateTime(), AHistoryGraph::HIT_SERVER_STOP );
|
||||
SvgHistoryGraph.Add ( QDateTime::currentDateTime(), AHistoryGraph::HIT_SERVER_STOP );
|
||||
|
||||
JpegHistoryGraph.Update();
|
||||
SvgHistoryGraph.Update();
|
||||
|
@ -140,7 +148,7 @@ void CServerLogging::ParseLogFile ( const QString& strFileName )
|
|||
if ( strAddress.isEmpty() )
|
||||
{
|
||||
// server stop
|
||||
JpegHistoryGraph.Add ( curDateTime, CJpegHistoryGraph::HIT_SERVER_STOP );
|
||||
JpegHistoryGraph.Add ( curDateTime, AHistoryGraph::HIT_SERVER_STOP );
|
||||
SvgHistoryGraph.Add ( curDateTime, CSvgHistoryGraph::HIT_SERVER_STOP );
|
||||
}
|
||||
else
|
||||
|
|
|
@ -38,8 +38,8 @@
|
|||
class CServerLogging
|
||||
{
|
||||
public:
|
||||
CServerLogging() : bDoLogging ( false ),
|
||||
File ( DEFAULT_LOG_FILE_NAME ) {}
|
||||
CServerLogging( const int iMaxDaysHistory );
|
||||
|
||||
virtual ~CServerLogging();
|
||||
|
||||
void Start ( const QString& strLoggingFileName );
|
||||
|
@ -56,4 +56,8 @@ protected:
|
|||
CSvgHistoryGraph SvgHistoryGraph;
|
||||
bool bDoLogging;
|
||||
QFile File;
|
||||
|
||||
private:
|
||||
int iHistNumItems;
|
||||
int iHistMaxDays;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue