Bonjour tout le monde,
Je suis actuellement en stage de fin d'études et je viens tout juste de débuter dans la programmation en Visual Basic.
Pour réaliser mon projet, je dois récupérer via une liaison série des données venant d'un microcontrôleur (déjà programmé et fonctionnant comme il doit).
Pour récupérer les données j'ai suivi ce tutoriel et j'arrive très bien à voir les données envoyées dans la fenêtre de dialogue (RichTextBox du bas).
Pour m'adapter à ma situation, je voudrais sous VSB2010 faire un bouton, et dès son appuie, le programme se mets en attente pendant quelques secondes (le temps que le µc envoie tout en plus d'une manipulation matérielle). En cas d'echec ou de timeout --> erreur.
Pour m'aider sur cette partie d'attente, je me suis servie d'un exemple trouvé sur le site de microsoft que j'ai mis dans mon sub button_click.
Le Timeout fonctionne bien, toutefois l'affichage des données dans la messagebox ne fonctionne pas. Soit l'appli crashe, soit erreur de Timeout alors que les données sont bien envoyées et les config du port sont toutes bien faites.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim returnStr As String = "" Try Do Dim Incoming As String = SerialPort1.ReadLine() If Incoming Is Nothing Then Exit Do Else returnStr &= Incoming & vbCrLf End If Loop Catch ex As TimeoutException returnStr = "Error: Serial Port read timed out." Finally If SerialPort1 IsNot Nothing Then SerialPort1.Close() End Try MsgBox(returnStr, MsgBoxStyle.Information) End Sub
J'ai essayé de passer par des boucles while ou if do, mais à chaque fois je tombé dans des boucles infinies et impossible d'en sortir.
J'espère avoir été clair, si quelqu'un peut gentiment m'aider ça serait vraiment au top.
Bonne soirée et bon weekend si vous avez les 4 jours![]()
Partager