(三)NI采集卡应用学习:在Qt中实现多路数据的同时采集、显示、绘图及存储
1、使用NI MAX创建多路输入的测量任务
本处设置Dev1/ai0:3四路电压输入,采样率均为100,差分连接。
2、代码
// 设置地址
void Widget::on_add_pushButton_clicked()
{
address_txt = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
ui->begin_pushButton->setEnabled(true);
ui->add_pushButton->setEnabled(false);
//操作记录
QString current_date = ui->textEdit->toPlainText();
QDateTime current_date_time =QDateTime::currentDateTime(); //获取当前时间
current_date +=current_date_time.toString("hh:mm:ss");
current_date += (address_txt);
current_date += "\n";
ui->textEdit->setText(current_date);
}
// 开始采集
void Widget::on_begin_pushButton_clicked()
{
//创建文本文档
QDateTime current_date_time =QDateTime::currentDateTime(); //获取当前时间
QString thename = current_date_time.toString("yyyy-MM-dd-hh-mm-ss");
fileName = thename+".txt";
fileName = address_txt+"/"+fileName;
file.setFileName(fileName);
file.open(QFile::WriteOnly);
//开始采集数据
int32 error = 0;
char errBuff[2048] = {
'\0' };
error += DAQmxCreateTask("",&taskHandle);
error += DAQmxCreateAIVoltageChan(taskHandle, "Dev1/ai0:3", "", DAQmx_Val_Cfg_Default, -10.0, 10.0, DAQmx_Val_Volts, NULL);
error += DAQmxCfgSampClkTiming(taskHandle, "", rate, DAQmx_Val_Rising, DAQmx_Val_ContSamps, sample);
error += DAQmxSetAITermCfg(taskHandle,"Dev1/ai0:3",DAQmx_Val_Diff);
error += DAQmxRegisterEveryNSamplesEvent(taskHandle, DAQmx_Val_Acquired_Into_Buffer, sample, 0,
EveryNCallback, (void*)this);
error += DAQmxRegisterDoneEvent(taskHandle, 0, DoneCallback, NULL);
error += DAQmxStartTask(taskHandle
loopers1: 您好,可以求一份源码吗? 1908742383@qq.com
白石溪畔: 好好好
Zy999996: 可以麻烦您发一下源码嘛 谢谢! 2283662012@qq.com
aixr1986: 请教下,我们这的采集卡是NI-PICe-1427,目前安装了NI-DAQmx驱动,我需要使用现在的采集卡采集图像,是用NIDAQmx.lib还是NIIMAQdx.lib呢,有点迷糊,不确定这2个库是否适用我的采集卡
m0_66057620: NICE