
Ignore-this: b8259d81c6f15949baf5a5c77bad0a4e darcs-hash:20090516014507-bd074-49f74e30e18d7d705bb8b11400a4fec514e71358.gz
83 lines
2.4 KiB
Python
83 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: iso-8859-15 -*-
|
|
"""
|
|
etat_imprimante.py
|
|
|
|
Récupère, filtre et formate l'état actuel de l'imprimante
|
|
|
|
Copyright (c) 2006 by www.crans.org
|
|
|
|
"""
|
|
|
|
import sys
|
|
sys.path.append("/usr/scripts/gestion")
|
|
|
|
from hptools import snmp
|
|
from config import impression
|
|
|
|
class ErreurCommunication(Exception):
|
|
"""Si une erreur est survenue lors de la communication avec l'imprimante"""
|
|
pass
|
|
|
|
def etat():
|
|
exec ("etat_%s()" % impression.imprimante)
|
|
|
|
def etat_canon():
|
|
try:
|
|
liste_msg = []
|
|
comm = snmp(host="imprimante.adm.crans.org", version="1", community="public")
|
|
for oid in [".hrPrinterStatus.1", ".hrPrinterDetectedErrorState.1"]:
|
|
msg = comm.get_string(oid)
|
|
if msg: liste_msg.append(msg)
|
|
except Exception,err:
|
|
liste_msg.append("[%s]" % unicode(err))
|
|
return liste_msg
|
|
|
|
def etat_laserjet():
|
|
""" Renvoie une liste des differents ecrans actuels du display de l'imprimante """
|
|
_dico = {
|
|
u"READY": u"Prête",
|
|
u"PrÁt": u"Prêt",
|
|
u"Pr menus, appuy \x1e": u"",
|
|
u"Powersave activÅ": u"En veille",
|
|
u"Verification": u"Vérification imprimante",
|
|
u"imprimante": u"",
|
|
u"PrÅchauffage": u"Préchauffage",
|
|
u"Traitement de la": u"Impression en cours",
|
|
u"tÀche du bac 4": u"",
|
|
u"COMMANDER CARTOUCHE": u"",
|
|
u"COMMANDER KIT NETTOY": u"",
|
|
u"COMMANDER FOURNIT.": u"",
|
|
u"CYAN": u"",
|
|
u"MAGENTA": u"",
|
|
u"JAUNE": u"",
|
|
u"NOIR": u"",
|
|
u'Pr aide appuyer \x1f': u"",
|
|
u'13.12.12 BOURRAGE DS':u"Bourrage papier",
|
|
u'ACCESSOIRE GAUCHE':u"",
|
|
u'13.03.00 BOURRAGE':u"Bourrage papier",
|
|
u'DS TRAPPE SUP DROITE':u"",
|
|
u'COMM TAMB. NOIR':u"",
|
|
u'PAGES REST.': u"",
|
|
}
|
|
|
|
liste_oid = ["mib-2.43.16.5.1.2.1.1","mib-2.43.16.5.1.2.1.2","mib-2.43.16.5.1.2.1.3","mib-2.43.16.5.1.2.1.4","mib-2.43.16.5.1.2.1.5"]
|
|
try:
|
|
comm = snmp(host="laserjet.adm.crans.org",version="1",community="public")
|
|
liste_msg = []
|
|
for oid in liste_oid:
|
|
msg = comm.get_string(oid).decode("ISO-8859-1")
|
|
for k in _dico.keys():
|
|
if k in msg: msg = _dico[k]
|
|
if msg: liste_msg.append(msg)
|
|
except Exception,err:
|
|
raise ErreurCommunication, str(err)
|
|
return liste_msg
|
|
|
|
def enregistre(filename="/usr/script/impression/imprimante.etat"):
|
|
l = etat()
|
|
fichier = open(filename,'w')
|
|
for x in l:
|
|
fichier.write(x+"\n")
|
|
fichier.close()
|
|
|