#!/bin/sh
#	Created:	Fre Jul  9 09:43:15 CEST 2004	by M. Biermaier	on linuxorange
#	Version:	Mit Jul 14 13:54:35 CEST 2004	on linuxorange
#	$Id: GraphPrinter-PageCount-vs-InkLevel,v 1.3 2004/07/14 12:00:00 mbier Exp $


LOG_FILE_PAGE_COUNT=$HOME/logs/HP-PSC_2170-PageCount_Log
LOG_DATA_PAGE_COUNT=/tmp/Log-PageCount.DAT
LOG_FILE_INK_LEVEL=$HOME/logs/HP-PSC_2170-InkLevel_Log
LOG_DATA_INK_LEVEL=/tmp/Log-InkLevel.DAT
LOG_DATA_PAGE_COUNT_VS_INK_LEVEL=/tmp/Log-PageCount-vs-InkLevel.DAT
PIC_FILE=/tmp/Log-PageCount-vs-InkLevel.png
PRINTER="HP-PSC 2175"

TO_FILE=

if [ $# -gt 0 ]
then
	if [ "$1" = "-f" ]
	then
		TO_FILE=1
	else
		START_INDEX=$1
	fi
	shift
fi
                                                                           
#Fre Jul  2 15:45:43 CEST 2004 156

awk '
BEGIN   {
		FullDate        = 1;

		Month ["Jan"]   = 1;
		Month ["Feb"]   = 2;
		Month ["Mar"]   = 3;
		Month ["Apr"]   = 4;
		Month ["May"]   = 5;
		Month ["Jun"]   = 6;
		Month ["Jul"]   = 7;
		Month ["Aug"]   = 8;
		Month ["Sep"]   = 9;
		Month ["Oct"]   = 10;
		Month ["Nov"]   = 11;
		Month ["Dec"]   = 12;
	}
/.*:..:.*/{
		#printf ("%s", $0)
		#Mon Jan 13 09:00:00 CET 2003
		Dow			= $1;
		Mon			= $2;
		Day			= $3;
		Time		= $4;
		TimeZ		= $5;
		Year		= $6;

		PageCount	= $7;

		printf ("%4d-%.2d-%.2d %s, %d\n", Year, Month [Mon], Day, Time, PageCount);
	}
' $LOG_FILE_PAGE_COUNT > $LOG_DATA_PAGE_COUNT

#Fre Jul  2 23:16:17 CEST 2004 Black: 71% Color: 51%

awk '
BEGIN   {
		FullDate        = 1;

		Month ["Jan"]   = 1;
		Month ["Feb"]   = 2;
		Month ["Mar"]   = 3;
		Month ["Apr"]   = 4;
		Month ["May"]   = 5;
		Month ["Jun"]   = 6;
		Month ["Jul"]   = 7;
		Month ["Aug"]   = 8;
		Month ["Sep"]   = 9;
		Month ["Oct"]   = 10;
		Month ["Nov"]   = 11;
		Month ["Dec"]   = 12;
	}
/.*:..:.*/{
		#printf ("%s", $0)
		#Mon Jan 13 09:00:00 CET 2003
		Dow			= $1;
		Mon			= $2;
		Day			= $3;
		Time		= $4;
		TimeZ		= $5;
		Year		= $6;

		InkLabel_1	= $7;
		InkLevel_1	= $8;
		InkLabel_2	= $9;
		InkLevel_2	= $10;

		if (NF >= 10) {
			printf ("%4d-%.2d-%.2d %s", Year, Month [Mon], Day, Time);
			printf (" %s %d", InkLabel_1, InkLevel_1);
			printf (" %s %d", InkLabel_2, InkLevel_2);
			printf ("\n");
		}
	}
' $LOG_FILE_INK_LEVEL > $LOG_DATA_INK_LEVEL

paste $LOG_DATA_PAGE_COUNT $LOG_DATA_INK_LEVEL > $LOG_DATA_PAGE_COUNT_VS_INK_LEVEL

if [ $TO_FILE ]
then
	FILE_OUTPUT_CMDS="set terminal png color
	set output \"$PIC_FILE\""
	GNUPLOT_OPTION=
else
	FILE_OUTPUT_CMDS=
	GNUPLOT_OPTION="-persist"
fi

COL1=`cut -d" " -f 3 $LOG_DATA_INK_LEVEL | head -1`
COL2=`cut -d" " -f 5 $LOG_DATA_INK_LEVEL | head -1`

gnuplot $GNUPLOT_OPTION <<EOF
$FILE_OUTPUT_CMDS
set format y "%3.0f"
set xtics rotate
set grid
set title "PageCount vs InkLevel for $PRINTER"
set time
plot [${START_INDEX:+$START_INDEX}:]	"$LOG_DATA_PAGE_COUNT_VS_INK_LEVEL" using 3:7 title "$COL1" with lines, \
										"$LOG_DATA_PAGE_COUNT_VS_INK_LEVEL" using 3:9 title "$COL2" with lines
EOF

# vim: ts=4
