回复 16# 的帖子
编译确实是可以通过的,但是我处理数据时显示图像没有变化,好像是还没有调用到采集的数据,我是想让您看下我编的程序,在调用采集到的数据时,那地方的程序看看有没有问题?谢谢您了 具体是哪个回调函数呢?我这边关于采集的我这边都没有办法使用现在! UINT ProcessDataThread(PVOID pPara){
CurrentIndex=0;
nChannelCount = ADPara.ChannelCount ;
VoltDataSize= (int)(ReadSizeWords/ nChannelCount);
PerHeight=(long)(20000/ nChannelCount);
Original =(long) (PerHeight / 2);
PerPixelLsb = 4096.0 / PerHeight;
PerLsbVolt=10000.0/4096;
//SinePattern (1024, 1.0, 0.0, 1.0,DATA );
while(bDeviceRun)// 循环采集AD数据
{
WaitForSingleObject(ReadSysEvent,INFINITE);
if(bNewSegmentData==TRUE)
{
if(WaveOrDight==0)
{
DeleteGraphPlot (ADHandle, AD_GRAPH, -1, VAL_IMMEDIATE_DRAW); // 从绘图窗口中删除上一次的图象
Original = PerHeight / 2;
for(TreatChannel=0;TreatChannel<nChannelCount;TreatChannel++)
{
for(Index=0; Index<ReadSizeWords; Index++) // 将采集的AD数据转换成电压值(mV)
{
Volt = Original-((((pADBuffer)&0x0FFF)-0x800) /PerPixelLsb);
}
PlotWaveform (ADHandle ,AD_GRAPH ,Volt ,VoltDataSize , VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0, VAL_THIN_LINE,
VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_BLACK);
RefreshGraph(ADHandle, AD_GRAPH);
Original = Original + PerHeight;
}
}
if (WaveOrDight==1)
{
for(Index=0; Index<nChannelCount; Index++) // 将采集的AD数据转换成电压值(mV)
{
// 将数据换算成电压值,然后由定时器绘制在窗口中
Volt = ((((pADBuffer)&0x0FFF)-0x800)*PerLsbVolt);
}
for(Index=0; Index<nChannelCount; Index++)
{
SetCtrlVal(ADHandle,Chanels,Volt);
}
}
bNewSegmentData = FALSE; // 用户缓冲区标志位改变
SetCtrlVal(ADHandle,AD_QQQ,CurrentIndex); //界面显示读数缓冲位置
SetCtrlVal(ADHandle,AD_PPP,ReadIndex); //界面显示处理缓冲位置
CurrentIndex=(CurrentIndex+1) % MAX_SEGMENT; //用户缓冲区移位
}
}
return 1;
}
这个应该是使数据在主面板上以数字和图形两种方式显示的程序 int CVICALLBACK StartRans (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{ double wave1,wave2,wave3,datapoints;
int j;
int a;
double phase;
switch (event)
{
case EVENT_COMMIT:
SetCtrlAttribute(ranspanelHandle,RANSPANEL_STOPRANS,ATTR_DIMMED,0);
SetCtrlAttribute(ranspanelHandle,RANSPANEL_STARTRANS,ATTR_DIMMED,1);
for(Index=0; Index<nChannelCount; Index++) // 将采集的AD数据转换成电压值(mV)
{
// 将数据换算成电压值,然后由定时器绘制在窗口中
Volt = ((((pADBuffer)&0x0FFF)-0x800)*PerLsbVolt);
}
{j=0;
wave1=Volt;
j++;
if (j>=2048) j=0;}
Correlate(wave1,2048,wave1,2048,wave3);
DeleteGraphPlot(ranspanelHandle,RANSPANEL_GRAPH,-1,VAL_IMMEDIATE_DRAW);
PlotY(ranspanelHandle,RANSPANEL_GRAPH,wave3,4095,VAL_DOUBLE,VAL_THIN_LINE,
VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED);
break;
}
return 0;
}
这是我设置的相关分析的回调函数,不知道像这样调用前面采集的数据有没有问题(应该是肯定有问题),根本没有结果显示,希望版主您看下,应该怎么修改才可以,谢谢您 请问下版主,我采集到的信号在以图形方式显示的时候,是分成上下两个波形,幅值一样,但是相位不同,请问版主是怎么回事? 原帖由 justin566 于 2008-4-16 11:19 发表 http://www.cpubbs.com/bbs/images/common/back.gif
请问下版主,我采集到的信号在以图形方式显示的时候,是分成上下两个波形,幅值一样,但是相位不同,请问版主是怎么回事?
不太明白兄弟的意思呢?
回复 22# 的帖子
本来应该是一个通道采集,只显示一条曲线对吧?但是我采集的时候是上下两条曲线。幅值应该是一样的,但是相位不同,这是怎么回事啊?
页:
1
[2]