Hallo,
ich habe vor langer Zeit mal ein Perl Skript zum Auslesen des Toner und Trommel Status gefunden und jahrelang benutzt.
Irgendwann kamen nur noch Fehler anstatt von Werten.
Bei der aktuellen Systemkonfiguration bleibt die Shell Ausgabe stehen, nachdem der locale auf system default gesetzt wurde.
Was kann ich an der Perlkonfiguration ändern, damit das Skript wieder korrekt arbeitet?
Oder kann ich etwas am Skript ändern?
dmesg gibt /dev/usb/lp1 an. Das habe ich erfolglos auch schon ausprobiert.
Danke im Voraus und viele Grüße,
Christoph
39270
Perl Skript zum Auslesen von Toner und Trommel Status
Perl Skript zum Auslesen von Toner und Trommel Status
Atombomben sind ja auch pipifax aus dem letzten Jahrhundert. Künstlich erzeugte Schwarze Löcher sind der letzte Schrei bei Weltuntergangs-Szenarien. Und da hätte wohl auch die Natur so ihre Probleme mit, wenn da was schief läuft
Quelle: Die Menschheit ist der Natur scheißegal...; golem forum
Quelle: Die Menschheit ist der Natur scheißegal...; golem forum
Re: Perl Skript zum Auslesen von Toner und Trommel Status
Normalerweise mit Stellenangaben.Irgendwann kamen nur noch Fehler anstatt von Werten.
Ausgabe?
Das Skript Schritt um Schritt vereinfachen,
sodaß die Rohdaten ausgegeben werden.
In die Richtung
Code: Alles auswählen
#print "Number of pages : $dinquire[0]\n";
#printf "Drum status : %4.1f ($dinquire[1]/$dinquire[2])\n",
# 100*$dinquire[1]/$dinquire[2];
print "TOTALPAGE $dinquire[0]\n";
print "NEXTCAREDRM $dinquire[1]\n";
print "LIFEDRM $dinquire[2]\n";
Spricht der Drucker denn noch PJL?
Vielleicht umgestellt?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Perl Skript zum Auslesen von Toner und Trommel Status
Hallo!
Ich weiss leider nicht ob der Drucker PJL spricht. Ich habe die ppd über cups-client direkt eingebunden. In der Server Configuration File in Cups ist über die Volltextsuche kein String mit dem Inhalt "pjl" zu finden.
Zur Zeit erscheint die Fehlermeldung:
dmesg | grep lp
Das bearbeitete Tonerskript sieht zur Zeit so aus:
Und es kommt die Fehlermeldung:
Durch das Ergänzen von my @dinquire aus dem alten Skript erhalte ich die folgende Ausgabe:
Ich weiss leider nicht ob der Drucker PJL spricht. Ich habe die ppd über cups-client direkt eingebunden. In der Server Configuration File in Cups ist über die Volltextsuche kein String mit dem Inhalt "pjl" zu finden.
Zur Zeit erscheint die Fehlermeldung:
Code: Alles auswählen
Can't open /dev/usb/lp0
Code: Alles auswählen
[ 0.000000] On node 0 totalpages: 1572686
[ 0.000025] Calibrating delay loop (skipped), value calculated using timer frequency.. 7200.49 BogoMIPS (lpj=14400984)
[ 12.612921] lp: driver loaded but no devices found
[ 96.269038] usblp 1-1.2:1.0: usblp1: USB Bidirectional printer dev 7 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0033
[ 96.269057] usbcore: registered new interface driver usblp
[ 100.109372] usblp1: removed
[ 100.859435] usblp 1-1.2:1.0: usblp1: USB Bidirectional printer dev 7 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0033
[ 661.437187] usblp1: removed
Code: Alles auswählen
#!/usr/bin/perl -w
use strict;
print "TOTALPAGE $dinquire[0]\n";
print "NEXTCAREDRM $dinquire[1]\n";
print "LIFEDRM $dinquire[2]\n";
Code: Alles auswählen
Global symbol "@dinquire" requires explicit package name (did you forget to declare "my @dinquire"?) at Tonerscript_neu line 4.
Global symbol "@dinquire" requires explicit package name (did you forget to declare "my @dinquire"?) at Tonerscript_neu line 5.
Global symbol "@dinquire" requires explicit package name (did you forget to declare "my @dinquire"?) at Tonerscript_neu line 6.
Execution of Tonerscript_neu aborted due to compilation errors.
Code: Alles auswählen
TOTALPAGE @PJL DINQUIRE TOTALPAGE
NEXTCAREDRM @PJL DINQUIRE NEXTCAREDRM
LIFEDRM @PJL DINQUIRE LIFEDRM
Atombomben sind ja auch pipifax aus dem letzten Jahrhundert. Künstlich erzeugte Schwarze Löcher sind der letzte Schrei bei Weltuntergangs-Szenarien. Und da hätte wohl auch die Natur so ihre Probleme mit, wenn da was schief läuft
Quelle: Die Menschheit ist der Natur scheißegal...; golem forum
Quelle: Die Menschheit ist der Natur scheißegal...; golem forum
Re: Perl Skript zum Auslesen von Toner und Trommel Status
In der Art, wie Du Dein test-Skript konstruiert hast, scheint es nicht zu versuchen,
Werte auszulesen.
Es gibt wohl nur die Abfragestrings aus.
Die Abfrage steckt wohl in diesem Teil des Originalskriptes: (Ich kann halt kein perl)
"usblp1" ist hier nur eine logische Bezeichnung durch den Treiber usblp?
Nach der Abfrage
Was gibt dmesg denn beim Anstecken des Druckers aus?
Oder ist es gar /dev/usblp1 ?
Beobachten beim An-/Abstecken
--------------------------------------------------------------------------------------
Hast Du hier den Stecker gezogen/ausgeschaltet?
(Bisher noch nie beim Auslesen/Schreiben)
Werte auszulesen.
Es gibt wohl nur die Abfragestrings aus.
Die Abfrage steckt wohl in diesem Teil des Originalskriptes:
Code: Alles auswählen
my $command=
"\e%-12345X\@PJL \r\n"
. join("\n", @dinquire)."\n"
. "\e%-12345X";
open LP, "+> $where" or die "Can't open $where\n";
print LP $command;
my $result="";
do {
$result= join "", <LP>;
sleep 1;
} while ($result eq "");
dmesg gibt /dev/usb/lp1 an. Das habe ich erfolglos auch schon ausprobiert.
Can't open /dev/usb/lp0
[ 96.269038] usblp 1-1.2:1.0: usblp1: USB Bidirectional printer dev 7 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0033
[ 96.269057] usbcore: registered new interface driver usblp
[ 100.109372] usblp1: removed
Im Zweifel würde ich es mit dem Device versuchen, welches dmesg ausgibt.[ 100.859435] usblp 1-1.2:1.0: usblp1: USB Bidirectional printer dev 7 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0033
[ 661.437187] usblp1: removed
"usblp1" ist hier nur eine logische Bezeichnung durch den Treiber usblp?
Nach der Abfrage
ist das device wohl nichts mit "lp" im Namendmesg | grep lp
Was gibt dmesg denn beim Anstecken des Druckers aus?
Oder ist es gar /dev/usblp1 ?
Beobachten beim An-/Abstecken
Code: Alles auswählen
watch -n 1 'ls -l /dev/*usb* /dev/usb/* /dev/*lp*'
alternativ
watch -n 1 'find /dev/ | egrep -i "usb|lp" '
oder etwas mehr
watch -n 1 -d=cum 'find /dev/ -maxdepth 2 -print0 | sed "s@/dev/@ /dev/@g" '
--------------------------------------------------------------------------------------
Hast Du hier den Stecker gezogen/ausgeschaltet?
Ich habe hier ein USB-cdrom, welches sich gelegentlich als anderes /dev/sr# reconnected.[ 100.109372] usblp1: removed
...
[ 661.437187] usblp1: removed
(Bisher noch nie beim Auslesen/Schreiben)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Perl Skript zum Auslesen von Toner und Trommel Status
Danke Dir!
Ich schaue mal in einem Perl Forum.
Oder vlt. mache ich tatsächlich mal eine Neuinstallation auf 64 Bit. Ein paar Jahre halte ich es aber noch aus (bin auf testing).
Ich schaue mal in einem Perl Forum.
Oder vlt. mache ich tatsächlich mal eine Neuinstallation auf 64 Bit. Ein paar Jahre halte ich es aber noch aus (bin auf testing).
Atombomben sind ja auch pipifax aus dem letzten Jahrhundert. Künstlich erzeugte Schwarze Löcher sind der letzte Schrei bei Weltuntergangs-Szenarien. Und da hätte wohl auch die Natur so ihre Probleme mit, wenn da was schief läuft
Quelle: Die Menschheit ist der Natur scheißegal...; golem forum
Quelle: Die Menschheit ist der Natur scheißegal...; golem forum