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:
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:
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.