Deux pc et un cable serie

Signaler
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009
-
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009
-
Bonjour à tous,

J'aimerais faire passer une chaine de caractère via le port Com1 de mes deux machines.

Je dispose donc de  VB6.0 d'un cable serie femelle femelle et de deux pc disposant chaqu'un d'un port série male.

Pourriez vous me donnez le code d'envoie et de réception ?

J'ai trouvé ça sur le net :

http://www.siteduzero.com/tutoriel-3-33300-vb6-0-et-le-port-serie.html

je l'applique à la lettre en copiant collant les codes et lorsque je click sur envoie et que l'autre pc et censé recevoir rien ne se passe :s malgrès le Msgbox(Tampon) que j'ai rajouté :s

Première fois que je fais du VB de ma vie ^^ me lancé pas de pierre :)

Cordialement,

11 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
As tu bien nommé ton controle MsComm avec le bon nom, tel que mentionné dans le code ("MsComm")

?
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

oui oui bien sur ^^

Enfaite je lance l'exe sans soucis mais que dalle ^^

-----------------
Envoie
---------------
Private Sub cmdEnvoi_Click()
 MSComm.CommPort = 1 'On définit le port série qui sera utilisé (ici Port 1)
 MSComm.Settings = "9600,n,8,1" 'On définit ici les paramètres de transmission (je les explique dans un instant).
 MSComm.PortOpen = True 'Ici on ouvre le port de communication
 MSComm.Output = "M" 'Maintenant on envoie nos informations, ici le caractère "M"
 MSComm.PortOpen = False 'Et pour finir on ferme le port de communication
End Sub

--------------
Reception
-----------

Dim Tampon As String 'Déclaration des variables utiles


 
Private Sub MSComm_OnComm() 'On attend une activité sur le port
Select Case MSComm.CommEvent 'On détermine de quel type d'activité il s'agit
Case comEvReceive 'S'il s'agit de la réception de données...
Tampon = MSComm.Input '...on les stocke dans notre variable
MsgBox (Tampon)
End Select
End Sub

j'ai rajouté le composant MScomm a la réception aussi

Voila tout mon code y est
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
en haut du code de tes Forms, ajoutes :

Option Explicit

et lance tes projets en pressant Ctrl+F5
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
pourquoi le série, au fait, pas mieux de jouer avec le réseau ? (Winsock)
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

Rien de plus :(
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

Le port serie car apres je dois faire communiquer une balance electronique qui n'a qu'un port série avec le pc mais je galère rien qu'a faire parler deux pcs :O
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

Je tiens a préciser que l'exe envoie.exe s'execute sur le pc1 et le recevoir.exe sur le pc2.

D'ou ma question ne dois je pas ouvrir aussi le port com1 sur le recevoir ? malgres que les deux pcs sont sur le com1 ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
ben fais le test ^^ j'ai pas de quoi tester sous la main.

a voir peut etre dans d'autres sources sur ce site VbFrance
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

Bonne nouvelle j'avais vu juste :)

Dim tampon, port As String
Dim instant
Dim timeout
Dim Texte3 As String


Private Sub Cmdenvoi_Click()
For i = 0 To 256
    Texte3 = Texte3 & "Je suis content d'avoir réussi à faire ce travail dans l'après midi car c'est la première fois que je travail sur du port serie et que le vb j'en fais jamais" & Str(i)
Next i
MSComm1.Output = Texte3 '& vbCrLf
Text2.Text = "En attente d'une réponse"
End Sub


Private Sub Command3_Click()


 port = 1
    MSComm1.Settings = "9600,n,8,1"
    '------
    'de sont les paramètres courants : 9600 bps, pas de parité , 8 bits de données, 1 bit de stop
    '------
    MSComm1.Handshaking = comRTS
    '----
    'hendshake RTS. On peut essayet comXonXoff ou comNone
    MSComm1.RThreshold = 1
    MSComm1.InputMode = comInputModeText
    MSComm1.InputLen = 4096
    MSComm1.CommPort = port
    MSComm1.PortOpen = True
    Command3.Enabled = False


End Sub


'****************
'communication entre le port comm et le pc
'****************


Private Sub MSComm1_OnComm()


    Select Case MSComm1.CommEvent
        Case comEvReceive
            tampon = tampon + MSComm1.Input
            Text2.Text = tampon
        End Select
End Sub












Voici le code final a mettre en exe pour que sa marche :)

Ensuite lancé l'exe sur les deux pc et cliqué sur envoie et ma jolie phrase s'enverra ( on peut utilisé une zone de texte etc.. par la suite ^^ )

Merci à toi
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
bien.

"Voici le code final"
ben, en fait, j'ai quelques remarques à faire dessus....


Type tes variables tampon, instant et timeout

déclare les dans les Sub où elles sont utilisées, pas en global...

Select Case MSComm1.CommEvent
Case comEvReceive
pas utile un Select pour un seul Case...
If MSComm1.CommEvent = comEvReceive Then

End If

évite d'utiliser les propriétés par défault:
utilises Texte3.Text et non Texte3

donne des noms plus "parlant" a tes controles que Command3

tampon = tampon + MSComm1.Input
n'utilise pas "+" pour concaténer, mais "&" :
tampon = tampon & MSComm1.Input
Messages postés
9
Date d'inscription
dimanche 30 septembre 2007
Statut
Membre
Dernière intervention
26 octobre 2009

ok merci des conseils :) vous m'avez été très utiles merci VBfrance :) et surtout toi Renfield ^^