Probleme avec l'ecriture port com vb2005 [Résolu]

Signaler
Messages postés
2
Date d'inscription
samedi 10 mars 2007
Statut
Membre
Dernière intervention
14 décembre 2007
-
Messages postés
2
Date d'inscription
samedi 10 mars 2007
Statut
Membre
Dernière intervention
14 décembre 2007
-
bonjour

voila je debut en vb,je travail sur vb 2005 et j'ai un soucis pour pour l'envoie de mes donnée sur le port com
 je dois envoyer des donnée du style  "06100E20018F00" quand j'envoie sa comme telle au port serie en faite lui il envoie "30 36 31 30 30 45 32 30 30 31 38 46 30 30" et moi il faut qu'il envoie "06100E20018F00" donc j'ai trouver  la fonction chr mais sa vas pour un octet mais j'ai des chaine de plus de 30 octets a envoyer et je cherche une solution a mon probleme la seul que j'ai trouver c'est  ce bout de code

Private

Sub Button2_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button2.Click

Dim trame
As
String

trame = Chr(&H6) & Chr(&H10) & Chr(&HE) & Chr(&H20) & Chr(&H1) & Chr(&H8F) & Chr(&H0)SerialPort1.Write(trame)

pour moi c'est assé lourd car je souette recupere les infos d'un fichier txt ou d'un text.box pour les envoyer par le port serie

si qq1 peu me venir en aide
  a ce niveau car la je flanche un peu

merci

debutant vb

2 réponses

Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
Bonjour,

Je te conseille de mettre tout ce que tu récupère dans un tableau et de convertir ce dernier en byte :

Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

dim Tab_String(Mon_TextBox.length / 2) as string  'Divise par 2 car 1 octet = 2 caracteres Hexa

For x
As
Integer = 0
To Mon_TextBox.Text.Length - 2
Step 2
Tab_String(x / 2) = Mon_
TextBox.Text.Substring(x, 2)

Next

Array.ConvertAll(
Of
String,
Byte)(tab_string,
New Converter(
Of 
String,
Byte)(
AddressOf  Conversion_Char_To_Byte))

SerialPort1.Write(tab_string,0,tab_string-1)

End Sub

Private Function Conversion_String_To_Byte(ByVal hexa as String) as Byte
Return Convert.ToByte(Val(
"&h" & hexa))

End Function

Voilà j'ai fait ca de tête, cela ne fonctionnera pas forcément, mais l'idée est là

Hésite pas a reposter si tu as un soucis

Bonne Prog
Messages postés
2
Date d'inscription
samedi 10 mars 2007
Statut
Membre
Dernière intervention
14 décembre 2007

merci je vais travailler sur sa  je te tiens au courant si j'arrive a quelque chose

encore merci