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

C++ Discussion :

Probleme port parallele


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Responsable de projet
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut Probleme port parallele
    Bonjour, pour vous situer, j'ai fait une appli en QT pour ecrire et lire le contenue du registre de donnée du port parallele.

    Ayant developpé cela sous windows xp, j'ai fait appel a userport.
    J'ai fait une class port parallele au lycée qui fonctionnée bien, seulement chez moi elle fonctionne pas bien car windows me renvoi une exeption.

    J'ai donc cherché sur le net et j'ai recuperé une fonction inportb et outportb que j'ai mit dans mon appli QT et pareil, windows me renvoi une exception.

    Je précise que mon port LPT1 est activée, que le driver userport est chargée et que des fois l'appli va marcher 2 minutes puis aprés plantage.

    L'appli marche a merveille sur le pc de mon frere, egalement sous xp.

    les fonction inportb outportb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    unsigned char inportb (unsigned short _port)
    {   
    	unsigned char rv;
        __asm__ __volatile__ ("inb %1, %0" : "=a" (rv) : "dN" (_port));    
    	return rv;
    }
     
    void outportb (unsigned short _port, unsigned char _data)
    {   
    	__asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data));
    }
    et la class que j'avai faite mais que j'utilise pas dans l'appli Qt
    http://vgm.tuxfamily.org/spip.php?article15

    un screen de l'exception


    et eventuellement l'appli Qt avec le code sait on jamais
    http://www.megaupload.com/?d=6TW8LTCC

    Si vous avez une idée du probleme ça serait cool ?

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    Sais tu qu'il existe des lib pour les port serie avec Qt??
    http://qt.developpez.com/faq/?page=externes#portserie

  3. #3
    Membre confirmé
    Profil pro
    Responsable de projet
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut
    Ha je savais pas, mais le port parallele n'est pas un port série je pense pas que ça va le faire.

    De toute façon je doit pas avoir besoin de cela, ça marche ailleur pourquoi pas chez moi ?

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par iMaTh Voir le message
    Ha je savais pas, mais le port parallele n'est pas un port série je pense pas que ça va le faire.
    J'avoue que j'en sais rien
    c'était une info. Peut exist'il la meme chose pour les port parrallelel

  5. #5
    Membre confirmé
    Profil pro
    Responsable de projet
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut
    car dans une liason rs-232 je sait que les donnée sont envoyé un a un d'ou le serie et que tu as des bit start stop ect, le protocol de communication est plus complexe a assimilé qu'avec le port parallele.

    Le port parallele tu envoi les données en meme temps d'ou le parallele, et donc du coup tu recupere ce que tu as sur le port tu masque et tu sait ce qu'il y a c'est vachement plus simple tu as pas de trame a etudier ect.

    voila ce que j'en sait.

  6. #6
    Membre confirmé
    Profil pro
    Responsable de projet
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut
    bon j'ai tenter d'intercepter l'exception mais je n'y arrive pas.

    Quand j'utilise visual c++ et que j'execute mon code en mode debogage et qu'il tombe sur une exception il m'avertie, je clique sur continué, parfois plusieur fois et il fini par lire ou ecrire.

    Je me suis dit si j'intercep l'exception, et je boucle jusqu'a ce qu'il y ai plus d'exception ça pourrai le faire.
    Mais j'ai toujours l'exception je comprend pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	unsigned char val = 0;
    	etiquette1:
    	try {	
    		val = inportb (0x378);
    	} catch(...) {
    		goto etiquette1;
    	}
    L'exception est de type information je sait pas trop ce que cela signifie.

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Qu'est-ce que ceci fait dans la partie "SL et STL" du forum C++ ?
    Il n'y a absolument rien de standard ici.

    Sous tout OS moderne, les applications n'ont pas le droit d'accéder directement aux ports d'entrée/sortie du processeur: Ce privilège est réservé aux drivers.

    Quant au problème d'exception, cela vient du fait que la violation de privilège n'est pas une exception C++, mais une exception du système. Sous Windows, ça peux s'attraper avec du Structured Exception Handling (SEH), mais pas avec la gestion d'exceptions C++.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre confirmé
    Profil pro
    Responsable de projet
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut
    Au pire deplacez mon topic.

    Bon je vai regarder du coté des Structured Exception Handling (SEH), ça serait genial que j'arrive a récuperer l'exception ça pourrait eventuellement resoudre mon probleme.

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Mais ça ne te permettra pas d'utiliser le port parallèle depuis un programme user-mode. Cela te permettra seulement de ne pas planter fatalement quand l'exception EXCEPTION_PRIV_INSTRUCTION sera inévitablement déclenchée...

    PS: La stratégie "Essayer encore et encore jusqu'à ce que ça marche", ici, te donnera une boucle infinie: En effet, ça ne pourra jamais marcher...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre confirmé
    Profil pro
    Responsable de projet
    Inscrit en
    Décembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable de projet

    Informations forums :
    Inscription : Décembre 2005
    Messages : 97
    Par défaut
    Medinoc, ouai c'etait moyen comme idée, mais j'ai fouillé un peu dans le forum et un mec parlé de Inpout32.dll Inpout32.lib ect...

    J'ai testé, j'ai refait une rapide IHM en clr windows dans vc++ et ça marche d'enfer.

    Je marque un résolu mais je comprendrai jamais pourquoi mon pc aime pas userport ou allowIO.

    si jamais certain veulent la petite appli faite avec cette lib je peu la donner il faut juste me MP.

    Merci a tous pour votre aide.

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    inpout32 passe par un driver pour taper dans les I/O, ce qui devrait te permettre de faire ce que tu veux sans déclencher une violation de privilège.
    Mais si j'ai bien compris, il faut l'utiliser au moins une fois en tant qu'Admin pour que le driver s'installe.

    (m'étonnerait que ce genre de driver soit certifié...)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme gestion port parallele
    Par blondelle dans le forum Composants VCL
    Réponses: 7
    Dernier message: 18/04/2013, 14h51
  2. Réponses: 3
    Dernier message: 10/10/2005, 18h30
  3. precision sur le pilotage du port parallele
    Par fransouik dans le forum C++Builder
    Réponses: 18
    Dernier message: 26/02/2004, 13h28
  4. Utiliser le port parallele pour simuler un digicode
    Par nonoRedDevils dans le forum Assembleur
    Réponses: 8
    Dernier message: 30/12/2003, 13h23
  5. Port parallele
    Par Phoneus dans le forum C
    Réponses: 2
    Dernier message: 05/05/2002, 23h19

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