• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Qt+MinGw環境でNIDAQmxを使ったパルス生成サンプル


コミットメタ情報

リビジョン9dbb6f4aa12696e6ef6e5f54a4767c7998858bf2 (tree)
日時2012-11-14 21:22:06
作者arakaki <alucky4416@user...>
コミッターarakaki

ログメッセージ

FIX: lost pulseout done. TaskDone() removed to EmptyEvent Procedure.

変更サマリ

差分

--- a/daqthread.cpp
+++ b/daqthread.cpp
@@ -73,6 +73,17 @@ void DAQThread::run()
7373
7474 while(!stopped) {
7575 if (EvtQue->isEmpty()) {
76+ if (state == State_OUTPUT) {
77+ bool32 done = 0;
78+ DAQmxIsTaskDone(taskHandle, &done);
79+ if (done) {
80+ DAQmxErrChk (DAQmxClearTask (taskHandle));
81+ taskHandle = 0;
82+ emit pulse_output_stopped();
83+ qDebug() << "done, stop pulse output."; // stop Pulse
84+ state = State_IDLE;
85+ }
86+ }
7687 msleep(100);
7788 continue; // Jump to Next Loop
7889 }
@@ -115,22 +126,11 @@ void DAQThread::run()
115126 // int32 DAQmxBaseCfgImplicitTiming (TaskHandle taskHandle, int32 sampleMode, uInt64 sampsPerChanToAcquire);
116127 DAQmxErrChk (DAQmxCfgImplicitTiming (taskHandle, DAQmx_Val_ContSamps, (uInt64)0));
117128 DAQmxErrChk (DAQmxStartTask (taskHandle));
118- } else {
119- bool32 done = 0;
120- DAQmxIsTaskDone(taskHandle, &done);
121- if (done) {
122- DAQmxErrChk (DAQmxClearTask (taskHandle));
123- taskHandle = 0;
124- emit pulse_output_stopped();
125- qDebug() << "done, stop pulse output."; // stop Pulse
126- state = State_IDLE;
127- }
128129 }
129130 break;
130131 default:
131132 break;
132133 }
133- msleep(100);
134134 }
135135
136136 Error:
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -71,9 +71,9 @@ void MainWindow::on_pushButton_Output_clicked()
7171 {
7272 if (flag_output_status) {
7373 DaqTh->stopPulseOutput();
74- ui->pushButton_Output->setText("ON");
75- ui->comboBox_DevName->setEnabled(true);
76- flag_output_status = false;
74+// ui->pushButton_Output->setText("ON");
75+// ui->comboBox_DevName->setEnabled(true);
76+// flag_output_status = false;
7777 } else {
7878 int mode = ui->checkBox_ContMode->isChecked() ? 1 : 0;
7979 DaqTh->startPulseOutput(DevName,
@@ -147,5 +147,9 @@ void MainWindow::pulse_output_started()
147147
148148 void MainWindow::pulse_output_stopped()
149149 {
150+ ui->pushButton_Output->setText("ON");
151+ ui->comboBox_DevName->setEnabled(true);
152+ flag_output_status = false;
153+
150154 ui->statusBar->showMessage("Idle...");
151155 }