unit A1560APICOM_TLB;

// ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //

// $Rev: 98336 $
// File generated on 10/11/2020 11:37:22 PM from Type Library described below.

// ************************************************************************  //
// Type Lib: C:\Projects\A1560\A1560API_examples\Delphi\A1560API_Delphi_TLB_import\A1560API\x86\A1560APICOM.tlb (1)
// LIBID: {652B8687-894B-4DB7-8D65-9BE3DBE403C6}
// LCID: 0
// Helpfile: 
// HelpString: ACS A1560 COM API
// DepndLst: 
//   (1) v2.0 stdole, (C:\Windows\SysWOW64\stdole2.tlb)
//   (2) v2.4 mscorlib, (C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb)
// SYS_KIND: SYS_WIN32
// Errors:
//   Error creating palette bitmap of (TAcquisitionData) : No Server registered for this CoClass
//   Error creating palette bitmap of (TTgcPoint) : No Server registered for this CoClass
//   Error creating palette bitmap of (TA1560) : No Server registered for this CoClass
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. 
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
{$ALIGN 4}

interface

uses Winapi.Windows, mscorlib_TLB, System.Classes, System.Variants, System.Win.StdVCL, Vcl.Graphics, Vcl.OleServer, Winapi.ActiveX;
  


// *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:        
//   Type Libraries     : LIBID_xxxx                                      
//   CoClasses          : CLASS_xxxx                                      
//   DISPInterfaces     : DIID_xxxx                                       
//   Non-DISP interfaces: IID_xxxx                                        
// *********************************************************************//
const
  // TypeLibrary Major and minor versions
  A1560APICOMMajorVersion = 1;
  A1560APICOMMinorVersion = 1;

  LIBID_A1560APICOM: TGUID = '{652B8687-894B-4DB7-8D65-9BE3DBE403C6}';

  DIID_IAcquisitionData: TGUID = '{1B130C64-770B-328C-97D1-EB2550E813FB}';
  DIID_ITgcPoint: TGUID = '{66045FA1-49EB-39D5-93F8-44CF315C471D}';
  DIID_IA1560Events: TGUID = '{DB7C1F30-9696-3324-943E-6FDC0779B9ED}';
  DIID_IA1560: TGUID = '{8DAD76D9-03E2-3A6B-BD99-B8891DB49AF6}';
  CLASS_AcquisitionData: TGUID = '{4FDB16FE-B9CD-3FF6-90B5-79E2A1DF2911}';
  CLASS_TgcPoint: TGUID = '{9D526862-FFF6-3CDF-BDC0-F18D058804E4}';
  CLASS_A1560: TGUID = '{EF1D2F53-7B9A-3AE7-B16E-11D15D12293D}';
type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
  IAcquisitionData = dispinterface;
  ITgcPoint = dispinterface;
  IA1560Events = dispinterface;
  IA1560 = dispinterface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library                       
// (NOTE: Here we map each CoClass to its Default Interface)              
// *********************************************************************//
  AcquisitionData = IAcquisitionData;
  TgcPoint = ITgcPoint;
  A1560 = IA1560;


// *********************************************************************//
// DispIntf:  IAcquisitionData
// Flags:     (4096) Dispatchable
// GUID:      {1B130C64-770B-328C-97D1-EB2550E813FB}
// *********************************************************************//
  IAcquisitionData = dispinterface
    ['{1B130C64-770B-328C-97D1-EB2550E813FB}']
    property Vector: {NOT_OLEAUTO(PSafeArray)}OleVariant readonly dispid 1;
    property Ctp: {NOT_OLEAUTO(PSafeArray)}OleVariant readonly dispid 2;
    property Id: Integer readonly dispid 3;
  end;

// *********************************************************************//
// DispIntf:  ITgcPoint
// Flags:     (4096) Dispatchable
// GUID:      {66045FA1-49EB-39D5-93F8-44CF315C471D}
// *********************************************************************//
  ITgcPoint = dispinterface
    ['{66045FA1-49EB-39D5-93F8-44CF315C471D}']
    property OffsetUs: Integer dispid 1;
    property GainDb: Double dispid 2;
  end;

// *********************************************************************//
// DispIntf:  IA1560Events
// Flags:     (4096) Dispatchable
// GUID:      {DB7C1F30-9696-3324-943E-6FDC0779B9ED}
// *********************************************************************//
  IA1560Events = dispinterface
    ['{DB7C1F30-9696-3324-943E-6FDC0779B9ED}']
    procedure DataReceived(const data: IAcquisitionData); dispid 1;
  end;

