Входящий параметр (PCommand):
- Код: Выделить всё
Chr(2) & "AERF" & "ъ" & "01" & Chr(1) & "180702" & Chr(1) & "0935" & Chr(1) & Chr(3)
Паскаль:
- Код: Выделить всё
const
sSTOP = #$03;
sDELIM = #$1C;
Procedure AddBCCToCommand : PChar);
Const StopStr : String[2] = sSTOP+#0;
Var BCC : Word;
I : Word;
S1 : String[5];
begin
IF PCommand [StrLen(PCommand)-1] <> sDELIM then StrCat(PCommand, sDELIM);
StrCat(PCommand, @StopStr[1]);
BCC:=0;
FOR I:=0 TO StrLen(PCommand)-1 DO Inc(BCC, Byte(PCommand[I]));
S1:=HexW(BCC);
S1:=S1[3]+S1[4]+S1[1]+S1[2]+#0;
StrCat(PCommand, @S1[1]);
end;
BCC (Block Check Character) вычисляется как сумма без учёта переполнения всех байтов посылки и представляет собой 2-байтное число, передаваемое по формату битового поля.
Как реализовать на VB хотя бы этот цикл??