IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

avoir l'état d'une imprimante


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut avoir l'état d'une imprimante
    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

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Bien le bonjour chez vous
    Jowo

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    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

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    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

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    sur le port usb,

    il ya le ficher /dev/usblp0 qui se crée lorsque l'imprimante est connectée

    Merci beaucoup

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    est-ce que quelqu'un aurait-il un tyau pour moi

    Merci.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    Visiblement personne n'a d'idée sur ce sujet

  8. #8
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Une petite amorce en pseudo-code pour te guider vers la solution

    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);
       }
    Il faut en plus avoir la documentation du driver USB pour connaître ce que peut te retourne ioctl.
    Bien le bonjour chez vous
    Jowo

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    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

  10. #10
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Peux-tu nous décrire le scénario d'une impression?
    Bien le bonjour chez vous
    Jowo

  11. #11
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    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.

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    Déjà fonctionnellement 2 erreurs :

    Citation Envoyé par ryadh.naouar
    ....
    Si l'ouverture du fichier échoue, la connexion avec le client est fermée...,
    .....
    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.

    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

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    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

  14. #14
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    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

  15. #15
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    oui c'est le protocole ipp

Discussions similaires

  1. Imprimer un état dans une imprimante Fichier
    Par olaf_le_preux dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/12/2008, 19h58
  2. Connaitre l'état d'une imprimante.
    Par Shypster dans le forum VB.NET
    Réponses: 1
    Dernier message: 08/01/2008, 06h09
  3. savoir l'état d'une imprimante réseau par SNMP
    Par ryadh.naouar dans le forum Développement
    Réponses: 3
    Dernier message: 20/02/2007, 13h06
  4. remonter l'état d'une imprimante
    Par ryadh.naouar dans le forum Réseau
    Réponses: 18
    Dernier message: 20/02/2007, 08h21
  5. Comment peut on avoir le Canvas d'une imprimante + liste des jobs
    Par YURI2006 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 19/04/2006, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo