Port série et Visual Studio 2008
Résolu
Hyades
-
Hyades Messages postés 3 Statut Membre -
Hyades Messages postés 3 Statut Membre -
Bonjour,
J'ai des erreurs lors du bout de programme ci-dessous (exemple de VS)
Ma configue :
5 ports séries
4 appareils differents connectés
Vérification logiciel de la bonne connection a faire après chaque démontage
Mon problème :
Lorsque la prise RS232 est branché sur un mauvais port, le logiciel attend sans fin
Mon code :
Dim retour As String = ""
' emission
Using com As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort(port, baud, parity, dataBits, stopBits)
com.WriteLine(data)
End Using
' réponse
Using port_com = My.Computer.Ports.OpenSerialPort(port, baud, parity, dataBits, stopBits)
Do
Dim Incoming As String = port_com.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
retour &= Incoming
End If
Loop
End Using
J'ai des erreurs lors du bout de programme ci-dessous (exemple de VS)
Ma configue :
5 ports séries
4 appareils differents connectés
Vérification logiciel de la bonne connection a faire après chaque démontage
Mon problème :
Lorsque la prise RS232 est branché sur un mauvais port, le logiciel attend sans fin
Mon code :
Dim retour As String = ""
' emission
Using com As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort(port, baud, parity, dataBits, stopBits)
com.WriteLine(data)
End Using
' réponse
Using port_com = My.Computer.Ports.OpenSerialPort(port, baud, parity, dataBits, stopBits)
Do
Dim Incoming As String = port_com.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
retour &= Incoming
End If
Loop
End Using
A voir également:
- Port série et Visual Studio 2008
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Visual c++ 2019 - Guide
- Visual paradigm - Télécharger - Gestion de données
- Darkwave studio - Télécharger - Édition & Montage
- Photofiltre studio - Télécharger - Retouche d'image
C'est sans effect, la com reste bloquée.
En modifiant le code :
On Error GoTo sort
Time_out.Enabled = True
Using port_com = My.Computer.Ports.OpenSerialPort(portName, baudRate, parity, dataBits, stopBits)
While port_com.BytesToRead > 0
retour &= port_com.ReadByte()
End While
End Using
GoTo fin
sort:
retour = "Erreur N°" & Err.LastDllError & " :" & vbCrLf & ErrorToString(Err.LastDllError)
fin:
Time_out.Enabled = False
On Error GoTo 0
J'obtient l'erreur :
Erreur N°87 :
Erreur définie par l'application ou par l'objet.
Je ne trouve rien sur cette erreur.
J'ai bien avancé, le code ci-dessous fonctionne (bouchon rx-tx relié sur com1:)
Public Shared Sub transmission()
port.open()
port.WriteLine(emis_port)
Dim Thread_in As Thread = New Thread(AddressOf reception)
Thread_in.Start()
Thread_in.Join()
port.Close()
End Sub
Public Shared Sub reception()
Try
recep_port = port.Readline()
Catch ex As Exception
recep_port = ex.Message
End Try
End Sub
Mais, celà ne permet pas de relier mon PC à un équipement qui refuse une valeur "NewLine" en fin de com.
j'ai donc :
Public Shared Sub transmission()
port.open()
For I = 1 To Len(emis_port)
port.write(Strings.Mid(emis_port, I, 1))
Next
Dim Thread_in As Thread = New Thread(AddressOf reception)
Thread_in.Start()
Thread_in.Join()
port.Close()
End Sub
Public Shared Sub reception()
Try
recep_port = port.ReadExisting()
Catch ex As Exception
recep_port = ex.Message
End Try
End Sub
Mais là, les derniers caractères (entre 4 et 7 ) ne sont pas lu.
Qui aurait une idée ?
Merci d'avance