Gutenprint ink-level Monitor
Da Slacky.eu.
Versione delle 16:07, 10 lug 2007, autore: Ir0c (Discussione | contributi)
Indice |
Gutenprint ink-level Monitor ~ La risposta ai vostri livelli di inchiostro
Introduzione
Script di analisi livello inchiostro nelle cartucce
Requisiti
cupsd
gimpprint (gutenprint drivers)
una stampante
Modo d'uso
./inklevel
Note
- Esecuzione da root
- Sviluppato per stampanti con cartucce SEPARATE. (Nero, Cyan, Magenta, Yellow)
- Percorso di connessione usb della stampante al pc nella variabile $DEVICE [inklevel:13] (a voi la modifica se necessaria)
Hardware Testato (sezione a mio e VOSTRO completamento)
- Epson Stylus D68 Photo Edition
Script
#!/usr/bin/perl -w
#
#
# inklevel.pl v 0.1
#
# (C) ir0c_ July 2007
#
#
# Porta USB di connessione alla Stampante
$DEVICE = "/dev/usb/lp0";
# Variabili versione
$VERSION = "0.1";
$RELEASE_DATE = "July 2007";
$MOTD = "\n\n\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" .
"\t\t~ ~\n" .
"\t\t~ ~ inklevel v. $VERSION ~ ~\n" .
"\t\t~ ~\n" .
"\t\t~ ~ (C) ir0c_ ~ $RELEASE_DATE ~\n" .
"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n";
# Sequenze d'escape ANSI per i colori
$_CYAN = "\033[1;36m";
$_MAGENTA = "\033[1;35m";
$_YELLOW = "\033[1;33m";
$_BLACK = "\033[0;39m";
$_DEFAULT = "\033[0m";
# MOTD
print "$MOTD";
# Recupero del pid di cupsd
$CUPSD = `pidof cupsd | awk '{print \$1}'`;
# Eliminazione NewLine
chop($CUPSD);
# Se cupsd è attivo, E la stampante è accesa ...
if (-e $DEVICE and $CUPSD gt 0) {
# Acquisizione del livello d'inchiostro NERO (in percentuale)
$black_level = `escputil --ink-level --raw-device $DEVICE | grep "Photo Black" | awk '{print \$3}'`;
# Acquisizione del livello d'inchiostro CYAN (in percentuale)
$cyan_level = `escputil --ink-level --raw-device $DEVICE | grep "Cyan" | awk '{print \$2}'`;
# Acquisizione del livello d'inchiostro MAGENTA (in percentuale)
$magenta_level = `escputil --ink-level --raw-device $DEVICE | grep "Magenta" | awk '{print \$2}'`;
# Acquisizione del livello d'inchiostro YELLOW (in percentuale)
$yellow_level = `escputil --ink-level --raw-device $DEVICE | grep "Yellow" | awk '{print \$2}'`;
# Eliminazione carattere di NewLine dalle stringhe ..
chop($black_level);
chop($cyan_level);
chop($magenta_level);
chop($yellow_level);
# Visualizzazione Effettiva
print "\tBlack\t[". "$_BLACK" . "~" x ($black_level - 1). "$_DEFAULT" . ">" . ' ' x (100 - $black_level - 3) . "] ( $black_level % )\n";
print "\t$_CYAN" ."Cyan\t". "$_DEFAULT"."[" . "$_CYAN" . "~" x ($cyan_level - 1) . ">" . "$_DEFAULT" . ' ' x (100 - $cyan_level - 3) . "] ( $cyan_level % )\n";
print "\t$_MAGENTA" ."Magenta\t". "$_DEFAULT"."[" . "$_MAGENTA" . "~" x ($magenta_level - 1) . ">" . "$_DEFAULT" . ' ' x (100 - $magenta_level - 3) . "] ( $magenta_level % )\n";
print "\t$_YELLOW" ."Yellow\t". "$_DEFAULT"."[" . "$_YELLOW" . "~" x ($yellow_level - 1) . ">" . "$_DEFAULT" . ' ' x (100 - $yellow_level - 3) . "] ( $yellow_level % )\n";
} # if (-e $DEVICE and $CUPSD gt 0) ...
else{
print "\n\t\tCups daemon not running.. or Printer is power off...\n\n";
}
ir0c_