#!/usr/common/bin/perl # Display characteristics of printers ######################################################### # 03/21/2001 rcc2 - Regroove for Informix ######################################################### #use diagnostics; use strict; use lib qw(. /usr/local/netprint/lib); use netprintdb; use npparams; use npstdlib; use npstatlib; use SNMP_Session; use BER; my(%pinfo); my(@printers); my($status, $printer); $| = 1; my($qinfo) = undef; if ( @ARGV <= 0 ) { my($msg); ($qinfo, $msg) = get_queueinfo(undef, '*'); if ( defined($msg) ) { die "Unable to get queue info ($msg)\n"; } @printers = sort keys %{$qinfo}; } else { @printers = @ARGV; } if ( $printers[1] ne 'test' ) { foreach $printer ( @printers ) { my($ip); if ( defined($qinfo) ) { $ip = $qinfo->{$printer}{printer}; next if $qinfo->{$printer}{virtual} eq 'Y'; } else { $ip = $printer; } print "Printer: $printer $ip\n"; my($si) = get_snmp_info($ip); print " Page count: $si->{pagecount}\n"; print " Model: $si->{real_model}\n"; print " Device status: $si->{device_status} ".bits($si->{device_status})."\n"; print " Printer status: $si->{printer_status} ".bits($si->{printer_status})."\n"; print " Error state: $si->{error_state} ".bits($si->{error_state})."\n"; print " Status: $si->{status} ".bits($si->{status})."\n"; print " Memory size: $si->{memory_size}\n"; print " Serial number: $si->{serial_no}\n"; my(@msgs) = err2str($si->{status}); foreach ( @msgs ) { print " $_\n"; } print "\n"; } } else { my($ip) = $printers[0]; while ( 1 ) { my($status) = get_status($ip); print "$status ".bits($status)."\n"; sleep(1); } } exit(0); ######################################################## sub bits { my($status) = @_; my($i, $bits); for ( $i = 1; $i <= $PSTAT_MAX; $i <<= 1 ) { $bits = ($i & $status ? '1' : '0') . $bits; } return($bits); } .