VEGA VEGACOM 557 VEGA ASCII protocol Manuel d'utilisation

Page 55

Advertising
background image

VEGACOM 557 VEGA ASCII

55

Mise en service

Private Sub DecodeFrame(Rec As String)

Dim idx As Integer

Dim Value As Long

Dim PlsString As String

Dim SingleValue As String

Dim p As Integer

' Recueillir tous les signes

ReceiveBuffer = ReceiveBuffer + Rec

' 1 valeur déjà reçue

p = InStr(ReceiveBuffer, Chr$(13))

If p > 0 Then

' -> Découper une seule valeur

SingleValue = Left$(ReceiveBuffer, p -

1)

ReceiveBuffer = Mid$(ReceiveBuffer, p +

1)

Else

SingleValue = ""

End If

If Len(SingleValue) > 9 Then

' Vérifier le Frame

' =001#FAULTCR

' =001#- 100.1CR

If Left(SingleValue, 1) = "=" Then

If Mid$(SingleValue, 5, 1) = "#"Then

idx = Val(Mid$(SingleValue, 2,3))

If Mid$(SingleValue, 9, 1) > "9"

Then

Etat (idx) = False

Else

Etat (idx) = True

' Découper une valeur chiffre

PlsString = Mid$(SingleValue,

6)

' Attention au signe ou à ' '

If Mid$(PlsString, 1, 1) =

" " Then

PlsString =

Mid$(PlsString, 2)

End If

' Si le message contien'.'->

il faut l’enlever

p = InStr(PlsString, ".")

If p > 0 Then

PlsString =

Left$(PlsString, p - 1) +

Mid$(PlsString, p + 1)

End If

' Reconnaître la fin

p = InStr(PlsString, "%")

If p > 0 Then

PlsString =

Left$(PlsString, p - 1)

End If

' Convertir le texte en chiffres

PLS(idx) = CLng(PlsString)

End If

' Fin atteinte ?

If idx = (StartIndex + LenIndex)

- 1 Then

' Compteur d’erreurs = 0

InAction = 0

' Afficher les valeurs

DisplayValues

End If

End If

End If

End If

End Sub

Public Sub DisplayValues()

Dim i As Integer

Dim Disp As String

' Effacer l’affichage

List1.Clear

' Boucle sur toutes les valeurs

For i = StartIndex To (StartIndex +

LenIndex) - 1

' Préparer texte affichage

Disp = "PLS " + Format$(i, "000")

+ " = "

If Status(i) Then

Disp = Disp + Format$(PLS(i),

"000000000")

Else

Disp = Disp + "---"

End If

' Affichages

List1.AddItem Disp

Next i

End Sub

Public Sub ClearValues()

Dim i As Integer

' Effacer toutes les infos d’état

For i = StartIndex To (StartIndex +

LenIndex) - 1

Etat (i) = False

Next i

End Sub

Advertising