Hiermit noch an alle User im Forum ein Dankeschön für ihre Beispiele für Variant und ActiveX, wo aus ich das hier gebastelt habe.
Ich habe mir letztens für ein Apfel und ein Ei mir VC5 gekauft und mit rumgespielt. Dabei kam beim anbinden des OCX ein Interner Wrapper raus.
Schreibe dir noch ein beispiel zum umstetzen.
Code: Alles auswählen
/////////////////////////////////////////////////////////////////////////////
// CAD_USB2XX
IMPLEMENT_DYNCREATE(CAD_USB2XX, CWnd)
/////////////////////////////////////////////////////////////////////////////
// Eigenschaften CAD_USB2XX
/////////////////////////////////////////////////////////////////////////////
// Operationen CAD_USB2XX
BOOL CAD_USB2XX::Scan(short DeviceNr)
{
BOOL result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x1, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
DeviceNr);
return result;
}
double CAD_USB2XX::GetAnalogVoltage(short DeviceNr, short Channel)
{
double result;
static BYTE parms[] =
VTS_I2 VTS_I2;
InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, parms,
DeviceNr, Channel);
return result;
}
void CAD_USB2XX::SetAnalogVoltage(short DeviceNr, short Channel, double newValue)
{
static BYTE parms[] =
VTS_I2 VTS_I2 VTS_R8;
InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
DeviceNr, Channel, newValue);
}
short CAD_USB2XX::GetDigIO(short DeviceNr)
{
short result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0xe, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, parms,
DeviceNr);
return result;
}
void CAD_USB2XX::SetDigIO(short DeviceNr, short nNewValue)
{
static BYTE parms[] =
VTS_I2 VTS_I2;
InvokeHelper(0xe, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
DeviceNr, nNewValue);
}
double CAD_USB2XX::GetAnalogDiffVoltage(short DeviceNr, short Channel)
{
double result;
static BYTE parms[] =
VTS_I2 VTS_I2;
InvokeHelper(0x2, DISPATCH_METHOD, VT_R8, (void*)&result, parms,
DeviceNr, Channel);
return result;
}
short CAD_USB2XX::GetDeviceType(short DeviceNr)
{
short result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x3, DISPATCH_METHOD, VT_I2, (void*)&result, parms,
DeviceNr);
return result;
}
short CAD_USB2XX::GetError(short DeviceNr)
{
short result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x4, DISPATCH_METHOD, VT_I2, (void*)&result, parms,
DeviceNr);
return result;
}
short CAD_USB2XX::GetSerialNr(short DeviceNr)
{
short result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x5, DISPATCH_METHOD, VT_I2, (void*)&result, parms,
DeviceNr);
return result;
}
long CAD_USB2XX::GetAnalogIO(short DeviceNr, short Channel)
{
long result;
static BYTE parms[] =
VTS_I2 VTS_I2;
InvokeHelper(0xf, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
DeviceNr, Channel);
return result;
}
void CAD_USB2XX::SetAnalogIO(short DeviceNr, short Channel, long nNewValue)
{
static BYTE parms[] =
VTS_I2 VTS_I2 VTS_I4;
InvokeHelper(0xf, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
DeviceNr, Channel, nNewValue);
}
void CAD_USB2XX::EnableCalibration(LPCTSTR Password)
{
static BYTE parms[] =
VTS_BSTR;
InvokeHelper(0x6, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
Password);
}
long CAD_USB2XX::GetCalibration(short DeviceNr, short IO, short Level, short Channel)
{
long result;
static BYTE parms[] =
VTS_I2 VTS_I2 VTS_I2 VTS_I2;
InvokeHelper(0x10, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
DeviceNr, IO, Level, Channel);
return result;
}
void CAD_USB2XX::SetCalibration(short DeviceNr, short IO, short Level, short Channel, long nNewValue)
{
static BYTE parms[] =
VTS_I2 VTS_I2 VTS_I2 VTS_I2 VTS_I4;
InvokeHelper(0x10, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
DeviceNr, IO, Level, Channel, nNewValue);
}
void CAD_USB2XX::SetSerialNr(short DeviceNr, short nNewValue)
{
static BYTE parms[] =
VTS_I2 VTS_I2;
InvokeHelper(0x11, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
DeviceNr, nNewValue);
}
double CAD_USB2XX::ReadAnalogVoltage(short DeviceNr, short Channel)
{
double result;
static BYTE parms[] =
VTS_I2 VTS_I2;
InvokeHelper(0x7, DISPATCH_METHOD, VT_R8, (void*)&result, parms,
DeviceNr, Channel);
return result;
}
void CAD_USB2XX::WriteAnalogVoltage(short DeviceNr, short Channel, double Voltage)
{
static BYTE parms[] =
VTS_I2 VTS_I2 VTS_R8;
InvokeHelper(0x8, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
DeviceNr, Channel, Voltage);
}
short CAD_USB2XX::ReadDigIn(short DeviceNr)
{
short result;
static BYTE parms[] =
VTS_I2;
InvokeHelper(0x9, DISPATCH_METHOD, VT_I2, (void*)&result, parms,
DeviceNr);
return result;
}
void CAD_USB2XX::WriteDigOut(short DeviceNr, short Value)
{
static BYTE parms[] =
VTS_I2 VTS_I2;
InvokeHelper(0xa, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
DeviceNr, Value);
}
void CAD_USB2XX::DataIO(short DeviceNr)
{
static BYTE parms[] =
VTS_I2;
InvokeHelper(0xb, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
DeviceNr);
}
void CAD_USB2XX::Close()
{
InvokeHelper(0xc, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}
