unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
Type viSession = Integer;
viStatus = Integer;
viAccessMode = Integer;
viUInt32 = Integer;
viUInt16 = SmallInt;
function viOpenDefaultRM (var rm : viSession) : viStatus; stdcall; external 'visa32.dll' name 'viOpenDefaultRM';
function viOpen ( RM : viSession;
ResourceName : pChar;
AccessMode : viAccessMode;
TimeOut : viUInt32;
var vi : viSession) : viStatus; stdcall; external 'visa32.dll' name 'viOpen';
function viClose (VI : viSession) : viStatus; stdcall; external 'visa32.dll' name 'viClose';
function viRead ( VI : viSession;
Buffer : pChar;
Count : viUInt32;
var RetCount : integer) : viStatus; stdcall; external 'visa32.dll' name 'viRead';
function viWrite ( VI : viSession;
Buffer : pChar;
Count : viUInt32;
var RetCount : integer) : viStatus; stdcall; external 'visa32.dll' name 'viWrite';
type
TfrmMain = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var frmMain : TfrmMain;
RM, VI : viSession;
implementation
{$R *.dfm}
procedure TfrmMain.Button1Click(Sender: TObject);
var Status : viStatus;
begin
Status := viOpenDefaultRM (RM);
Memo1.Lines.Add (IntToStr (Status));
end;
procedure TfrmMain.Button2Click(Sender: TObject);
var Status : viStatus;
ResourceName : PChar;
AccessMode : viAccessMode;
TimeOut : viUInt32;
begin
ResourceName := 'GPIB0::22::INSTR';
AccessMode := 0;
TimeOut := 0;
Status := viOpen(RM, ResourceName, AccessMode, TimeOut, VI);
Memo1.Lines.Add (IntToStr (Status));
end;
procedure TfrmMain.Button3Click(Sender: TObject);
var Status : viStatus;
Buffer : String;
RetCount : Integer;
begin
Buffer := '*IDN?';
Status := viWrite (VI, Addr (Buffer[1]), Length (Buffer), RetCount);
Memo1.Lines.Add (IntToStr (Status) + ' ' + IntToStr (RetCount));
end;
procedure TfrmMain.Button4Click(Sender: TObject);
var Status : viStatus;
Buffer : String;
i, RetCount : Integer;
begin
Buffer := '';
for i := 0 to 255 do
Buffer := Buffer + ' ';
Status := viRead (VI, Addr (Buffer[1]), 255, RetCount);
while (Length (Buffer) > 1) and (Buffer Length (Buffer) = ' ') do
Delete (Buffer, Length (Buffer), 1);
Memo1.Lines.Add (IntToStr (Status) + ' ' + IntToStr (RetCount) + ' ' + Buffer);
end;
procedure TfrmMain.Button5Click(Sender: TObject);
var Status : viStatus;
begin
Status := viClose (VI);
Memo1.Lines.Add (IntToStr (Status));
end;
end.
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes