Добрый день. Помогите, пожалуйста, по следующему вопросу.
У меня данные типа string отправляются на com порт с помощью следующей процелуры:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Procedure WriteStrToPort(Str: String );
Var
ByteWritten: cardinal ;
MyBuff: Array [ 0..1023 ] Of Char ;
Begin
FillChar(MyBuff,SizeOf(MyBuff),# 0 );
Str:=Str+# 13 # 10 ;
StrPCopy(MyBuff,Str);
If Not WriteFile(hPort,MyBuff,Length(Str),ByteWritten, Nil ) Then
Begin
SysErrorMessage(GetLastError);
fmMain . btnStop . Click;
Exit;
End ;
End ;
|
Все работает, но мне необходимо отправить команду в двоичном виде, со следующими условиями
Цитата:
Длина посылки от компьютера к компаратору фиксированная – 4 байта.
Состав посылки:
SOM=0x01 – заголовок
CMD – команда
DAT0 – данные, если нужны
DAT1 – данные, если нужны
EOF=0x1a – конец посылки
Таким образом, минимальная длина посылки – 3 байта.
Необходимая команда GETCOUNT - 0x3a
|
Подскажите, как необходимо изменить код?