Communication VB6.0 et PIC

Signaler
Messages postés
4
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
2 juin 2008
-
Messages postés
4
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
2 juin 2008
-
je tiens à vous remercier pour votre collaboartion concernat la communication entre VB6.0 et port série par (MScomm).mais j'ai encore quelques problèmes .
1- est ce que c'est possible de faire la communication entre 2 PC de telle façon que chaque PC peut être un émetteur et un récepteur en même temps ? càd est ceque je peux mettre le programme de l'émetteur et du récepteur dans un même projet?
2- réellement, je veux faire la communication entre un microcontroleur et le PC ( VB6.0) , donc ce que je viens de faire c'est une simulation de la communication entre le PC et le microcontroleur.le probleme se pose lorsque le microcontroleur emet un message à travers (RX ou TX) et que ce message doit être lu par le PC à travers port série et après sa lecture le VB 6.0 doit activer un changement de couleur d'une icone ou bien changer le mot écrite dans l'icône ( par exemple icone en rouge : ça représente un moteur hors tension, et lorsque un message est envoyer par le pic , le VB6.0 doit changer la couleur de l'icone (par exemple de couleur  vert: moteur en fonctionnement) . est ce que vous povez m'aidez concernant ce programme , c'est très urgent !!!!! et merci

2 réponses

Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
Bonjour,

est ce que c'est possible de faire la communication entre 2 PC de telle façon que chaque PC peut être un émetteur et un récepteur en même temps ? càd est ceque je peux mettre le programme de l'émetteur et du récepteur dans un même projet?Oui c'est possible. Chaque pc peut etre emetteur et recepteur, c'est le principe d'un chat...

2- réellement, je veux faire la communication entre un microcontroleur et le PC ( VB6.0) , donc ce que je viens de faire c'est une simulation de la communication entre le PC et le microcontroleur.le probleme se pose lorsque le microcontroleur emet un message à travers (RX ou TX) et que ce message doit être lu par le PC à travers port série et après sa lecture le VB 6.0 doit activer un changement de couleur d'une icone ou bien changer le mot écrite dans l'icône ( par exemple icone en rouge : ça représente un moteur hors tension, et lorsque un message est envoyer par le pic , le VB6.0 doit changer la couleur de l'icone (par exemple de couleur  vert: moteur en fonctionnement) .Peux-tu poster ton code ?

Merci

slb

---------------------------------------------------------------
Il faut beaucoup donner pour recevoir un tout petit peu...
---------------------------------------------------------------
Messages postés
4
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
2 juin 2008

bonjour lillith212,
code de l'émission et la réception ? voici ci joint le code application 1 pour l'émission et l'application 2 pour la réception , mais pour le code de changement de couleur je n'ai pas encore et je compte sur votre aide et merci.Code de l'appli App1<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

–  Placez un CommControl sur le formulaire
–  Placez une zone de texte et mettez la propriété MultiLine à True.
–  Placez un bouton de commande

–  Mettez le code suivant:

Private Sub Form_Load()
Form1.Caption = "App1"
With MSCOMM1 'configuration du port
.CommPort=1 'On utilise le port COM1:
.Handshaking = 2 'RTS
.RThreshold = 1
.RTSEnable = True 'mieux pour le port COM:
.Settings = "9600,n,8,1"
.SThreshold = 1
.PortOpen = True 'ouverture du port
End With

Command1.Caption = "&Send"
Text1.Text = "Ces données ont été envoyés via le port COM"
End Sub

Private Sub Command1_Click()
MSComm1.Output = Text1.Text
End Sub

Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'on ferme le port à la fermeture de l'appli
End Sub

Code de l'appli App2

–  Placez un CommControl sur le formulaire.
–  Placez une zone de texte et mettez la propriété MultiLine à True.
Redimensionner-le pour qu'il soit assez grand pour afficher plusieurs lignes de texte.

–  Mettez le code suivant:

Private Sub Form_Load()
Form1.Caption = "App2"
With MSComm1
.CommPort = 2 'on utilise le port COM2: car on utilise 1 PC avec 2 ports COM:
'si vous avez 2 PC, changez en .CommPort=1 !!!
.Handshaking = 2
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,n,8,1"
.SThreshold = 1
.PortOpen = True
End With
Text1.Text = ""
End Sub

Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'on ferme le port quand l'appli quitte
End Sub

Private Sub MSComm1_OnComm()
Dim InBuff As String

Select Case MSComm1.CommEvent
' On effectue la gestion des erreurs (cf. le modèle ci-dessus)
' Ici, on gère en fait pas grand-chose, mais c'est pour illustrer la démarche ;)

'liste des erreurs possibles
Case comEventBreak 'On a reçu un signal d’interruption (Break)
Case comEventCDTO ' Timeout de la porteuse
Case comEventCTSTO ' Timeout du signal CTS (Clear To Send)
Case comEventDSRTO ' Timeout du signal de réception
Case comEventFrame ' Erreur de trame
Case comEventOverrun ' Des données ont été perdues
Case comEventRxOver ' Tampon de réception saturé
Case comEventRxParity ' Erreur de parité
Case comEventTxFull ' Tampon d’envoi saturé
Case comEventDCB ' Erreur de réception DCB (jamais vu)

'liste des événements possibles qui sont, eux, normaux
Case comEvCD 'Changement dans la broche CD (porteuse)
Case comEvCTS 'Changement dans broche CTS
Case comEvDSR 'Changement dans broche DSR (réception)
Case comEvRing 'Changement dans broche RING (sonnerie)

'Chouette! on a reçu des données :)
Case comEvReceive
      tampon=MSComm1.Input
      Call Traitement(tampon) '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

Sub Traitement(tampon As String)
'cette procédure sert à traiter l’information reçue dans le tampon
     Text1.SelStart = Len(Text1.Text)
     Text1.SelText = tampon 'ici, on affiche le résultat dans un champ de texte
End Sub