Funkciju inicijalizacija pozovi recimo pri kreiranju forme, jer iz ovog koda koji si poslao nigde nema poziva.
Što se DTR signala tiče, moguće je da je tih 10V čak logička 0 (tj. da su logička 0 i 1 obrnute)... Zaboravio sam već šta sam i kako testirao, ali isprobaj svakako.
Meni je sad dovoljan externi modem, preko koga proveravam stanje DTR signala (LE dioda), da ne komplikujem sa unimerima i žicama.
Evo jedan primer koji sam upravo probao sa modemom:
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
FPort: Integer; //koristi se kao Handle Com1 porta
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
(********** Definisanje Handle broja za COM1 port i inicijalno postavljanje DTR-a na iskljuceno ****************)
FPort := CreateFile (PChar('COM1'), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
EscapeCommFunction(FPort, CLRDTR);
(****************************************************************************************************************)
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EscapeCommFunction(FPort, SETDTR);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
EscapeCommFunction(FPort, CLRDTR);
end;
end.
Klik na Button1 uključi DTR na modemu, a Button2 isključi.
[Ovu poruku je menjao dogriz dana 29.01.2007. u 14:15 GMT+1]