Bonjour à tous,
j'ai besoin d'un code source C qui me permet de remonter à un client l'état d'une imprimante(bourrage papier, imprimante hors tension, ....), peut être que ceci peut se faire avec les socket.
Merci beaucoup
Bonjour à tous,
j'ai besoin d'un code source C qui me permet de remonter à un client l'état d'une imprimante(bourrage papier, imprimante hors tension, ....), peut être que ceci peut se faire avec les socket.
Merci beaucoup
Bonjour
Voir "Remonter état d'une imprimante"
Bien le bonjour chez vous
Jowo
Bonjour,
je l'ai vu, mais j'ai besoin d'un code en modèle client serveur, avec les ioctl et les sockets qui peut réellement détecter l'état d'une imprimante et la remonter à un client.
Cordialement
Sur le forum "C", il est de tradition de ne pas fournir de code dejà prêt.
Nous pouvons t'aider à en produire un.
Sur quel port (parallèle, sériel, usb, etc) ton imprimante est-elle connecté?
Bien le bonjour chez vous
Jowo
sur le port usb,
il ya le ficher /dev/usblp0 qui se crée lorsque l'imprimante est connectée
Merci beaucoup
Bonjour,
est-ce que quelqu'un aurait-il un tyau pour moi
Merci.
Visiblement personne n'a d'idée sur ce sujet
Une petite amorce en pseudo-code pour te guider vers la solution
Il faut en plus avoir la documentation du driver USB pour connaître ce que peut te retourne ioctl.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 usb = openDevice "/dev/usblp0"; // voir fonction open If (openDevice is success) { status = getIOStatuc(usb); // voir fonction ioctl if (getIOStatus is success) { print status of usb; } closeDevice(usb); }
Bien le bonjour chez vous
Jowo
Bonjour,
ceci j'arrive à le faire, avec l'ioctl j'ai récupéré l'ID de l'imprimante et son état(avce #include lp.h pour l'état)
mais mon problème c'est que je veux envoyer cet état à un Pc client et ceci je n'arrive pas à le faire
Encore merci
Peux-tu nous décrire le scénario d'une impression?
Bien le bonjour chez vous
Jowo
j'utilise le concept d'impression par socket, mon application doit être toujours à l'écoute des requêtes d'impression sur le port 9100, le port 9100 étant le port par défaut de l'impression par socket. À la reception d'une requête, l'application serveur d'impression tente d'ouvrir le fichier correspondant à l'imprimante (lpX, avec X = 0, 1, ... ). Si l'ouverture du fichier échoue, la connexion avec le client est fermée, sinon la requête sera traitée: l'application lit le contenu des paquets arrivants sur le port 9100 et les écrit dans le fichier correspondant à l'imprimante . Si l'écriture échoue, alors printServer tente d'écrire ATTEMPT_NBRE de fois dans le fichier correspondant à l'imprimante avec un interval de ATEMPT_DELAY second entre chaque tentative. Si l'ecriture echoue toujours au bout des ATTEMPT_NBRE tentatives alors la connexion avec le client sera fermée et le travail d'impression est perdu.
C'est la description fonctionnelle de mon projet, le problème c'est je n'arrive pas à remonter l'état de l'imprimante au PC client.
Merci.
Déjà fonctionnellement 2 erreurs :
Envoyé par ryadh.naouar
Avant de fermer la connection, avertir le client que cela a échoué et pourquoi (imprimante introuvable, imprimante occupée, etc..)
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
C'est ce que j'essai sans succès de faire, remonter l'état de l'imprimante au client.
Mais je be sais pas comment je pourrai le faires
Entre le client et ton application "Print Server", il doit bien avoir un protocole pour qu'il puisse communiquer?
Qui dit protocole, dit un échange de messages.... voir aussi le commentaire de souviron34
Bien le bonjour chez vous
Jowo
oui c'est le protocole ipp
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager