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 :

accès à un port parallèle émulé


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 16
    Par défaut accès à un port parallèle émulé
    Bonjour!
    J'ai un sérieux problème impliquant un port parallèle comme le laisser suggérer le titre

    Je possède un portable, qui ne dispose en tout et pour tout que de deux ports usb. Pas de ports parallèles ni série donc. J'ai acheté un adaptateur usb->série+parallèle pour pallier à celà.
    J'ai en effet besoin de la liaison parallèle pour communiquer avec un montage de ma propre fabrication. J'utilise le pilote inpout32.dll et ses fameuses fonctions Out32 et Inp32. Mais le seul problème est qu'il me faut une adresse pour utiliser ces fonctions, et que je n'arrive pas à mettre la main sur celle de mon adaptateur.

    Je connais bien le nom du port (LPT3 par défaut) mais sans l'adresse je suis impuissant.

    Ma question est donc double:
    -Y a-t-il un moyen de connaître l'adresse d'un adaptateur usb->parallèle?
    -Y a-t-il une librairie qui se contenterait du nom du port (LPTx) et passerait par l'API Windows pour le reste?

    Merci d'avance, je trime là dessus depuis des jours.

    Immerczeck

  2. #2
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Pour autant que je sache tu peux ouvrir un flux sur le port en utilisant la fonction API CreateFile("LPT1", ...) Puis utiliser le handle retourné pour créer un Stream.

    Si tu as besoin de détecter l'adresse du port, tu dois utiliser une requête WMI je pense (je l'ai jamais fait concrètement.)
    Si c'est la meme chose que le port série (j'ai pas de port parrallèle), l'information de l'adresse se trouvera dans WIN32_AllocatedAddress sous forme de StartingAddress=<adresse en décimal>.

    Si tu vas dans le gestionnaire de périphérique puis que tu vas dans les propriétés de ton port, tu regardes l'onglet ressource, tu as cette information en hexadécimal.

    Si tu prends le WMI, ce sera utile :
    http://www.shareup.com/downloading-45595.html

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    sinon, normalement, il existe des "drivers" pour "émuler" le port COM (série) sur les PC portables.

    En utilisant de "tels" drivers, tu peux utiliser pleinement la classe SerialPort pour gérer ta communication port série (même si au final, ca passera pas un port USB,
    le transfert sera gérer par le driver et sera transparent pour toi

    (J'ai déja utilisé cela pour dialoguer avec une carte éléctronique et ca fonctionnait nickel)

    The Monz, Toulouse

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 16
    Par défaut
    Bonjour, et merci de vos réponses.

    J'avais déjà regardé dans le gestionnaire de périphériques, ni le port COM ni le port LPT virtuels ne présentaient l'onglet "Ressources", je n'ai donc pas pu y piquer l'adresse.
    J'ai fait un tour dans WMI Explorer, il n'y a rien dans AllocatedResource qui concerne le port parallèle. Je peux trouver plusieurs PortResource IRQResource et DeviceResource concernant mon port série virtuel (COM3), mais rien sur LPT3.

    J'ai déjà lu en plusieurs endroits de la toile que gérer le port série est beaucoup plus facile à utiliser depuis c# 2.0 avec la classe SerialPort, mais le problème est que je ne sais absolument pas comment communiquer avec ce port.

    Le dernier étage de mon montage est un comparateur, j'ai donc du +/-5V ou +5V/0V, que je pensais envoyer au port comme suite d'états logiques, mais j'ai cru comprendre qu'il fallait tout un appareillage pour intercaler des bits de start et de stop, ce qui est d'un niveau électronique bien trop élevé pour moi (d'autant qu'il faudrait une horloge).
    J'ai aussi vu qu'il existait un mode synchrone, qui pourrait convenir, mais je n'ai pas trouvé de bon exemple de code sur internet.

    Immerczeck

  5. #5
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Si t'essaie d'ouvrir en CreateFile ça fonctionne ou pas du tout?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 16
    Par défaut
    D'après ce que j'ai pu lire depuis sur le net, il semble impossible sinon très dur d'adresser un port parallèle émulé.
    Je suis un peu pris par le temps, sans quoi j'aurais tout de même creusé la piste, mais je préfère me diriger vers le port série, qui s'émule parfaitement.
    Mais qu'à celà ne tienne, j'ai aussi un problème avec celui-là, je pense plus accessible, je crée un nouveau post pour garder un peu de clarté ^^

Discussions similaires

  1. accés au port paralléle
    Par meryflower dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/12/2009, 11h01
  2. [Série] Accès au port série sous linux
    Par ghost dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2007, 10h43
  3. Accès au port parallèle en C++
    Par boudtoufle dans le forum Visual C++
    Réponses: 1
    Dernier message: 15/06/2007, 11h46
  4. Accès au port parallèle
    Par fab56 dans le forum Delphi
    Réponses: 6
    Dernier message: 01/04/2007, 11h48
  5. Accès au ports
    Par YéTeeh dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/07/2002, 14h54

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