// *********************************************************************//
// DispIntf:  IA1560
// Flags:     (4096) Dispatchable
// GUID:      {8DAD76D9-03E2-3A6B-BD99-B8891DB49AF6}
// *********************************************************************//
  IA1560 = dispinterface
    ['{8DAD76D9-03E2-3A6B-BD99-B8891DB49AF6}']
    procedure Connect(const ip: WideString); dispid 1;
    procedure Start; dispid 2;
    procedure Stop; dispid 3;
    procedure Flush; dispid 4;
    procedure Disconnect; dispid 5;
    property TriggeringMode: Integer dispid 6;
    property TriggeringIntervalUs: Integer dispid 7;
    property GainDb: Integer dispid 8;
    property InputFilterNumber: Integer dispid 9;
    property SamplingFrequencyMhz: Integer dispid 10;
    property VectorLengthSamples: Integer dispid 11;
    property AveragingFactor: Integer dispid 12;
    property AveragingPeriodNs: Integer dispid 13;
    property AveragingRandomValueNs: Integer dispid 14;
    property PulseVoltage: Integer dispid 15;
    property BurstFrequencyKhz: Integer dispid 16;
    property BurstPeriodNs: Integer dispid 17;
    property BurstLengthNumber: Integer dispid 18;
    property TransducerType: Integer dispid 19;
    property CurrentBitRate: Integer readonly dispid 20;
    property CurrentVectorRate: Integer readonly dispid 21;
    property UnitVersion: Integer readonly dispid 22;
    property ProtocolVersion: Integer readonly dispid 23;
    property Connected: WordBool readonly dispid 24;
    property TgcOffsetUs: Integer dispid 25;
    property TgcCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant dispid 26;
    property TgcActive: WordBool dispid 27;
    procedure SetNewIp(const newIp: WideString); dispid 28;
    property DigitalFilterHiPassKhz: Integer dispid 29;
    property DigitalFilterLoPassKhz: Integer dispid 30;
    property TgcRawCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant dispid 31;
    property BurstDampDurationNs: Integer dispid 32;
    property TransducerMode: Integer dispid 33;
    property FirmwareVersion: Integer readonly dispid 34;
    property SerialNumber: Integer readonly dispid 35;
    property TriggerDelayNs: Integer dispid 36;
  end;

// *********************************************************************//
// The Class CoAcquisitionData provides a Create and CreateRemote method to          
// create instances of the default interface IAcquisitionData exposed by              
// the CoClass AcquisitionData. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoAcquisitionData = class
    class function Create: IAcquisitionData;
    class function CreateRemote(const MachineName: string): IAcquisitionData;
  end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object    : TAcquisitionData
// Help String      : 
// Default Interface: IAcquisitionData
// Def. Intf. DISP? : Yes
// Event   Interface: 
// TypeFlags        : (0)
// *********************************************************************//
  TAcquisitionData = class(TOleServer)
  private
    FIntf: IAcquisitionData;
    function GetDefaultInterface: IAcquisitionData;
  protected
    procedure InitServerData; override;
    function Get_Vector: {NOT_OLEAUTO(PSafeArray)}OleVariant;
    function Get_Ctp: {NOT_OLEAUTO(PSafeArray)}OleVariant;
    function Get_Id: Integer;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Connect; override;
    procedure ConnectTo(svrIntf: IAcquisitionData);
    procedure Disconnect; override;
    property DefaultInterface: IAcquisitionData read GetDefaultInterface;
    property Vector: {NOT_OLEAUTO(PSafeArray)}OleVariant read Get_Vector;
    property Ctp: {NOT_OLEAUTO(PSafeArray)}OleVariant read Get_Ctp;
    property Id: Integer read Get_Id;
  published
  end;

// *********************************************************************//
// The Class CoTgcPoint provides a Create and CreateRemote method to          
// create instances of the default interface ITgcPoint exposed by              
// the CoClass TgcPoint. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoTgcPoint = class
    class function Create: ITgcPoint;
    class function CreateRemote(const MachineName: string): ITgcPoint;
  end;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object    : TTgcPoint
