Karim_94
Messages postés10Date d'inscriptionmercredi 20 avril 2022StatutMembreDernière intervention 1 mai 2022
-
Modifié le 21 avril 2022 à 18:01
Whismeril
Messages postés18286Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention22 mars 2023
-
22 avril 2022 à 14:20
slt a touts mois je peux faire un serial communication entre deux dispositif.
dans la phase de envoyer les donnes le textBox s'affiche mais dans le cas de récus les donnes il affiche un erreur
Public Class Form1
Dim dataout As String
Dim dataIN As String
Private Delegate Sub accésdelégue(ByVal ajoutertext As String)
Private Sub Acceesformprincipal(ByVal textoform As String)
dataout = textoform
'-----------------------------------------------
'-----------------------------------------------
TxtDonnesRecus.Text = dataout
'-----------------------------------------------
'-----------------------------------------------
End Sub
Private Sub Interruptionaccesport(ByVal bufferin As String)
Dim textinterompre As Object = {(bufferin)}
Dim delegueinterrption As accésdelégue
delegueinterrption = New accésdelégue(AddressOf Acceesformprincipal)
MyBase.Invoke(delegueinterrption, textinterompre)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
dataout = ""
dataIN = ""
BtnConnecter.Enabled = False
Btnenvoyerdonnes.Enabled = False
End Sub
Private Sub BtnChercherPort_Click(sender As Object, e As EventArgs) Handles BtnChercherPort.Click
CBoxPort.Items.Clear()
For Each PortDisponible As String In My.Computer.Ports.SerialPortNames
CBoxPort.Items.Add(PortDisponible)
Next
If CBoxPort.Items.Count > 0 Then
CBoxPort.Text = CBoxPort.Items(0)
MessageBox.Show("selectioner le port de travail")
BtnConnecter.Enabled = True
Else
MessageBox.Show("non port trouvé")
BtnConnecter.Enabled = True
Btnenvoyerdonnes.Enabled = True
CBoxPort.Items.Clear()
End If
End Sub
NHenry
Messages postés15048Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention19 mars 2023156 21 avril 2022 à 20:12
Sans regarder plus loin, le message est clair, tu cherche à faire entrer une variable d'un type dans un autre type incompatible (String[]->String).
Ensuite, pour des questions de lecture, on évite de mettre des accents et autres caractères spéciaux dans les noms des éléments de code (classe, variable, controles, ...), de préférence, on reste sur du : a-zA-Z0-9 et _ (note 0-9 ne peut être utilisé en premier catactère)
Karim_94
Messages postés10Date d'inscriptionmercredi 20 avril 2022StatutMembreDernière intervention 1 mai 2022 Modifié le 21 avril 2022 à 20:28
Ok je fais le changer
mais comment je résoudre se problème quel est la code qui je varier
Whismeril
Messages postés18286Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention22 mars 2023622 22 avril 2022 à 08:18
Bonjour
Sans regarder plus loin, le message est clair, tu cherche à faire entrer une variable d'un type dans un autre type incompatible (String[]->String).
Certes, mais la raison est un peu moins claire.
Hier, je ne devais pas avoir les yeux en face des trous, y’a bien le bon code posté, au milieu de tout le reste.
Private Sub Interruptionaccesport(ByVal bufferin As String)
Dim textinterompre As Object = {(bufferin)}
Dim delegueinterrption As accésdelégue
delegueinterrption = New accésdelégue(AddressOf Acceesformprincipal)
MyBase.Invoke(delegueinterrption, textinterompre)
End Sub
On voit que delegueinterrption est de type accésdelégue, et que textinterompre est de type objet, ce n’est donc pas directement un tableau de string.
Mais textinterompre est défini comme suit
Dim textinterompre As Object = {(bufferin)}
c’est donc un objet qui contient un tableau de string.
Bref, la variable textinterompre ne sert à rien, il faut utiliser bufferin dans l’appel à l’invoke de MyBase.
Cela dit, en configurant correctement Visual Studio, ce code ne compilerait pas et ça t’alerterait dès l’écriture qu’il y a une incohérence.
Pour éviter que cela se reproduise à l’exécution, va dans les propriétés du projet et mets « Option Strict » et « Option Explicit » sur « On »
Karim_94
Messages postés10Date d'inscriptionmercredi 20 avril 2022StatutMembreDernière intervention 1 mai 2022
>
Whismeril
Messages postés18286Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention22 mars 2023 Modifié le 22 avril 2022 à 11:27
Merci c'est bien il démarre les données récus sont affichés merci mon ami
Whismeril
Messages postés18286Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention22 mars 2023622
>
Karim_94
Messages postés10Date d'inscriptionmercredi 20 avril 2022StatutMembreDernière intervention 1 mai 2022 22 avril 2022 à 14:20
Poster un code, c’est super
Mettre une capture d’écran de l’erreur aussi.
Cependant ce qui serait bien, c’est de donner le contenu des variables quand ça plante et aussi de poster le code qui correspond à la capture.
Modifié le 21 avril 2022 à 20:28
mais comment je résoudre se problème quel est la code qui je varier
22 avril 2022 à 08:18
Certes, mais la raison est un peu moins claire.
Hier, je ne devais pas avoir les yeux en face des trous, y’a bien le bon code posté, au milieu de tout le reste.
On voit que delegueinterrption est de type accésdelégue, et que textinterompre est de type objet, ce n’est donc pas directement un tableau de string.
Mais textinterompre est défini comme suit c’est donc un objet qui contient un tableau de string.
Bref, la variable textinterompre ne sert à rien, il faut utiliser bufferin dans l’appel à l’invoke de MyBase.
Cela dit, en configurant correctement Visual Studio, ce code ne compilerait pas et ça t’alerterait dès l’écriture qu’il y a une incohérence.
Pour éviter que cela se reproduise à l’exécution, va dans les propriétés du projet et mets « Option Strict » et « Option Explicit » sur « On »
Modifié le 22 avril 2022 à 11:27
22 avril 2022 à 14:20
Pense à marquer le sujet résolu