Accueil > > > UTILISATION DU PORT SÉRIE ET DÉTECTION D'UN MODEM RTC BRANCHÉ SUR L'ORDI
UTILISATION DU PORT SÉRIE ET DÉTECTION D'UN MODEM RTC BRANCHÉ SUR L'ORDI
Information sur la source
Description
A la base du projet je veux faire un programme qui communique avec un central téléphonique PABX, pour modifier afficher des informations. Pour cet exemple j'utilise juste une form appelée Form1 et un serialport appelé PSerie J'ai fait une petite classe qui permet de : Configurer un port COM Ouvrir un port COM en vérifiant, qu'il est bien fermé et que le Numéro de port est bien branché au modem Fermé un port COM Vérifier l'état du port COM. Vider Buffer EnvoyerCommande() permet d'envoyer une commande, d'attendre... (tempo en milliseconde) et de lire le buffer du port COM. TrouverModem() permet de d'envoyer une commande AT sur chacun des port, et si un Modem répond son nom et enregistré dans la variable NoPort a l'ouverture de l'objet, le tableau ListePorts et initialisé avec la liste des port disonible sur l'ordinateur je n'arrive pas a utiliser la fonction événement DataRecived(), c'est un problème de thread, j'ai comprends rien ca m'énerve si quelqu'un y arrive, qu'il me fasse signe.
Source
- Public Class Form1
-
- Dim MonPort As New portserie
-
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
-
- If (MonPort.TrouverModem()) Then
- MessageBox.Show("Connecter la ligne téléphonique sur le modem RTC branché sur le port " & MonPort.NoPort, "Modem Trouvé", MessageBoxButtons.OK, MessageBoxIcon.Information)
- Else
- MessageBox.Show("Aucun Modem RTC n'a été trouvé", "Boulette", MessageBoxButtons.OK, MessageBoxIcon.Error)
- End If
-
- End Sub
-
- End Class
-
-
- #Region "Classe port Serie"
- Public Class portserie
-
- Public ListePorts() As String = System.IO.Ports.SerialPort.GetPortNames 'liste des port COM disponible sur l'ordinateur
- Public NoPort As String = "NULL" 'Numero de port où est branché un modem RTC
- Public Debit As Integer = 9600 'delit en bits/sec sur le port COM
- Public NbBits As Integer = 8 'bits de donnée
- Public BitStop As String = IO.Ports.StopBits.One 'bit de stop
- Public Parite As String = IO.Ports.Parity.None 'parité
-
- Public BufferIN As String = "" '
-
-
- Function configuration() As Boolean
- Form1.PSerie.PortName = NoPort
- Form1.PSerie.BaudRate = Debit
- Form1.PSerie.DataBits = NbBits
- Form1.PSerie.StopBits = BitStop
- Form1.PSerie.Parity = Parite
- End Function
-
- Function ouverture() As Boolean
- ' verifie que le port est fermé avant de l'ouvrir
- If (Not Form1.PSerie.IsOpen() Or NoPort = "NULL") Then
- Form1.PSerie.Open()
- End If
- ouverture = EtatPort()
- End Function
-
- Function fermeture() As Boolean
- ' verifie que le port est ouvert avant de le fermer
- If (Form1.PSerie.IsOpen()) Then
- Form1.PSerie.Close()
- End If
- fermeture = EtatPort()
- End Function
-
- Function EtatPort() As Boolean
- ' test le port et retourn 0 ou 1
- If (Form1.PSerie.IsOpen()) Then
- EtatPort = True
- Else
- EtatPort = False
- End If
- End Function
-
- Sub ViderBuffer()
- While (Form1.PSerie.BytesToRead() <> 0)
- BufferIN &= Form1.PSerie.ReadLine()
- End While
- End Sub
-
- Sub EnvoieCommande(ByVal TempoMs As Integer, ByVal commande As String)
- BufferIN = ""
- Form1.PSerie.Write(commande & vbCrLf)
- System.Threading.Thread.Sleep(TempoMs)
- ViderBuffer()
- End Sub
-
- Function TrouverModem() As Boolean
- 'recherche dans la liste des port de l'ordi celui qui répond a la commande AT
- Dim i As Integer
-
- TrouverModem = False
-
- For i = 0 To listePorts.Length - 1
- Form1.PSerie.PortName = listePorts(i)
- Form1.PSerie.Open()
- EnvoieCommande(500, "AT")
- If (BufferIN Like "*OK*") Then
- NoPort = ListePorts(i)
- End If
- Form1.PSerie.Close()
- Next
- If (NoPort <> "NULL") Then
- ouverture()
- TrouverModem = True
- End If
- End Function
- End Class
- #End Region
Public Class Form1
Dim MonPort As New portserie
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If (MonPort.TrouverModem()) Then
MessageBox.Show("Connecter la ligne téléphonique sur le modem RTC branché sur le port " & MonPort.NoPort, "Modem Trouvé", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Aucun Modem RTC n'a été trouvé", "Boulette", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub
End Class
#Region "Classe port Serie"
Public Class portserie
Public ListePorts() As String = System.IO.Ports.SerialPort.GetPortNames 'liste des port COM disponible sur l'ordinateur
Public NoPort As String = "NULL" 'Numero de port où est branché un modem RTC
Public Debit As Integer = 9600 'delit en bits/sec sur le port COM
Public NbBits As Integer = 8 'bits de donnée
Public BitStop As String = IO.Ports.StopBits.One 'bit de stop
Public Parite As String = IO.Ports.Parity.None 'parité
Public BufferIN As String = "" '
Function configuration() As Boolean
Form1.PSerie.PortName = NoPort
Form1.PSerie.BaudRate = Debit
Form1.PSerie.DataBits = NbBits
Form1.PSerie.StopBits = BitStop
Form1.PSerie.Parity = Parite
End Function
Function ouverture() As Boolean
' verifie que le port est fermé avant de l'ouvrir
If (Not Form1.PSerie.IsOpen() Or NoPort = "NULL") Then
Form1.PSerie.Open()
End If
ouverture = EtatPort()
End Function
Function fermeture() As Boolean
' verifie que le port est ouvert avant de le fermer
If (Form1.PSerie.IsOpen()) Then
Form1.PSerie.Close()
End If
fermeture = EtatPort()
End Function
Function EtatPort() As Boolean
' test le port et retourn 0 ou 1
If (Form1.PSerie.IsOpen()) Then
EtatPort = True
Else
EtatPort = False
End If
End Function
Sub ViderBuffer()
While (Form1.PSerie.BytesToRead() <> 0)
BufferIN &= Form1.PSerie.ReadLine()
End While
End Sub
Sub EnvoieCommande(ByVal TempoMs As Integer, ByVal commande As String)
BufferIN = ""
Form1.PSerie.Write(commande & vbCrLf)
System.Threading.Thread.Sleep(TempoMs)
ViderBuffer()
End Sub
Function TrouverModem() As Boolean
'recherche dans la liste des port de l'ordi celui qui répond a la commande AT
Dim i As Integer
TrouverModem = False
For i = 0 To listePorts.Length - 1
Form1.PSerie.PortName = listePorts(i)
Form1.PSerie.Open()
EnvoieCommande(500, "AT")
If (BufferIN Like "*OK*") Then
NoPort = ListePorts(i)
End If
Form1.PSerie.Close()
Next
If (NoPort <> "NULL") Then
ouverture()
TrouverModem = True
End If
End Function
End Class
#End Region
Conclusion
Je n'ai pas trouvé de source qui me convenais pour le port COM en VB.net alors j'en ai fais une et je vous la donne.
Voila, c'est mon 1er code en VB.NET, alors soyez indulgent
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Programmation du port série et du modem [ par MisterRom ]
Salut a tous !...Je suis à la recherche d'une solution pour pouvoir, avec le contrôle MSComm32 (programmation du port serie) : -decrocher automatiqu
PB de prog modem sur port série [ par Guismeau13 ]
Salut à tous,Je souhaite piloter un modem Kortex par le port série...Ce modem me permet de piloter un lecteur de carte avec modem intégré...Je n'ai pa
Port com de mon modem [ par machto ]
Bonjour,je voudrais savoir comment je peux connaître le port où se trouve connecté mon modem USB?En allant dans le panneau de configuration, dans syst
Interfaçage USB / COM Port [ par flatron123 ]
Bonjour à toutes et à tous,Depuis quelques temps je developpe une appli utilisant un GPS connecté en USB. Pour le moment, j'utilise un petit soft (SPA
utilisation d'une FIFO pour stocker des données recu sur un port série et les traiter ensuite. [ par norber59480 ]
Bonjour à tous. Je vous expose mon probléme : Je dois récupérer des trames sur le port série et effectuer differentes actions en fonction de la donn
Détection des ports série [ par SillyBhum ]
Salut!Je viens de finir un programme utilisant le port série pour communiquer avec un système embarqué. Aujourd'hui j'ai testé ce programme sur un pc
Pb Port Série / RS232 (valeur max envoyée = 127) [ par edorul ]
Bonjour, J'ai un soucis concernant la programmation du port série avec Visual Basic 2005 et 2008 Express : bien que j'ai configuré DataBits = 8, lorsq
communication sur port com [ par SEB73460 ]
Bonsoir,J'ai connecte mon port com1 sur une carte electronique qui comporte un microcontroleurle role de cette carte (pour le moment) c est d'envoyer
Probleme avec ma reception sur mon port com [ par SEB73460 ]
Bonjour et bon dimanche à tous,Voila, j'affiche dans un textbox la reception des données que j'ai envoyer sur mon port coml'envoie se fait bien dans s
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|