VEGA VEGACOM 557 VEGA ASCII protocol Manuel d'utilisation

Page 51

Advertising
background image

VEGACOM 557 VEGA ASCII

51

SUB CheckReceive (rec AS STRING)

DIM j AS INTEGER

DIM L AS INTEGER

DIM PLsString AS STRING

DIM Stat AS INTEGER

' Vérifier Carriage Return

IF MID$(rec, LEN(rec) - 1, 1) <> CHR$(13) THEN EXIT SUB

' Vérifier signe de départ

IF MID$(rec, 1, 1) <> "=" THEN EXIT SUB

' Réponse à la requête actuelle ?

IF MID$(rec, 2, 3) <> SendNr THEN EXIT SUB

' Vérifier caractère de séparation

IF (MID$(rec, 5, 1) <> "#") THEN EXIT SUB

FOR j = 0 TO LastPls - 1

IF (MID$(rec, 13 + j * 8, 1) <> "p") THEN EXIT SUB

NEXT j

' Effectuer la lecture des valeurs UCP

FOR j = FirstPls TO LastPls

PLsString = MID$(rec, 6 + (j - 1) * 8, 7)

' Interrogation haute ou basse résolution

IF MID$(PLsString, 6, 1) = "." THEN

' basse résolution

PLsString = MID$(PLsString, 1, 1) + MID$(PLsString, 3, 3) + MID$(PLsString, 7, 1)

END IF

PLS(MetNr, j) = VAL(PLsString)

NEXT j

' Effectuer la lecture des informations d’état

IF LastPls > 3 THEN

Stat = VAL(MID$(rec, 62, 1))

Stat = Stat + VAL(MID$(rec, 63, 1)) * 8

Stat = Stat + VAL(MID$(rec, 64, 1)) * 64

ELSE

Stat = VAL(MID$(rec, 30, 1))

END IF

i = 1

FOR j = FirstPls TO LastPls

Etat (MetNr, j) = Stat AND i

i = i * 2

NEXT j

END SUB

SUB Delay (t AS SINGLE)

DIM x AS DOUBLE

x = TIMER + t

WHILE x >= TIMER

WEND

END SUB

SUB OutputData

Mise en service

Advertising