ГОСТ Р МЭК 61784-3-12—2016
/ / UPDA7E_SE0_MO
seqHo’Q
•*;
.1
[seqMo’O --
0
)
seqNo’O
’•*;
•wh.le (crc — o.dCrc ii [bRcvO-r i NEHCRCl !- 0 );
//до rex nop пока резульгируи-ий crc такой же, как я oldCrc
.1 (bRevO-r) // для направления приема
. 1 1 нитмтв •) icrc)
hijjyte
— pcrc:
offs
_
crc
_
h
:-
offs
_
crc
_
zo
и и
ки:нтв *
i
ic rc ):
до
_
вуте
— pcrc’O: i
•// для направления приема
// CRC верен
bSuccess - TRUE;
v
•
else// для направления передачи
I
// введите контрольную сумму Checksum.
pCrc:0FFS_CRC_H:-0FFS_CRC_10‘ - ((UIM78 *) acre) H1_BYTE.;
pCrc’O* --[(U:N7e *J TerС) I/0_BY7E*;
// если передано больше, чем
2
байга данных безопаснесги,
// CRC_1 и остальное должно Сыть вычислено
.1 ( зГге > 10 }
<
UIN7I 6 .
- 1;
pSateDat.a-рСгс-2,-
рСгс --4;
s.ze — 7;
wh.le lsize >- 4 )
I
// установить pSaCeDat.a в младший бай* Salebaia
П
следующей части - SaleData’2.
// установить p-Orc в млад—ий бай.- CRC_-
// вычесть первую часть кадра
// пока друтие части следуют
/ / S ta rt-C R C
crc - crc соеилп;// данная часть, уже вычислена вы_:е
// . (B.t 0-7]// вычислить индекс
w1 - aCRCTabl!UU1NT8 *) icrc) HIBYTE* ;
w2 - aCRCTabC: HU1HT8 *1 ill’U>_BY7E ;
w1 - wl XOR w2;
[(UTM78 *1 icrc) H1_BYTE - (IU1M78 *1 iwl) HTBYTE XOR ((U1HT8 *1
icrc):LO_BYTE*;
((U1M78 *1 6СГС1 ДО BYTE - ((UIHT8 *1 iwl) ДО BYTE ;
h
_
j
// . (Bi*. 8-1S1
Wl - aCRCTabl*((UTHT8 *) icrc) HIBYTE* ;
м2 - aCRCTab2*((U1N78 ») ii) HT_BY7E
wl - wl XOR w2;
((UTM78 *1 icrc) HT_&YTE
- [(U1HT8 *1 iwl): :
byte
XOR ииигтв *1
icrc) LO_BYTE*
((U1M78 *1 icrcl ДО BYTE
- ([U1HT8 «1 iwl) ДО BYTE
I
// Данные 2*i
wl - aCRCTabl!((OTNTB •) icrc) H1_BY7E";
w2 - aCRCTab2’pSateData*or’;
wl - wl XOR w2;
[(U1HT8 *) icrcl‘HIBYTE
((U1HT8 *) icrc)!ДО BYTE
- UUTHT8 *)
i w l )
’HIBYTE XOR ((UTHT8 »)
icrc) 1/5 BYTE ;
- пи:НТ8 *) iwl) ДО BYTE ;
79