#!/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") import hptools _dico = { 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"CYAN": u"", u"MAGENTA": u"", u"JAUNE": 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"", } class ErreurCommunication(Exception): """Si une erreur est survenue lors de la communication avec l'imprimante""" pass def etat(): """ Renvoie une liste des differents ecrans actuels du display de l'imprimante """ 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 = hptools.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") msg = _dico.get(msg, msg) if msg: liste_msg.append(msg) except Exception,err: raise ErreurCommunication, str(err) return liste_msg