unit ifc_ldev; interface uses windows,ioctl; const IID_ILDEV:TGUID = '{32bb8320-b41b-11cf-a6bb-0080c7b2d682}'; IID_ILDEV2:TGUID = '{c737c7ef-ecc2-49f2-ba4e-94c889f07399}'; type LUnknown = class function QueryInterface(const iid:TGUID; out ppv):HRESULT; virtual; stdcall; abstract; function AddRef:ULONG; virtual; stdcall; abstract; function Release:ULONG; virtual; stdcall; abstract; end; type IDaqLDevice = class(LUnknown) function inbyte (offset:ULONG; var data:UCHAR; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; function inword (offset:ULONG; var data:USHORT; len:ULONG; key:ULONG):ULONG; virtual; stdcall; abstract; function indword(offset:ULONG; var data:ULONG; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; function outbyte (offset:ULONG; var data:UCHAR; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; function outword (offset:ULONG; var data:USHORT; len:ULONG; key:ULONG):ULONG; virtual; stdcall; abstract; function outdword(offset:ULONG; var data:ULONG; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; // Working with MEM ports function inmbyte (offset:ULONG; var data:UCHAR; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; function inmword (offset:ULONG; var data:USHORT; len:ULONG; key:ULONG):ULONG; virtual; stdcall; abstract; function inmdword(offset:ULONG; var data:ULONG; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; function outmbyte (offset:ULONG; var data:UCHAR; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; function outmword (offset:ULONG; var data:USHORT; len:ULONG; key:ULONG):ULONG; virtual; stdcall; abstract; function outmdword(offset:ULONG; var data:ULONG; len:ULONG; key:ULONG ):ULONG; virtual; stdcall; abstract; function GetWord_DM(Addr:USHORT; var Data:USHORT):ULONG; virtual; stdcall; abstract; function PutWord_DM(Addr:USHORT; Data:USHORT):ULONG; virtual; stdcall; abstract; function PutWord_PM(Addr:USHORT; Data:ULONG):ULONG; virtual; stdcall; abstract; function GetWord_PM(Addr:USHORT; var Data:ULONG):ULONG; virtual; stdcall; abstract; function GetArray_DM(Addr:USHORT; Count:ULONG; var Data:USHORT):ULONG; virtual; stdcall; abstract; function PutArray_DM(Addr:USHORT; Count:ULONG; var Data:USHORT):ULONG; virtual; stdcall; abstract; function PutArray_PM(Addr:USHORT; Count:ULONG; var Data:ULONG):ULONG; virtual; stdcall; abstract; function GetArray_PM(Addr:USHORT; Count:ULONG; var Data:ULONG):ULONG; virtual; stdcall; abstract; function SendCommand(Cmd:USHORT):ULONG; virtual; stdcall; abstract; function PlataTest:ULONG; virtual; stdcall; abstract; function GetSlotParam(var slPar:SLOT_PAR):ULONG; virtual; stdcall; abstract; function OpenLDevice:THandle; virtual; stdcall; abstract; function CloseLDevice:ULONG; virtual; stdcall; abstract; /// function SetParametersStream(var ap:DAQ_PAR; var UsedSize:ULONG; out Data; out Sync; StreamId:ULONG):ULONG; virtual; stdcall; abstract; function RequestBufferStream(var Size:ULONG; StreamId:ULONG):ULONG; virtual; stdcall; abstract; //in words function FillDAQparameters(var ap:DAQ_PAR):ULONG; virtual; stdcall; abstract; /// function InitStartLDevice:ULONG; virtual; stdcall; abstract; function StartLDevice:ULONG; virtual; stdcall; abstract; function StopLDevice:ULONG; virtual; stdcall; abstract; function LoadBios(FileName:PAnsiChar):ULONG; virtual; stdcall; abstract; { function InputADC(Chan:USHORT; var Data:USHORT):ULONG; virtual; stdcall; abstract; function InputTTL(var Data:ULONG; Mode:ULONG):ULONG; virtual; stdcall; abstract; function OutputTTL(Data:ULONG; Mode:ULONG):ULONG; virtual; stdcall; abstract; function ConfigTTL(Data:ULONG):ULONG; virtual; stdcall; abstract; function OutputDAC(Data:ShortInt; Mode:ULONG):ULONG; virtual; stdcall; abstract; function ConfigDAC(Mode:ULONG; Number:ULONG):ULONG; virtual; stdcall; abstract; } function IoAsync(var sp:DAQ_PAR):ULONG; virtual; stdcall; abstract; function ReadPlataDescr(var pd):ULONG; virtual; stdcall; abstract; function WritePlataDescr(var pd; Ena:USHORT):ULONG; virtual; stdcall; abstract; function ReadFlashWord(FlashAddress:USHORT; var Data:USHORT):ULONG; virtual; stdcall; abstract; function WriteFlashWord(FlashAddress:USHORT; Data:USHORT):ULONG; virtual; stdcall; abstract; function EnableFlashWrite(Flag:USHORT):ULONG; virtual; stdcall; abstract; function EnableCorrection(Ena:USHORT):ULONG; virtual; stdcall; abstract; function GetParameter(name:ULONG; var param:ULONG):ULONG; virtual; stdcall; abstract; function SetParameter(name:ULONG; var param:ULONG):ULONG; virtual; stdcall; abstract; function SetLDeviceEvent(hEvent:THandle; EventId:ULONG):ULONG; virtual; stdcall; abstract; end; type IDaqLDevice2 = class(LUnknown) function InitStartLDeviceEx(StreamId:ULONG):ULONG; virtual; stdcall; abstract; function StartLDeviceEx(StreamId:ULONG):ULONG; virtual; stdcall; abstract; function StopLDeviceEx(StreamId:ULONG):ULONG; virtual; stdcall; abstract; end; implementation end.