Набросал такую программку в C++ Builder. lguids.cpp и create.cpp добавил в проект. Однако напряжения не выводятся. Пожалуста, подскажите, что еще нужно добавить, чтобы можно было получать на выходе напряжения 1,2,3,4 вольт?
#include <vcl.h>
#include <windows.h>
#include <stdio.h>
#include <stdint.h>
#include <conio.h>
#include <clocale>
#include <iostream>
#include <objbase.h>
#include <math.h>
#include <assert.h>
#pragma hdrstop
#include "C://DIP//include//ioctl.h"
#include "C://DIP//include//ifc_ldev.h"
#include "C://DIP//include//create.h"
#include "C://DIP//include//pcicmd.h"
#include "C://DIP//include//791cmd.h"
#include "Unit1.h"
IDaqLDevice* pI;
//-- -------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-------------------------------------------------------
bool DacAsyncOutCode(int16_t u1Code, int16_t u2Code)
{
ASYNC_PAR pp;
pp.s_Type = L_ASYNC_DAC_OUT;
pp.Chn[0] = 1;
pp.Chn[1] = 1;
pp.Data[0] = u1Code;
pp.Data[1] = u2Code;
return true;
};
//------------------------------------------------------
bool DacAsyncOutV(double u1V, double u2V)
{
USHORT u1 = u1V / 5.0 * 0x7ff;
USHORT u2 = u2V / 5.0 * 0x7ff;
DacAsyncOutCode(u1, u2);
return true;
};
//-- -------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ULONG slot = 0;
PLATA_DESCR_L791 pd;
// Загрузка библиотеки и инициализация интерфейса
Label1->Caption="Load library" ;
CallCreateInstance("lcomp.dll");
Label1->Caption="Call CreateInstance";
LUnknown* pIUnknown = CreateInstance(slot);
if(pIUnknown == NULL) { Label1->Caption="Call CreateInstance FAILED"; }
Label1->Caption="Get IDaqLDevice interface";
HRESULT hr = pIUnknown->QueryInterface(IID_ILDEV,(void**)&pI);
if(!SUCCEEDED(hr)) { Label1->Caption="Get IDaqLDevice interface FAILED"; }
pIUnknown->Release();
Label1->Caption="IDaqLDevice get success";
// Начало работы с платой
pI->OpenLDevice();
pI->LoadBios("l791");
pI->ReadPlataDescr(&pd);
}
//-- -------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
DacAsyncOutV(1,1);
}
//-- -------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
DacAsyncOutV(2,2);
}
//-- -------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
DacAsyncOutV(3,3);
}
//-- -------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
DacAsyncOutV(4,4);
}
//-- -------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
// Завершение работы
pI->CloseLDevice();
// Закрытие интерфейса
pI->Release();
}
//-- -------------------------------------------------------------------------