// Help String      : 
// Default Interface: ITgcPoint
// Def. Intf. DISP? : Yes
// Event   Interface: 
// TypeFlags        : (2) CanCreate
// *********************************************************************//
  TTgcPoint = class(TOleServer)
  private
    FIntf: ITgcPoint;
    function GetDefaultInterface: ITgcPoint;
  protected
    procedure InitServerData; override;
    function Get_OffsetUs: Integer;
    procedure Set_OffsetUs(Param1: Integer);
    function Get_GainDb: Double;
    procedure Set_GainDb(Param1: Double);
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Connect; override;
    procedure ConnectTo(svrIntf: ITgcPoint);
    procedure Disconnect; override;
    property DefaultInterface: ITgcPoint read GetDefaultInterface;
    property OffsetUs: Integer read Get_OffsetUs write Set_OffsetUs;
    property GainDb: Double read Get_GainDb write Set_GainDb;
  published
  end;

// *********************************************************************//
// The Class CoA1560 provides a Create and CreateRemote method to          
// create instances of the default interface IA1560 exposed by              
// the CoClass A1560. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoA1560 = class
    class function Create: IA1560;
    class function CreateRemote(const MachineName: string): IA1560;
  end;

  TA1560DataReceived = procedure(ASender: TObject; const data: IAcquisitionData) of object;


