Merge pull request #14 from pljones/feature/covid19-date-limit-on-historygraph

Feature/covid19 date limit on historygraph
This commit is contained in:
corrados 2020-03-22 20:06:13 +01:00 committed by GitHub
commit 09efb08254
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 62 additions and 22 deletions

View file

@ -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"

View file

@ -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

View file

@ -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:

View file

@ -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";

View file

@ -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 ),

View file

@ -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,

View file

@ -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

View file

@ -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;
};