Analyseur (sniffer) de trames rs ( serie) et ip

Soyez le premier à donner votre avis sur cette source.

Vue 42 617 fois - Téléchargée 4 980 fois

Description

Ce prog montre comment utiliser le composant serial de Visual Basic 2005.
Parametrer le port com puis s'assurer qu' il est ouvert, ensuite tout ce qui rentre dans le port serie est afficher octet par octet sous forme décimale et hexadecimal.
On peut composer un numero de telephone grace a la commande AT et donc voir ce qui circule dans un modem RTC connecter au port serie.
Utile pour tout péripherique serie et fonctionne donc avec tout les protocoles comme par exemple le modbus, d'ou l'utilité de la fonction de calcul de CRC 16 modbus (merci (THX)à Andrzej Sokulski pour cette partie).

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Sirocooo
Messages postés
412
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
7 avril 2008
1 -
bon boulot 9/10
surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
-
Je te remerci, en faite quand j'ai ecrit ca j'avais pas mal de matos sous la main pour testé et ça aide bien Lol.
Si quelqu un le modifi ou apporte un une idée ou un plus quelquonque ce serait vraiment sympa de me le signaler par mail ou commentaire et de m'en faire profité
Merci d'avance
surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
-
Je viens de voir que j'ai laissé le preset de la tempo que j'ai utilisé a sa valeur par defaut 100 milliseconde, dans le cas d'envoi de requete de lecture modbus sur un API S7-200 aynat la bibliotheque modbus esclave qui tourne je vous conseille vivement de la passer a 1000 milliseconde car sinon il risque d' y avoir chevauchement ou decoupage des trames de reponse ....

Ps: Sirocooo, toi qui a vue la source tu pense qu elle est bien en niveau "initié" ou quelle serait plutot epert ou Debutant Lol
surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
-
Un petit suplement qui peut etre interressant et qui ma donné du fil a retordre .
Sur la form principale rajouter ceci :
Delegate Sub SetTextCallback(ByVal [text] As String)
Private Sub SetText(ByVal [text] As String)

' InvokeRequired required compares the thread ID of the
' calling thread to the thread ID of the creating thread.
' If these threads are different, it returns true.
If Me.TexteASCII.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {[text]})
Else
Me.TexteASCII.Text &= [text]
Me.TexteHEXA.Text &= [text]
End If
End Sub

Puis dans les deux evenement du composant serial1 :

Private Sub SerialPort1_ErrorReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialErrorReceivedEventArgs) Handles SerialPort1.ErrorReceived
SetText("Type d'erreur reçue : " & e.EventType.ToString & " : " & vbCrLf)
End Sub


Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
SetText("Type de données reçues : " & e.EventType.ToString & " : " & vbCrLf)
End Sub

vous me direz pourquoi ne pas remplir le texte directement dans les deux event, genre :

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
me.texteASCII.text &= e.EventType.ToString & " : " & vbCrLf)
End Sub

Hé bien essayer et vous vous appercevrai que vous aurez une erreure Multi-thread .
Pourquoi ? je ne sais pas mais cette solution resolve le probleme
cs_DragonHeart
Messages postés
38
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
16 octobre 2008
-
Bonjour,
J'ai justement une machine en RS232 je vais tester ta source ca pourra grandement m'aider ^^
Sinon pour les modifs que tu proposes pourquoi ne les rajoutes tu pas directement toi meme dans tes sources?
Je posterai un autre commentaire une fois que j'ai tester sur la machine en question en espérant que ca fonctionne (c'est une machine relativement vielle une PULLMAX 210 DMC)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.