// *********************************************************************//
// OLE Server Proxy class declaration
// Server Object    : TA1560
// Help String      : 
// Default Interface: IA1560
// Def. Intf. DISP? : Yes
// Event   Interface: IA1560Events
// TypeFlags        : (2) CanCreate
// *********************************************************************//
  TA1560 = class(TOleServer)
  private
    FOnDataReceived: TA1560DataReceived;
    FIntf: IA1560;
    function GetDefaultInterface: IA1560;
  protected
    procedure InitServerData; override;
    procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override;
    function Get_TriggeringMode: Integer;
    procedure Set_TriggeringMode(Param1: Integer);
    function Get_TriggeringIntervalUs: Integer;
    procedure Set_TriggeringIntervalUs(Param1: Integer);
    function Get_GainDb: Integer;
    procedure Set_GainDb(Param1: Integer);
    function Get_InputFilterNumber: Integer;
    procedure Set_InputFilterNumber(Param1: Integer);
    function Get_SamplingFrequencyMhz: Integer;
    procedure Set_SamplingFrequencyMhz(Param1: Integer);
    function Get_VectorLengthSamples: Integer;
    procedure Set_VectorLengthSamples(Param1: Integer);
    function Get_AveragingFactor: Integer;
    procedure Set_AveragingFactor(Param1: Integer);
    function Get_AveragingPeriodNs: Integer;
    procedure Set_AveragingPeriodNs(Param1: Integer);
    function Get_AveragingRandomValueNs: Integer;
    procedure Set_AveragingRandomValueNs(Param1: Integer);
    function Get_PulseVoltage: Integer;
    procedure Set_PulseVoltage(Param1: Integer);
    function Get_BurstFrequencyKhz: Integer;
    procedure Set_BurstFrequencyKhz(Param1: Integer);
    function Get_BurstPeriodNs: Integer;
    procedure Set_BurstPeriodNs(Param1: Integer);
    function Get_BurstLengthNumber: Integer;
    procedure Set_BurstLengthNumber(Param1: Integer);
    function Get_TransducerType: Integer;
    procedure Set_TransducerType(Param1: Integer);
    function Get_CurrentBitRate: Integer;
    function Get_CurrentVectorRate: Integer;
    function Get_UnitVersion: Integer;
    function Get_ProtocolVersion: Integer;
    function Get_Connected: WordBool;
    function Get_TgcOffsetUs: Integer;
    procedure Set_TgcOffsetUs(Param1: Integer);
    function Get_TgcCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant;
    procedure Set_TgcCurve(Param1: {NOT_OLEAUTO(PSafeArray)}OleVariant);
    function Get_TgcActive: WordBool;
    procedure Set_TgcActive(Param1: WordBool);
    function Get_DigitalFilterHiPassKhz: Integer;
    procedure Set_DigitalFilterHiPassKhz(Param1: Integer);
    function Get_DigitalFilterLoPassKhz: Integer;
    procedure Set_DigitalFilterLoPassKhz(Param1: Integer);
    function Get_TgcRawCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant;
    procedure Set_TgcRawCurve(Param1: {NOT_OLEAUTO(PSafeArray)}OleVariant);
    function Get_BurstDampDurationNs: Integer;
    procedure Set_BurstDampDurationNs(Param1: Integer);
    function Get_TransducerMode: Integer;
    procedure Set_TransducerMode(Param1: Integer);
    function Get_FirmwareVersion: Integer;
    function Get_SerialNumber: Integer;
    function Get_TriggerDelayNs: Integer;
    procedure Set_TriggerDelayNs(Param1: Integer);
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Connect; override;
    procedure ConnectTo(svrIntf: IA1560);
    procedure Disconnect; override;
    procedure Connect1(const ip: WideString);
    procedure Start;
    procedure Stop;
    procedure Flush;
    procedure Disconnect1;
    procedure SetNewIp(const newIp: WideString);
    property DefaultInterface: IA1560 read GetDefaultInterface;
    property CurrentBitRate: Integer read Get_CurrentBitRate;
    property CurrentVectorRate: Integer read Get_CurrentVectorRate;
    property UnitVersion: Integer read Get_UnitVersion;
    property ProtocolVersion: Integer read Get_ProtocolVersion;
    property Connected: WordBool read Get_Connected;
    property FirmwareVersion: Integer read Get_FirmwareVersion;
    property SerialNumber: Integer read Get_SerialNumber;
    property TriggeringMode: Integer read Get_TriggeringMode write Set_TriggeringMode;
    property TriggeringIntervalUs: Integer read Get_TriggeringIntervalUs write Set_TriggeringIntervalUs;
    property GainDb: Integer read Get_GainDb write Set_GainDb;
    property InputFilterNumber: Integer read Get_InputFilterNumber write Set_InputFilterNumber;
    property SamplingFrequencyMhz: Integer read Get_SamplingFrequencyMhz write Set_SamplingFrequencyMhz;
    property VectorLengthSamples: Integer read Get_VectorLengthSamples write Set_VectorLengthSamples;
    property AveragingFactor: Integer read Get_AveragingFactor write Set_AveragingFactor;
    property AveragingPeriodNs: Integer read Get_AveragingPeriodNs write Set_AveragingPeriodNs;
    property AveragingRandomValueNs: Integer read Get_AveragingRandomValueNs write Set_AveragingRandomValueNs;
    property PulseVoltage: Integer read Get_PulseVoltage write Set_PulseVoltage;
    property BurstFrequencyKhz: Integer read Get_BurstFrequencyKhz write Set_BurstFrequencyKhz;
    property BurstPeriodNs: Integer read Get_BurstPeriodNs write Set_BurstPeriodNs;
    property BurstLengthNumber: Integer read Get_BurstLengthNumber write Set_BurstLengthNumber;
    property TransducerType: Integer read Get_TransducerType write Set_TransducerType;
    property TgcOffsetUs: Integer read Get_TgcOffsetUs write Set_TgcOffsetUs;
    property TgcCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant read Get_TgcCurve write Set_TgcCurve;
    property TgcActive: WordBool read Get_TgcActive write Set_TgcActive;
    property DigitalFilterHiPassKhz: Integer read Get_DigitalFilterHiPassKhz write Set_DigitalFilterHiPassKhz;
    property DigitalFilterLoPassKhz: Integer read Get_DigitalFilterLoPassKhz write Set_DigitalFilterLoPassKhz;
    property TgcRawCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant read Get_TgcRawCurve write Set_TgcRawCurve;
    property BurstDampDurationNs: Integer read Get_BurstDampDurationNs write Set_BurstDampDurationNs;
    property TransducerMode: Integer read Get_TransducerMode write Set_TransducerMode;
    property TriggerDelayNs: Integer read Get_TriggerDelayNs write Set_TriggerDelayNs;
  published
    property OnDataReceived: TA1560DataReceived read FOnDataReceived write FOnDataReceived;
  end;

procedure Register;

resourcestring
  dtlServerPage = 'ActiveX';

  dtlOcxPage = 'ActiveX';

implementation

uses System.Win.ComObj;

class function CoAcquisitionData.Create: IAcquisitionData;
begin
  Result := CreateComObject(CLASS_AcquisitionData) as IAcquisitionData;
end;

class function CoAcquisitionData.CreateRemote(const MachineName: string): IAcquisitionData;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_AcquisitionData) as IAcquisitionData;
end;

