simgoku
Messages postés38Date d'inscriptiondimanche 4 juin 2006StatutMembreDernière intervention28 mai 2008
-
13 mai 2008 à 10:43
simgoku
Messages postés38Date d'inscriptiondimanche 4 juin 2006StatutMembreDernière intervention28 mai 2008
-
13 mai 2008 à 15:48
Bonjour a tous,
Je me suis mis récemment au VB6...
Je programme actuellement une interface reliant mon pc a un automate, cependant je rencontre un probléme.
Je souhaite envoyer une trame a l'automate, cette trame doit etre
envoyée en hexa, j'ai donc déclaré un tableau comme ceci :
dim trame(10) as byte
Je veux lui faire prendre des valeurs en hexa, cependant il refuse et
me les passe toutes en décimal, même avec la fonction hex()... D'ou mon
probléme... J'ai déja pensé a déclaré mon tableau en string, mais cela
pose des problémes au niveau de mes paramétres dans les procédures que
j'utilise
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 13 mai 2008 à 14:44
une possibilité manquait...
Dim Trame As String
Dim i As Long
Dim TrameEnvoi As String
Trame = ":04030000FF100AE0"
TrameEnvoi = Space$(LenB(Trame) + 4)
For i = 0 To Len(Trame) - 1
Mid$(TrameEnvoi, 1 + i * 2, 2) = Right$("0" & Hex$(Asc(Mid$(Trame, i + 1, 1))), 2)
Next i
Mid$(TrameEnvoi, 1 + i * 2, 4) = "0D0A"
pourvoir obtenir la chaine de caractère codée en Hexa
simgoku
Messages postés38Date d'inscriptiondimanche 4 juin 2006StatutMembreDernière intervention28 mai 2008 13 mai 2008 à 14:48
Le probléme c'est que ma trame de départ n'est pas déclarée en "string"
mais en byte, c'est donc impossible de faire ca....J'obtiens donc
au final une trame de type byte qui me retourne un truc du genre
: " 580301...."
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 13 mai 2008 à 15:13
Dim Trame() As Byte
Dim i As Long
Dim TrameEnvoi As String
ReDim Trame(7)
Trame(0) = &H4
Trame(1) = &H3
Trame(2) = &H0
Trame(3) = &H0
Trame(4) = &HFF
Trame(5) = &H10
Trame(6) = &HA
Trame(7) = &HE0
TrameEnvoi = Space$(UBound(Trame) * 4 + 10)
Mid$(TrameEnvoi, 1, 2) = "3A"
For i = 0 To UBound(Trame)
Mid$(TrameEnvoi, 3 + i * 4, 4) = Right$("0" & Hex$(Asc(Hex$(Trame(i) \ &H10))), 2) & _
Right$("0" & Hex$(Asc(Hex$(Trame(i) And &HF))), 2)
Next i
Mid$(TrameEnvoi, 3 + i * 4, 4) = "0D0A"
le ":" et le vbCrLf sont ajoutés dynamiquement a la trame
simgoku
Messages postés38Date d'inscriptiondimanche 4 juin 2006StatutMembreDernière intervention28 mai 2008 13 mai 2008 à 15:48
Tres bien , je pense que je vais utiliser ta solutions, en changeant
quelques trucs pour pouvoir calculer le checksum par exemple...En tout
cas merci beaucoup de ton aide : )