jerome57440
Messages postés40Date d'inscriptionlundi 3 mars 2008StatutMembreDernière intervention 8 juillet 2008
-
3 mars 2008 à 16:41
jerome57440
Messages postés40Date d'inscriptionlundi 3 mars 2008StatutMembreDernière intervention 8 juillet 2008
-
4 mars 2008 à 13:00
bonjour,
je suis étudiant actuelement en stage et je dois développez une application permettant de lire et d'écrire sur une memoire grace au port série.
La première étape consiste a lire les données
Voici le code :
Private Sub Command1_Click()
Dim Tampon$
MSComm1.CommPort = 1
MSComm1.Settings = "9600,o,8,1"
MSComm1.InputMode = comInputModeText
MSComm1.SThreshold = 1 ' Pour l'emission
MSComm1.PortOpen = True
MSComm1.InputLen = 0
Tampon$ = Tampon$ & MSComm1.Input
Text1.Text = Tampon
MSComm1.PortOpen = False
End Sub
Lors du click sur le bouton, un message d'erreur apparait avec l'erreur 8005 qui me dit que le port est deja ouvert.
Comment puis-je faire pour remédier à ce problème.
lesdis
Messages postés403Date d'inscriptionmercredi 19 avril 2006StatutMembreDernière intervention 7 août 2020 3 mars 2008 à 17:05
Bonjour,
Si tu reçois un message d'erreur comme quoi ton port est déjà ouvert, c'est qu'une autre application doit déjà l'utiliser. Soit tu trouves l'application fautive et tu la ferme, soit tu choisis un autre port de ton ordinateur.
Si je ne dis pas de bétises, MSComm n'est capable d'utiliser que les 16 premiers port série et je n'ai pas trouver a ce jour une fonction qui te permet de retrouver les port comm existant sur la machine.
Donc soit tu met en dur une autre valeur que le com 1 ou bien tu fais une boucle qui test les 16 valeurs en gérant les exceptions.
Toutefois, si le langage n'est pas imposé, je te conseille de passer a vb.net qui possède l'objet serialport bien plus complet.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 3 mars 2008 à 18:36
"...Si tu reçois un message d'erreur comme quoi ton port est déjà ouvert, c'est qu'une autre application doit déjà..."
Ou tout simplement cette application qui a plantée lors des essais et qui donc à laisser le port ouvert.
En général on prévoit une commande pour ouvrir le port, une pour dialoguer sur le port et une autre pour le fermer. Ne serait-ce que durant la période de débogage.
Comme ça on peut ouvrir ou fermer le port indépendamment de tout autre partie du code.
---- Sevyc64 (alias Casy) ----# LE PARTAGE EST NOTRE FORCE #
jerome57440
Messages postés40Date d'inscriptionlundi 3 mars 2008StatutMembreDernière intervention 8 juillet 2008 3 mars 2008 à 19:59
G TOUT ESSAYER IL n'y aps d'autre programme qui utilise les ports.
Il n'y a qu'un port serie sur le PC.Ce n'est pas pendant le debogage c'est a l'instant ou je clique sue le bouton
Je suis totalement perdu depuis ce matin je suis dessus.
Le language est imposé c'est du VB sur VB6.
Vous n’avez pas trouvé la réponse que vous recherchez ?
FRatvks
Messages postés52Date d'inscriptionmercredi 12 mars 2003StatutMembreDernière intervention 2 octobre 2009 3 mars 2008 à 20:45
Salut,
Ce que veux dire Casy c'est que si tu as déja ouvert ton port com a un autre moment (en deboggage pa exemple) et que si t'as planté, ton port reste ouvert et donc inaccessible pour une autre appli.......
Pour etre sûr d'etre "propre" il te faut relancer ton PC
Cela dit moi pour faire des test je crée un bouton pour ouvrir mon port, un pour le fermer et un pour faire les transmissions...
Quand tout marchera bien tu pourra te lancer a tout faire d'un coup mais comme on dit : pour apprendre a courrir il faut d'abort savoir Marcher !
jerome57440
Messages postés40Date d'inscriptionlundi 3 mars 2008StatutMembreDernière intervention 8 juillet 2008 4 mars 2008 à 08:52
voici le code avec les different bou ton: toujours le meme probleme de port:
Private Sub Command1_Click() 'Bouton ouverutre port
MSComm1.PortOpen = True
If MSComm1.PortOpen = True Then
Command1.BackColor = &HC000&
Else
Command1.BackColor = &HFF&
End If
End Sub
Private Sub Command2_Click() 'Bouton lecture
Tampon = Tampon & MSComm1.Input: DoEvents
If Tampon <> "" Then
Text1.Text = Tampon
Command2.BackColor = &HC000&
Else
Command2.BackColor = &HFF&
End If
End Sub
Private Sub Command3_Click() 'Bouton fermeture port
MSComm1.PortOpen = False
If MSComm1.PortOpen = False Then
Command3.BackColor = &HC000&
Else
Command3.BackColor = &HFF&
End If
End Sub
Private Sub Form_Load()
Dim Tampon As String
'MSComm1.PortOpen = False
MSComm1.CommPort = 1 'Definition des paramètres de configuration du port série
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeText
MSComm1.SThreshold = 1
MSComm1.InputLen = 0
End Sub
jerome57440
Messages postés40Date d'inscriptionlundi 3 mars 2008StatutMembreDernière intervention 8 juillet 2008 4 mars 2008 à 13:00
c bon jai trouver le pb
c activesync qui utilisait mon port Com1
Lorsque j'efectue une lecture et que je ve l'afficher dans une textbox rien ne s'affiche pourtant des donnees arrive bien du port serie