procedure TAcquisitionData.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{4FDB16FE-B9CD-3FF6-90B5-79E2A1DF2911}';
    IntfIID:   '{1B130C64-770B-328C-97D1-EB2550E813FB}';
    EventIID:  '';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;

procedure TAcquisitionData.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as IAcquisitionData;
  end;
end;

procedure TAcquisitionData.ConnectTo(svrIntf: IAcquisitionData);
begin
  Disconnect;
  FIntf := svrIntf;
end;

procedure TAcquisitionData.DisConnect;
begin
  if Fintf <> nil then
  begin
    FIntf := nil;
  end;
end;

function TAcquisitionData.GetDefaultInterface: IAcquisitionData;
begin
  if FIntf = nil then
    Connect;
  Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
  Result := FIntf;
end;

constructor TAcquisitionData.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

destructor TAcquisitionData.Destroy;
begin
  inherited Destroy;
end;

function TAcquisitionData.Get_Vector: {NOT_OLEAUTO(PSafeArray)}OleVariant;
begin
  Result := DefaultInterface.Vector;
end;

function TAcquisitionData.Get_Ctp: {NOT_OLEAUTO(PSafeArray)}OleVariant;
begin
  Result := DefaultInterface.Ctp;
end;

function TAcquisitionData.Get_Id: Integer;
begin
  Result := DefaultInterface.Id;
end;

class function CoTgcPoint.Create: ITgcPoint;
begin
  Result := CreateComObject(CLASS_TgcPoint) as ITgcPoint;
end;

class function CoTgcPoint.CreateRemote(const MachineName: string): ITgcPoint;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_TgcPoint) as ITgcPoint;
end;

procedure TTgcPoint.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{9D526862-FFF6-3CDF-BDC0-F18D058804E4}';
    IntfIID:   '{66045FA1-49EB-39D5-93F8-44CF315C471D}';
    EventIID:  '';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;

procedure TTgcPoint.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as ITgcPoint;
  end;
end;

procedure TTgcPoint.ConnectTo(svrIntf: ITgcPoint);
begin
  Disconnect;
  FIntf := svrIntf;
end;

procedure TTgcPoint.DisConnect;
begin
  if Fintf <> nil then
  begin
    FIntf := nil;
  end;
end;

function TTgcPoint.GetDefaultInterface: ITgcPoint;
begin
  if FIntf = nil then
    Connect;
  Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
  Result := FIntf;
end;

constructor TTgcPoint.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

destructor TTgcPoint.Destroy;
begin
  inherited Destroy;
end;

function TTgcPoint.Get_OffsetUs: Integer;
begin
  Result := DefaultInterface.OffsetUs;
end;

procedure TTgcPoint.Set_OffsetUs(Param1: Integer);
begin
  DefaultInterface.OffsetUs := Param1;
end;

function TTgcPoint.Get_GainDb: Double;
begin
  Result := DefaultInterface.GainDb;
end;

procedure TTgcPoint.Set_GainDb(Param1: Double);
begin
  DefaultInterface.GainDb := Param1;
end;

class function CoA1560.Create: IA1560;
begin
  Result := CreateComObject(CLASS_A1560) as IA1560;
end;

class function CoA1560.CreateRemote(const MachineName: string): IA1560;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_A1560) as IA1560;
end;

procedure TA1560.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{EF1D2F53-7B9A-3AE7-B16E-11D15D12293D}';
    IntfIID:   '{8DAD76D9-03E2-3A6B-BD99-B8891DB49AF6}';
    EventIID:  '{DB7C1F30-9696-3324-943E-6FDC0779B9ED}';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;

procedure TA1560.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    ConnectEvents(punk);
    Fintf:= punk as IA1560;
  end;
end;

procedure TA1560.ConnectTo(svrIntf: IA1560);
begin
  Disconnect;
  FIntf := svrIntf;
  ConnectEvents(FIntf);
end;

procedure TA1560.DisConnect;
begin
  if Fintf <> nil then
  begin
    DisconnectEvents(FIntf);
    FIntf := nil;
  end;
end;

function TA1560.GetDefaultInterface: IA1560;
begin
  if FIntf = nil then
    Connect;
  Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call "Connect" or "ConnectTo" before this operation');
  Result := FIntf;
end;

constructor TA1560.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

destructor TA1560.Destroy;
begin
  inherited Destroy;
