请问几位老师 点击:416 | 回复:2



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-04-25 22:59:00
楼主
我用PCI9118DG的卡,采样频率100KHz,doublebuffer设为10000,用DAQbench的chart控件进行实时图形显示,采集卡的控制用了NuDAQ-PCI9118控件,例程套用的9112的程序,光显示没有问题,但在边显示边存储时出现了掉点,图形发生闪烁.减小采样频率调试也无效,请各位老师指教. //开始采样 void CDemo2Dlg::OnStart() { // TODO: Add your control notification handler code here VARIANT Filename; if(m_to_file==0) { VariantClear(&Filename); } else { Filename.vt=VT_BSTR; Filename.bstrVal=m_Filename.AllocSysString(); } m_Chart.ClearPlots(); m_pci9118.StartContAI(Filename); } //buffer半满则显示图象 void CDemo2Dlg::OnAiHalfReadyPci9118ctrl1(VARIANT FAR* ScaledData, VARIANT FAR* BinaryCodes) { // TODO: Add your control notification handler code here m_Chart.PlotCharts(ScaledData, 1, BoolToVar(false)); } 先怀疑是缓冲小了,中断过于频繁,加大缓冲,也没有用.怎么半?



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2003-04-25 11:02:00
1楼
你有没有试过PCIS-DASK+Dchart,PCI-OCX的效率不如PCIS-DASK高。另外Dgraph的显示效率要比Dchart高。最后,可以减少显示数据的个数。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2003-04-25 22:59:00
2楼
谢谢李老师的回答,请问用PCI-Dask+Dchart是不是要创建两个线程,一个存储文件,一个图形显示?我把他们放在一个线程下不能正常工作,光显示可以,把存储文件加上去以后,一点开始,界面就不见了,不知道怎么回事? 程序片段如下: err = AI_ContScanChannelsToFile(card, 0, AD_U_10_V,(U8*)file_name, data_size, sample_rate, ASYNCH_OP); if (err!=0) { printf("AI_ContReadChannel error=%d", err); exit(1); } data_size /= 2; do { do { AI_AsyncDblBufferHalfReady(card, &HalfReady, &fstop); } while (!HalfReady); AI_AsyncDblBufferTransfer(card, NULL);//存到文件 AI_AsyncDblBufferTransfer(card, ai_buf);//存到buffer AI_ContVScale(0,15,ai_buf,buf1,data_size); //数据转化 chart->PlotCharts(&ArrayToVar(buf1, data_size),1, BoolToVar(false));//图形显示 } while (!clear_op); AI_AsyncClear(card, &count);

热门招聘
相关主题

官方公众号

智造工程师