pVmpDevEnum : IVampDeviceEnum;
pVmpDev : IVampDevice;
pVampGPIO : IVampGPIO;
nDevCount, nIdx: Longint;
nGPIO0, nGPIO1 : Integer;
hr : HRESULT;
......................
hr := CoCreateInstance(CLASS_VampDeviceEnum, nil, CLSCTX_INPROC_SERVER, IID_IVampDeviceEnum, pVmpDevEnum);
if (hr <> NOERROR) then Exit;
nDevCount := pVmpDevEnum.DeviceCount(); // количество устройств на SAA713x
nIdx := 0;
pVmpDev := pVmpDevEnum.Get_Device(nIdx) as IVampDevice; // Открывате например первое устройство
if (pVmpDev <> Nil) then
pVampGPIO := pVmpDev.Get_GPIO() as IVampGPIO;
if (pVampGPIO <> Nil) then begin
nGPIO0 = pVampGPIO.ReadGPIO(0);
nGPIO1 = pVampGPIO.ReadGPIO(1);
// читаете пины (у каждой карты декодер сидит на своих пинах)
end;
pVampGPIO := Nil;
pVmpDev := Nil;
pVmpDevEnum := Nil;
Option Explicit
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Declare Function CoCreateInstance Lib "ole32.dll" (rclsid As GUID, ByVal pUnkOuter As Long, ByVal dwClsContext As Long, riid As GUID, ByRef ppv As Any) As Long
Private Const CLSCTX_INPROC_SERVER = 1
Private pVmpDevEnum As IVampDeviceEnum
Private pVmpDev As IVampDevice
Private pVampGPIO As IVampGPIO
Private nDevCount As Long
Private nIdx As Long
Private nGPIO0 As Integer
Private nGPIO1 As Integer
Private hr As Long
Private CLASS_VampDeviceEnum As GUID
Private IID_IVampDeviceEnum As GUID
Private Sub Form_Load()
hr = CoCreateInstance(CLASS_VampDeviceEnum, 0, CLSCTX_INPROC_SERVER, IID_IVampDeviceEnum, pVmpDevEnum)
nDevCount = pVmpDevEnum.DeviceCount()
nIdx = 0
pVmpDev = pVmpDevEnum.Get_Device(nIdx)
pVampGPIO = pVmpDev.Get_GPIO()
nGPIO0 = pVampGPIO.ReadGPIO(0)
nGPIO1 = pVampGPIO.ReadGPIO(1)
End Sub
Option Explicit
Private Type Guid
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpsz As String, pCLSID As Guid) As Long
Private Declare Function IIDFromString Lib "ole32.dll" (ByVal lpsz As String, lpiid As Guid) As Long
Private Declare Function CoCreateInstance Lib "ole32.dll" (rclsid As Guid, ByVal pUnkOuter As Long, ByVal dwClsContext As Long, riid As Guid, ppv As Any) As Long
Private Const CLSID_strVampDeviceEnum As String = "{B8A9279E-C453-11D4-AD45-0060080BA634}"
Private Const IID_strIVampDeviceEnum As String = "{B8A9279D-C453-11D4-AD45-0060080BA634}"
Private Const CLSCTX_INPROC_SERVER = 1
Private pVmpDevEnum As IVampDeviceEnum
Private pVmpDev As IVampDevice
Private pVampGPIO As IVampGPIO
Private nDevCount As Long
Private nIdx As Long
Private nGPIO0 As Integer
Private nGPIO1 As Integer
Private hr As Long
Private CLASS_VampDeviceEnum As Guid
Private IID_IVampDeviceEnum As Guid
Private Sub Form_Load()
CLSIDFromString StrConv(CLSID_strVampDeviceEnum, vbUnicode), CLASS_VampDeviceEnum
IIDFromString StrConv(IID_strIVampDeviceEnum, vbUnicode), IID_IVampDeviceEnum
hr = CoCreateInstance(CLASS_VampDeviceEnum, 0, CLSCTX_INPROC_SERVER, IID_IVampDeviceEnum, pVmpDevEnum)
nDevCount = pVmpDevEnum.DeviceCount()
nIdx = 0
pVmpDev = pVmpDevEnum.Get_Device(nIdx)
pVampGPIO = pVmpDev.Get_GPIO()
nGPIO0 = pVampGPIO.ReadGPIO(0)
nGPIO1 = pVampGPIO.ReadGPIO(1)
End Sub
Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 14