end;

procedure TA1560.InvokeEvent(DispID: TDispID; var Params: TVariantArray);
begin
  case DispID of
    -1: Exit;  // DISPID_UNKNOWN
    1: if Assigned(FOnDataReceived) then
         FOnDataReceived(Self, IUnknown(TVarData(Params[0]).VPointer) as IAcquisitionData {const IAcquisitionData});
  end; {case DispID}
end;

function TA1560.Get_TriggeringMode: Integer;
begin
  Result := DefaultInterface.TriggeringMode;
end;

procedure TA1560.Set_TriggeringMode(Param1: Integer);
begin
  DefaultInterface.TriggeringMode := Param1;
end;

function TA1560.Get_TriggeringIntervalUs: Integer;
begin
  Result := DefaultInterface.TriggeringIntervalUs;
end;

procedure TA1560.Set_TriggeringIntervalUs(Param1: Integer);
begin
  DefaultInterface.TriggeringIntervalUs := Param1;
end;

function TA1560.Get_GainDb: Integer;
begin
  Result := DefaultInterface.GainDb;
end;

procedure TA1560.Set_GainDb(Param1: Integer);
begin
  DefaultInterface.GainDb := Param1;
end;

function TA1560.Get_InputFilterNumber: Integer;
begin
  Result := DefaultInterface.InputFilterNumber;
end;

procedure TA1560.Set_InputFilterNumber(Param1: Integer);
begin
  DefaultInterface.InputFilterNumber := Param1;
end;

function TA1560.Get_SamplingFrequencyMhz: Integer;
begin
  Result := DefaultInterface.SamplingFrequencyMhz;
end;

procedure TA1560.Set_SamplingFrequencyMhz(Param1: Integer);
begin
  DefaultInterface.SamplingFrequencyMhz := Param1;
end;

function TA1560.Get_VectorLengthSamples: Integer;
begin
  Result := DefaultInterface.VectorLengthSamples;
end;

procedure TA1560.Set_VectorLengthSamples(Param1: Integer);
begin
  DefaultInterface.VectorLengthSamples := Param1;
end;

function TA1560.Get_AveragingFactor: Integer;
begin
  Result := DefaultInterface.AveragingFactor;
end;

procedure TA1560.Set_AveragingFactor(Param1: Integer);
begin
  DefaultInterface.AveragingFactor := Param1;
end;

function TA1560.Get_AveragingPeriodNs: Integer;
begin
  Result := DefaultInterface.AveragingPeriodNs;
end;

procedure TA1560.Set_AveragingPeriodNs(Param1: Integer);
begin
  DefaultInterface.AveragingPeriodNs := Param1;
end;

function TA1560.Get_AveragingRandomValueNs: Integer;
begin
  Result := DefaultInterface.AveragingRandomValueNs;
end;

procedure TA1560.Set_AveragingRandomValueNs(Param1: Integer);
begin
  DefaultInterface.AveragingRandomValueNs := Param1;
end;

function TA1560.Get_PulseVoltage: Integer;
begin
  Result := DefaultInterface.PulseVoltage;
end;

procedure TA1560.Set_PulseVoltage(Param1: Integer);
begin
  DefaultInterface.PulseVoltage := Param1;
end;

function TA1560.Get_BurstFrequencyKhz: Integer;
begin
  Result := DefaultInterface.BurstFrequencyKhz;
end;

procedure TA1560.Set_BurstFrequencyKhz(Param1: Integer);
begin
  DefaultInterface.BurstFrequencyKhz := Param1;
end;

function TA1560.Get_BurstPeriodNs: Integer;
begin
  Result := DefaultInterface.BurstPeriodNs;
end;

procedure TA1560.Set_BurstPeriodNs(Param1: Integer);
begin
  DefaultInterface.BurstPeriodNs := Param1;
end;

function TA1560.Get_BurstLengthNumber: Integer;
begin
  Result := DefaultInterface.BurstLengthNumber;
end;

procedure TA1560.Set_BurstLengthNumber(Param1: Integer);
begin
  DefaultInterface.BurstLengthNumber := Param1;
end;

function TA1560.Get_TransducerType: Integer;
begin
  Result := DefaultInterface.TransducerType;
end;

procedure TA1560.Set_TransducerType(Param1: Integer);
begin
  DefaultInterface.TransducerType := Param1;
