
12.04.2010, 16:09
|
Прохожий
|
|
Регистрация: 12.04.2010
Сообщения: 1
Репутация: 10
|
|
Ошибка при вызова процедуры пакета
Добрый день всем! Есть такая проблема. Я создал процедуры по работе с портами rs-232. Код уместил в пакет (bpl). При вызова процедур из формы выдает ошибку.
Вот код некоторых процедур из пакета
Код:
unit PortDevice;
interface
uses
Windows, SysUtils, Classes;
type
TN4_11 = class
private
CT:TCommTimeouts;
F:THandle;
DCB:TDCB;
Over:TOverlapped;
ByteWritten: Dword;
str:string;
public
procedure Connect(Port:string);
procedure Disconnect;
end;
var N4_11:TN4_11;
implementation
procedure TN4_11.Connect(Port:string);
begin
F := CreateFile(PChar('\\.\'+Port),
GENERIC_READ or GENERIC_WRITE,
0,
nil, OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, 0);
//параметры порта
GetCommState(F, DCB);
DCB.BaudRate := 9600;
DCB.Parity := NOPARITY;
DCB.ByteSize := 8;
DCB.StopBits := ONESTOPBIT;
SetCommState(F, DCB);
GetCommTimeouts(F, ct);
CT.WriteTotalTimeoutConstant := 0;
CT.WriteTotalTimeoutMultiplier := 0;
CT.ReadTotalTimeoutConstant := 5;
CT.ReadIntervalTimeout := MAXDWORD;
CT.ReadTotalTimeoutMultiplier := MAXDWORD;
SetCommTimeouts(F, CT);
PurgeComm(F,PURGE_TXCLEAR or PURGE_RXCLEAR);
Over.hEvent := CreateEvent(nil, True, False, nil);
EscapeCommFunction(F, RTS_CONTROL_HANDSHAKE);
EscapeCommFunction(F, DTR_CONTROL_HANDSHAKE);
end;
procedure TN4_11.Disconnect;
begin
CloseHandle(F);
end;
Admin: Пользуемся тегами!
Заранее спасибо.
Последний раз редактировалось Admin, 12.04.2010 в 16:18.
|