66
A
p
pend
ices
FCS Ca
lc
ula
tion M
e
thod
V400-H101/201
User’s Manual
Appendices
■
Calculation Programming Example for Sending FCS
■
FCS Check Subroutine Example for Received Data
DATA$
Sample data string
L
Data length
CODE$
Data character
A
Exclusive OR
100
'* * * * * CALCULATE FCS * * * * *
110
'* FCSSET
120
L=LEN(DATA$)
130
A=0
140
FOR J=1 TO L
150
CODE$=MID$(DATA$,J,1)
160
A=ASC(CODE$)XOR A
170
NEXT J
180
FCS$=HEX$(A)
190
IF LEN(FCS$)=1 THEN FCS$="0"+FCS$
200
RETURN
1000
'* * * * * FCSHECK * * * * *
1010
'* FCSHECK
1020
Q=0:FCSCK$="OK"
1030
PRINT RESPONSE $
1040
LENGS=LEN(RESPONSE$)-3
1050
FCSP$=MID$(RESPONSE$,LENGS+1,2)
'FCS in response data
1060
FOR J=1 TO LENGS
'Calculation range of FCS
1070
Q=ASC(MID$(RESPONSE$,J,1))XOR Q
1080
NEXT J
1090
FCSD$=HEX$(Q)
1100
IF LEN(FCSD$)=1 THEN FCSD$="0"+FCSD$
'FCS calculated in a program
1110
IF FCSD$ < > FCSP$ THEN FCSCK$="ERR"
1120
PRINT "FCSD$=";FCSD$;"FCSP$=";FCSP$;
'FCS received correctly: OK
"FCSCK$=";"FCSCK$=" 'FCS not received correctly: ERR
1130
RETURN