Module29
Messages postés25Date d'inscriptionvendredi 11 mai 2012StatutMembreDernière intervention21 janvier 2015
-
11 mai 2012 à 14:02
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024
-
25 mai 2012 à 20:31
Bonjour,
suite à mon programme en vb, qui envoi des commandes à une carte de simulation.
j'aimerai pouvoir récupérer la réponse des trames et pouvoir les afficher dans une cellule, ou dans une textbox ect..
Comment faire ? je vous envoie la partie de mon programme qui envoie les commandes sur la carte de simulation. (cela marche )
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMillisenconds As Long)
Private Sub CommandButton1_Click()
If MSComm1.PortOpen True Then MSComm1.PortOpen False ' si le bouton 1 = true alors on fait appel à la fonction test_liaison
Call test_liaison
End Sub
Sub test_liaison()
Dim trame_recue As String
Dim buffer As String
mouchard = 1
MSComm1.CommPort 3 'Comm1.CommPort Sheets("Test&Réglage & PV").Range("port").Value 'permet de recuperer le numero du port com
MSComm1.Settings = "9600,N,8,1" 'configuration liaison série ( tjrs la même chose ) ' 9600 bauds, pas de parité, 8 bits de données et 1 bit d'arrêt.
MSComm1.PortOpen = True 'ouverture du port pour debuter la communication
MSComm1.SThreshold = 1
MSComm1.InputLen = 0 ' lecture total du buffer
MSComm1.Output = ActiveSheet.Cells(6, 9).Value & vbCrLf ' envoi la saisie dans la cellule D2
Do
DoEvents 'indispensable sinon ça marche pas ( boucle de reception )
trame_recue = trame_recue & MSComm1.Input
Loop Until InStr(trame_recue, vbCrLf)
fin:
MSComm1.PortOpen = False 'on ferme le port afin de terminer la communication
If mouchard = 1 Then 'si une trame a bien été envoyée
MsgBox ("Opération terminée avec succès!") 'alors les caracteres sont bons et la communication est correcte
Else
MsgBox ("Test échoué... nombre de trame envoyée par le pc :" & mouchard) 'sinon pb dans les caracteres
End If
End Sub 'fin
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 25 mai 2012 à 20:31
Bonjour,
Regardes l’événement DataReceive (ou similaire) du MsComm.
Sinon, ton test me semble biaisé, car Mouchard=1 avant même de tester la réception.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site