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

VB 6 et antérieur Discussion :

Problème réception avec MsComm


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Jap
    Jap est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 78
    Par défaut Problème réception avec MsComm
    Bonjour,

    Je réalise actuellement un programme permettant de récupérer des codes barres scannés par plusieurs lecteur ceode barre reliés à des ports com.

    Pour cela j'utilise MsComm.

    Voici les paramètres pour mon programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        With MSComm(nbport)
          .CommPort = rst("NoPortCom")
          .Handshaking = 2
          .RThreshold = 1
          .RTSEnable = True
          .Settings = "9600,n,8,1"
          .SThreshold = 1
          .PortOpen = True
        End With

    Et l'utilisation MsComm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub MSComm_OnComm(Index As Integer)
     
     
      Select Case MSComm(Index).CommEvent
     
        Case comEvReceive
     
            Pause 0.5
     
            tampon = MSComm(Index).Input
     
            Call Traitement(tampon, Index) 'traitement données
        Case comEvSend ' il y a des caractères à envoyer
     
        Case comEvEOF 'on a reçu le caractère EOF
      End Select
     
    End Sub

    Sachant que dans la fonction traitement je récupère les infos No port comm, l'article scanné, la date et l'heure et j'enregistre dans une base.

    Plusieurs lecteurs code barres scanneront ensuite automatiquement des codes barres. Le problème est le suivant. Lorsque je scanne des articles les uns après les autres lentement, il n'y a pas de problème. Par contre si 2 articles sont scannés quasiment en même temps, ce qui pourra arrivé, tout n'est pas enregistré dans la base. Le scannage est trop rapide par rapport à l'enregistrement. J'ai essayé de ne pas enregistrer dans une base mais dans une liste. C'est un peu mieux. Mais il loupe encore des infos. Est ce que quelqu'un aurait une idée géniale pour résoudre mon problème.

    Merci d'avance.

  2. #2
    Jap
    Jap est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 78
    Par défaut
    Donc personne n'a jamais eu ce genre de problème ? c'est embêtant ça .

  3. #3
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Et stocker les informations dans un tableau-mémoire, tu as essayé? Il n'y a pas beaucoup plus rapide que ça, et à la fin de tes lectures, tu enregistres tout dans ta base.
    Et le
    il sert à quoi? Ce n'est pas à cause de lui que tout est ralenti?

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Il ne faut pas jouer avec les délais (si petits soient-ils) car il y a toujours un risque de simultanéité.

    Je ne sais pas comment réagissent les scanners quand on leur envoie un signal "pas prêt" (désolé je n'ai plus en tête les noms des signaux RS232) mais je pense que c'est dans cette direction qu'il faudra aller.

    Autrement dit, dès qu'on reçoit un signal d'un des scanners, on bloque les autres et on les libère quand on a fini le traitement.

    J'espère qu'ils possèdent un buffer et renvoient les données quand la ligne est libre.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Jap
    Jap est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 78
    Par défaut
    Alors pour le pause, si je l'enlève ça ne change rien. Et pour le fait de bloquer les scanners, je vais essayer ça.

Discussions similaires

  1. Problème de réception avec TwidoSuite
    Par galletbea dans le forum Automation
    Réponses: 0
    Dernier message: 03/06/2014, 15h41
  2. Problème réception avec socket
    Par toufik135 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 10/01/2014, 09h40
  3. problème de réception avec serialPort
    Par jbjean dans le forum C#
    Réponses: 1
    Dernier message: 04/11/2013, 16h24
  4. Problème réception email avec pop 1&1
    Par filiplarlibe dans le forum 1&1
    Réponses: 1
    Dernier message: 02/01/2010, 02h31
  5. Problème réception de fichier FTP avec IndyFTP
    Par bremer dans le forum Web & réseau
    Réponses: 2
    Dernier message: 29/09/2009, 12h27

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