end;

function TA1560.Get_CurrentBitRate: Integer;
begin
  Result := DefaultInterface.CurrentBitRate;
end;

function TA1560.Get_CurrentVectorRate: Integer;
begin
  Result := DefaultInterface.CurrentVectorRate;
end;

function TA1560.Get_UnitVersion: Integer;
begin
  Result := DefaultInterface.UnitVersion;
end;

function TA1560.Get_ProtocolVersion: Integer;
begin
  Result := DefaultInterface.ProtocolVersion;
end;

function TA1560.Get_Connected: WordBool;
begin
  Result := DefaultInterface.Connected;
end;

function TA1560.Get_TgcOffsetUs: Integer;
begin
  Result := DefaultInterface.TgcOffsetUs;
end;

procedure TA1560.Set_TgcOffsetUs(Param1: Integer);
begin
  DefaultInterface.TgcOffsetUs := Param1;
end;

function TA1560.Get_TgcCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant;
begin
  Result := DefaultInterface.TgcCurve;
end;

procedure TA1560.Set_TgcCurve(Param1: {NOT_OLEAUTO(PSafeArray)}OleVariant);
begin
  DefaultInterface.TgcCurve := Param1;
end;

function TA1560.Get_TgcActive: WordBool;
begin
  Result := DefaultInterface.TgcActive;
end;

procedure TA1560.Set_TgcActive(Param1: WordBool);
begin
  DefaultInterface.TgcActive := Param1;
end;

function TA1560.Get_DigitalFilterHiPassKhz: Integer;
begin
  Result := DefaultInterface.DigitalFilterHiPassKhz;
end;

procedure TA1560.Set_DigitalFilterHiPassKhz(Param1: Integer);
begin
  DefaultInterface.DigitalFilterHiPassKhz := Param1;
end;

function TA1560.Get_DigitalFilterLoPassKhz: Integer;
begin
  Result := DefaultInterface.DigitalFilterLoPassKhz;
end;

procedure TA1560.Set_DigitalFilterLoPassKhz(Param1: Integer);
begin
  DefaultInterface.DigitalFilterLoPassKhz := Param1;
end;

function TA1560.Get_TgcRawCurve: {NOT_OLEAUTO(PSafeArray)}OleVariant;
begin
  Result := DefaultInterface.TgcRawCurve;
end;

procedure TA1560.Set_TgcRawCurve(Param1: {NOT_OLEAUTO(PSafeArray)}OleVariant);
begin
  DefaultInterface.TgcRawCurve := Param1;
end;

function TA1560.Get_BurstDampDurationNs: Integer;
begin
  Result := DefaultInterface.BurstDampDurationNs;
end;

procedure TA1560.Set_BurstDampDurationNs(Param1: Integer);
begin
  DefaultInterface.BurstDampDurationNs := Param1;
end;

function TA1560.Get_TransducerMode: Integer;
begin
  Result := DefaultInterface.TransducerMode;
end;

procedure TA1560.Set_TransducerMode(Param1: Integer);
begin
  DefaultInterface.TransducerMode := Param1;
end;

function TA1560.Get_FirmwareVersion: Integer;
begin
  Result := DefaultInterface.FirmwareVersion;
end;

function TA1560.Get_SerialNumber: Integer;
begin
  Result := DefaultInterface.SerialNumber;
end;

function TA1560.Get_TriggerDelayNs: Integer;
begin
  Result := DefaultInterface.TriggerDelayNs;
end;

procedure TA1560.Set_TriggerDelayNs(Param1: Integer);
begin
  DefaultInterface.TriggerDelayNs := Param1;
end;

procedure TA1560.Connect1(const ip: WideString);
begin
  DefaultInterface.Connect(ip);
end;

procedure TA1560.Start;
begin
  DefaultInterface.Start;
end;

procedure TA1560.Stop;
begin
  DefaultInterface.Stop;
end;

procedure TA1560.Flush;
begin
  DefaultInterface.Flush;
end;

procedure TA1560.Disconnect1;
begin
  DefaultInterface.Disconnect;
end;

procedure TA1560.SetNewIp(const newIp: WideString);
begin
  DefaultInterface.SetNewIp(newIp);
end;

procedure Register;
begin
  RegisterComponents(dtlServerPage, [TAcquisitionData, TTgcPoint, TA1560]);
end;

end.
