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

WinDev Discussion :

Récupération de valeurs port série mises dans une file via sEvénement


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 90
    Points
    90
    Par défaut Récupération de valeurs port série mises dans une file via sEvénement
    Bonjour à tous,

    Je mets en place l'utilisation d'une douchette de scan de codes barre.

    La douchette fonctionne, et je récupère correctement ce qu'elle lit via les fonctions sOuvre, sLit etc.
    Pour précision, cette récupération sans soucis se fait dans le thread principal.

    J'ai utilisé la doc et les exemples pour dépatouiller le code. L'exemple fourni ne m'inspirait pas : une boucle infinie de lecture du buffer du port com.
    Je voulais intercepter l'utilisation de la douchette pour déclencher le traitement.
    Pas de problèmes : sEvénement fait l'affaire.

    Là où ça se corse, c'est au niveau des valeurs renvoyées...
    Si je fais un simple sLit dans le thread principal, je récupère correctement les valeurs de la douchette, sur 13 positions (EAN13) : une seule ligne de 13 caractères dans le Trace, notamment.

    Par contre, si je passe par sEvénement, ça foire : la fenêtre de trace de la procédure appelée par sEvénement me renvoie deux lignes. L'une de 8 caractère la deuxième de 5 caractères complétés par <\>
    (Mis à par le <\>, les 8 et 5 cractères représentent bien la valeur du code barres)
    Toujours dans cette procédure, si j'affecte une variable globale, celle-ci ne retient que la deuxième ligne de 5 caractère sans <\>
    De même, la file que je remplis avec le sLit n'est affectée que par la 2e ligne de 5 caractères sans <\>

    J'ai lu que sEvénement utilise un thread qui lui est propre. Est-ce là l'explication ?

    Quelqu'un peut m'expliquer s'il existe une "subtilité" qui m'a échappé ?

    Bref, je serais tenté de dire que c'est une bizarrerie de WD, ou une absence de doc exhaustive...

    D'avance merci pour les réponses que vous m'apporterez.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 117
    Points : 90
    Points
    90
    Par défaut Piste d'(auto)résolution
    En fouillant sur le forum je découvre ceci : http://www.developpez.net/forums/d15...ture-port-com/

    Il semblerait que je ne suis pas le seul à développer 20 fois moins vite pour des bizarreries non documentées.

    J'ai donc placé un timer de 0.20 sec. dans la procédure appelée par sEvénement et... miracle les valeurs tracées sont correctes.

    Il faudra quand même que qqn m'explique pourquoi il faut créer cette latence...

    Donc, je ne mets pas tout à fait en résolu, au cas où une âme charitable apporterait une réponse "rationnelle".

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/12/2014, 13h57
  2. [Débutant] Récupération des valeurs d'un champ dans une section extensible
    Par Catarssis dans le forum InfoPath
    Réponses: 16
    Dernier message: 04/09/2012, 10h39
  3. Réponses: 3
    Dernier message: 27/02/2012, 15h36
  4. [WD12] Extraire valeur la plus présente dans une série de nombre
    Par le pingouin fou dans le forum WinDev
    Réponses: 7
    Dernier message: 13/07/2011, 06h11
  5. Réponses: 7
    Dernier message: 23/07/2010, 15h03

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