Measurement Studio for VB6

cancel
Showing results for 
Search instead for 
Did you mean: 

Variant data feedback between Measurement Studio 6.0 Analysis Control and Borland C++ Builder 6.0

Variant varData(OPENARRAY(int,(0,9)),varDouble);
for(int i=0; i<10; i++) varData.PutElement(i+1, i);

VARIANT varMean1;
varMean1 = CWStat1->Mean(varData); // got returned mean value !!!

VARIANT varMean, varStdDev;
CWStat1->StdDev(varData, &varMean, &varStdDev); // don't get any returned value !!!

void __fastcall StdDev(VARIANT x, VARIANT* MeanValue, VARIANT* StdDev) ==> don't handled data type "VARIANT*"

Other measurement studio functions are similarity too.
(function : Variance, MaxMin1D, FFT ... etc)
What can solve this problem...

Thanks.
0 Kudos
Message 1 of 4
(6,777 Views)
Hello smleelms,

I'm sorry we don't support Borland C++ Builder with Measurement Studio. Here's a sample of how you can use the CWStat ActiveX control in Visual C++:

COleVariant varMean;
COleVariant varStdDev;
COleVariant varData;

int n = 10;
SAFEARRAYBOUND bounds[1];
bounds[0].cElements = n;
bounds[0].lLbound = 0;
SAFEARRAY *psa = SafeArrayCreate(VT_R8, 1, bounds);
if (psa)
{
psa->fFeatures = FADF_AUTO|FADF_FIXEDSIZE;
double *pr;
SafeArrayAccessData(psa, (void**)&pr);
// Initialize each element
for (int i = 0; i < n; i++)
{
pr[i] = rand();
}
SafeArrayUnaccessData(psa);// release lock on array state
// Create a VARIANT that contains our safearray
VARIANT var; ZeroMemory(&var, sizeof(var));
var.vt
= VT_R8 | VT_ARRAY;
var.parray = psa;
varData = var;
}

m_CWSTAT.StdDev(varData, &varMean, &varStdDev);

David Mc.
NI Applications Engineer
0 Kudos
Message 2 of 4
(6,776 Views)
Measurement Studio also includes C++ class libraries that simplify the use of the Measurement Studio functions. They are alot easier to use than the class wizard generated ActiveX wrappers ( which seem to be what you are using). These class libraries are MFC based, so they can only be used from VC. Below is a sample of how to perform standard deviation calculations using the Measurement Studio C++ class libraries

double array[50],stdDev;
for( int i=0;i<50;i++)
array[i]=rand();//generate random data
//Perform standard deviation.
CNiMath::StdDev(CNiReal32Vector(50,array),stdDev);

If you have Measurement Studio support for VC installed, you should have all the class libraries available for use.

Hope this helps

Bilal Durrani

NI
Bilal Durrani
NI
0 Kudos
Message 3 of 4
(6,776 Views)

I am solving now the same problem.Application Measurement Studio 7.1 Analysis Control in C++ Builder 6.0, specifically CWStat :

VARIANT varMean, varStdDev;
CWStat1->StdDev(varData, &varMean, &varStdDev); // don't get any returned

Can you help me solve this problem ?

Thanks.

0 Kudos
Message 4 of 4
(6,589 Views)