Здравствуйте!
Есть задача — управление камерами по протоколу Pelco-D.
Открываю и настраиваю порт
Код:
var
hport: thandle;
dcb: tdcb;
......
hPort := CreateFile(PChar('COM1'),
GENERIC_READ or GENERIC_WRITE,
0, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if hPort = INVALID_HANDLE_VALUE then
begin
exit;
end;
if not GetCommState(hPort, dcb) then
begin
exit;
end;
dcb.BaudRate := CBR_4800;
dcb.ByteSize := 8;
dcb.Parity := NOPARITY;
dcb.StopBits := ONESTOPBIT;
DCB.Flags := 20625;
if not SetCommState(hPort, dcb) then
begin
exit;
end;
if not SetupComm(hPort, 8, 8) then
begin
exit;
end;
if not PurgeComm(hPort, PURGE_TXCLEAR or PURGE_RXCLEAR) then
begin
exit;
end;
if not SetCommMask(hPort, EV_RXCHAR) then
begin
exit;
end;
Заполняю массив и отправляю на ком порт
Код:
var
mmm: array [0..6] of byte;
....
//движение влево со средней скоростью
mmm[0]:= $FF;
mmm[1]:= $01;
mmm[2]:= $00;
mmm[3]:= $02;
mmm[4]:= $20;
mmm[5]:= $00;
mmm[6]:= mmm[1] + mmm[2] + mmm[3] + mmm[4] + mmm[5];
NumberOfBytesWritten := 0;
if not WriteFile(hPort, mmm, sizeof(mmm), NumberOfBytesWritten, nil) then
begin
exit;
end;
Реакции никакой нет. Может кто в этом разбирается. Я не могу понять где ошибка, либо в формате команды, либо при обращении к порту...