Ik ben bezig met een applicatie die volgens een bepaald protocol data verstuurd. de datastring bestaat uit 28 hex getallen, echter bepaalde combinaties mogen er niet in voorkomen en moeten vervangen worden door een ander paar (FD door FD00, FE door FD01 en FF door FD02). Ik ben al een tijdje aan het klooien maar er blijven fouten in zitten. In mijn huidige code neemt hij steeds de laatste bytes niet mee.
ziet iemand wat er misgaat?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| Dim HuidigeByte As String
Dim AantalHexcodes As Integer
Dim TijdelijkeByteString As String
Public Function BiteStuffing(ByRef ByteString As String) As String
'ByteString is een hex string van 28 tekens (14 paren van 2 hex getallen)
TijdelijkeByteString = ByteString
If Len(TijdelijkeByteString) = 28 Then
AantalHexcodes = 27
For I% = 1 To AantalHexcodes Step 2
HuidigeByte = Mid(TijdelijkeByteString, I, 2)
EindRest = Mid(TijdelijkeByteString, (I + 2), AantalHexcodes - I)
BeginRest = Left(TijdelijkeByteString, (I - 1))
Select Case HuidigeByte
Case "FD"
HuidigeByte = "FD00"
AantalHexcodes = AantalHexcodes + 2
I% = I% + 2
Case "FE"
HuidigeByte = "FD01"
AantalHexcodes = AantalHexcodes + 2
I% = I% + 2
Case "FF"
HuidigeByte = "FD02"
AantalHexcodes = AantalHexcodes + 2
I% = I% + 2
End Select
TijdelijkeByteString = BeginRest & HuidigeByte & EindRest
Next I%
BiteStuffing = TijdelijkeByteString
Else
MsgBox ("Er is een fout opgetreden bij het samenstellen van de data."), , "Let Op!"
End If
End Function |
ziet iemand wat er misgaat?