No.2ベストアンサー
- 回答日時:
> どうしてもサンプリング件数を設定しないといけません
それは、あなたがAdStartFileSampling()関数を使って、ファイルに落とそうとしている
から、発生している制約です。
http://www.interface.co.jp/catalog/prdchelp/japa …
によると、この関数は、
>本関数は連続サンプリングが終了するまでアプリケーションに処理が戻りません
ということなので、あらかじめサンプル数を指定してやらないと、
「いつ関数を終えれば良いのか」「いつファイルに書き込んだら良いのか」が、
わからず、やむなくサンプル数を必須指定する仕様になっているのでしょう。
あなたの要求にぴったりのヘルプが以下かと思います。
http://www.interface.co.jp/catalog/prdchelp/japa …
AdGetSamplingData()関数を使って、自前のバッファにデータを取得し、
第3引数に取得されたバイト数を元に、ファイルに書き込む。
>本関数ではサンプリングバッファからデータを取得したら、取得したデータはサンプリングバッファ内からクリアされます。
ADボードは、わずかなバッファを持っているはずですよ。
取得したデータはバッファからクリアされるので、取得したものをどんどん
ファイルに書いていけば良いです。
プログラミングの難易度としてはそれほど高くないと思います。
ぜひトライしてみて下さい。
No.1
- 回答日時:
今のプログラムは、受信データを即ファイルに書いているわけではないんですか?
どういう構造で、サンプリングレートとサンプル数の制約ができてしまっているのでしょう。
リアルタイムにデータ処理をする必要がないのであれば、受信→ファイル書き込みを
延々と行なっていけば、長時間のデータ保存ができると思います。
ただし、32bit版のWindows等では、ファイルサイズ4Gの壁があるので、
ファイルサイズが一定サイズ以上になったら、別のファイルに続きを
書きこむようなスイッチ機構を考慮しなければなりませんが。
リアルタイムにデータ処理をする必要があるということであれば、技術的な敷居がかなり高くなります。
まずは、実現したい要求を明確に示して下さい。
この回答への補足
私の使用しているADボードはバッファ機能のないADボードです。雷の観測に使用するため、リアルタイムにどんどんデータを記録していくプログラムを作成しています。
int nRet;
HANDLE hDeviceHandle;
ADSMPLREQ SmplConfig;
ADBOARDSPEC BoardSpec;
hDeviceHandle = AdOpen ("FBIAD1");
if (hDeviceHandle == INVALID_HANDLE_VALUE){
AfxMessageBox("デバイスのオープンに失敗しました",MB_OK, 0);
return;
}
else{
nRet = AdGetSamplingConfig(hDeviceHandle,&SmplConfig);
if(nRet != AD_ERROR_SUCCESS){
AfxMessageBox("サンプリング設定情報の読み出しに失敗しました",MB_OK, 0);
}
nRet = AdGetDeviceInfo(hDeviceHandle, &BoardSpec );
if(nRet !=AD_ERROR_SUCCESS){
AfxMessageBox("デバイスの情報取得にに失敗しました", MB_OK, 0);
}
SmplConfig.SmplChReq[0]. ulChNo = 2;
SmplConfig.ulSmplNum = 20000;
SmplConfig.fSmplFreq = 20000;
SmplConfig.SmplChReq[0]. ulRange = AD_5V;
nRet = AdSetSamplingConfig(hDeviceHandle,&SmplConfig );
if(nRet != AD_ERROR_SUCCESS){
AfxMessageBox("サンプリング条件設定に失敗しました",MB_OK, 0);
}
nRet = AdStartFileSampling(hDeviceHandle, "DATA .csv",FLAG_CSV);
if(nRet != AD_ERROR_SUCCESS){
AfxMessageBox("CSVファイル作成に失敗しました", MB_OK, 0);
}
}
}
nRet = AdClose(hDeviceHandle);
if (nRet != AD_ERROR_SUCCESS){
AfxMessageBox("デバイスのクローズに失敗しました");
}
どうしてもサンプリング件数を設定しないといけません。設定しないとサンプリング件数が1024点になります。とりあえずサンプリングレートは2万のままでやりたいです。ADボードの使用でサンプリング件数は1.000.000点までしか入力できないので、1.000.000(件数)/20.000(サンプリングレート)で50秒しか記録できません。
常にリアルタイムで記録し続けるプログラムを教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
ことしの初夢、何だった?
2025年になりましたね。1年の吉凶を占う風習といわれている初夢。ことし初めて見た夢、覚えていますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
【お題】追い込まれた犯人が咄嗟に言った一言とは?
-
ADボードのプログラムでの無限サンプリング
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
ページ読み込み時に自動的にsub...
-
C++ Builderにおける画像データ...
-
エラー:ストリームの終わりを...
-
EOF
-
EXCEL VBAでテキストファイルの...
-
テキストデータをSQLServerに取...
-
バイナリファイルの比較につい...
-
Accessからのソケット通信について
-
ADボードプログラムC++
-
PHPのfgetcsvの処理容量について
-
機器とRS232Cクロスケーブルで...
-
ビットマップファイル生成(C言...
-
エクセルVBA 2千万行のCSVファ...
-
EXCEL VBAで、バイナリデータの...
-
【MFC】CFileでSeekした位置か...
-
【python】Excelファイルを読み...
-
VBA バイナリ―から文字列にす...
-
= (イコール)で始まるセルの値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
エクセルVBA 2千万行のCSVファ...
-
ページ読み込み時に自動的にsub...
-
EXCEL VBAでテキストファイルの...
-
EOF
-
【python】Excelファイルを読み...
-
VBA バイナリ―から文字列にす...
-
エラー:ストリームの終わりを...
-
24ビットのWaveデータの中身に...
-
FTPでエクセルをPUTするとファ...
-
テキストデータをSQLServerに取...
-
C言語とシリアル通信の送受信...
-
HDDのバイナリイメージの取得方...
-
EXCEL VBAで、バイナリデータの...
-
入力ファイルをバイナリにする利点
-
【Teraterm】filewritelnについて
-
Javaでのエンディアン変換
-
バイナリファイルの比較につい...
-
バイナリファイルの検索について
おすすめ情報