Deux pc et un cable serie

wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009 - 8 juil. 2009 à 14:04
wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009 - 8 juil. 2009 à 19:34
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 juil. 2009 à 14:20
As tu bien nommé ton controle MsComm avec le bon nom, tel que mentionné dans le code ("MsComm")

?
0
wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009
8 juil. 2009 à 14:25
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 juil. 2009 à 14:34
en haut du code de tes Forms, ajoutes :

Option Explicit

et lance tes projets en pressant Ctrl+F5
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 juil. 2009 à 14:36
pourquoi le série, au fait, pas mieux de jouer avec le réseau ? (Winsock)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009
8 juil. 2009 à 14:41
Rien de plus :(
0
wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009
8 juil. 2009 à 14:43
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
0
wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009
8 juil. 2009 à 14:53
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 ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 juil. 2009 à 15:27
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
0
wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009
8 juil. 2009 à 16:17
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 juil. 2009 à 16:26
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
0
wouistitie Messages postés 9 Date d'inscription dimanche 30 septembre 2007 Statut Membre Dernière intervention 26 octobre 2009
8 juil. 2009 à 19:34
ok merci des conseils :) vous m'avez été très utiles merci VBfrance :) et surtout toi Renfield ^^
0
Rejoignez-nous