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

Windows Discussion :

Détection d'un front sur la broche RI d'un port série


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut Détection d'un front sur la broche RI d'un port série
    Bonjour,

    J'aimerais détecter un signal émis sur la broche 9 (RI Ring Indicator) d'un port série. J'ai fait le programme en utilisant les fonctions de l'API Win32 :
    CreateFile
    SetCommMask
    WaitCommEvent
    etc.

    mais çà ne fonctionne pas. Impossible de détecter l'évènement EV_RING.

    Je me demande donc si cela n'est pas dû à une limitation du driver Windows. En effet, le signal que je voudrais détecter est un créneau qui a une amplitude de 3,6V, dure 1,25 microsecondes et apparaît toutes les secondes.
    Ainsi, je ne sais pas trop comment est géré l'évènement EV_RING :
    - correspond-il à une "interruption" ?
    - est-il remis à zéro lorsque le signal sur la broche RI repasse à 0 ?

    Sinon, savez-vous comment je pourrais détecter ce front sur le port série ? Quelle méthode utiliser sous Windows bien sûr ?

    Merci.

    PS : n'ayant pas eu de réponse sur le forum Windows Système et logiciels j'ai reposter le même message ici espérant avoir plus de chances. Encore merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    Bonjour,

    Je désespère, pas de réponse... et je n'arrive pas à trouver ce que je cherche sur le net.

    Quelqu'un connait-il une façon de générer une interruption lors d'un changement de front sur une broche d'un port COM ?
    Aidez-moi svp.

    merci.

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    tu as un exemple d'implementation dans la faq visual C++.
    http://c.developpez.com/faq/vc/?page...WithSerialPort



  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 65
    Points
    65
    Par défaut
    Salut,

    Merci farscape pour le lien mais j'avais déjà codé une appli dans le même style en utilisant l'API Win32 comme je le disais dans mon premier post mais je n'obtenais jamais d'évènement EV_RING. J'ai quand même testé ton programme mais le résultat est identique. Avec l'API Win32 j'arrive juste à détecter l'évènement EV_RXCHAR lorsque le récepteur GPS connecté au port série envoie sa position.

    Le réel problème est que le signal qui arrive sur la broche RI (Ring Indicator) ne dure que 1,25 microsecondes (cf. figure ci-dessous). Donc, je ne suis pas sûr que la résolution du driver série de Windows soit assez bonne pour le détecter. Il s'agit d'un signal de synchronisation provenant d'un récepteur GPS et je souhaiterais déclencher une fonction à chaque fois qu'il apparaît.

    Je me demande donc si le driver Windows scrute le port série périodiquement et mémorise l'état des entrées dans le masque des évènements ? Si tel est le cas, je pense qu'il est fort probable que mon signal ne soit jamais détecté.

    Avez-vous d'autres idées ? Dois-je aller trifouiller du côté du driver ou de l'API native Windows ? Merci pour votre aide.

    Voici l'allure du signal enregistré à l'oscilloscope :

    Légende :
    axe X : 250 nanosecondes par division
    axe Y : 2 Volts par division



    Merci.

Discussions similaires

  1. Détection de service Bluetooth sur un serveur
    Par belabyad dans le forum Java ME
    Réponses: 1
    Dernier message: 08/09/2008, 01h07
  2. Détection de flux RSS sur un site web
    Par Damien69 dans le forum Développement Web en Java
    Réponses: 6
    Dernier message: 20/07/2008, 12h03
  3. Détection de zones géographiques sur une carte
    Par BoBy9 dans le forum SIG : Système d'information Géographique
    Réponses: 11
    Dernier message: 30/03/2008, 23h44
  4. Détection d'un palier sur un signal
    Par MottetCCSF dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 12/06/2007, 11h41
  5. Détection d'un front sur la broche RI d'un port série
    Par G3G3 dans le forum Ordinateurs
    Réponses: 2
    Dernier message: 19/08/2005, 17h14

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