
自分でプログラムをADsamplingData関数でやってみたのですがデータが指定の保存場所に出力されません。
CSV形式で保存するプログラムを作ったつもりです。
保存場所はEドライブのEdataの中に出力されるようにしたいです。
ちなみにプログラムはこちらです。
int nRet;
HANDLE hDeviceHandle;
ADSMPLREQ SmplConfig;
ADBOARDSPEC BoardSpec;
ULONG ulSmplNum;
FILE *outp;
WORD wSmplData[20000][2];
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.ulTrigMode = AD_ETERNITY;
SmplConfig.fSmplFreq = 20000;
SmplConfig.SmplChReq[0]. ulRange = AD_5V;
nRet = AdSetSamplingConfig(hDeviceHandle,&SmplConfig );
if(nRet != AD_ERROR_SUCCESS){
AfxMessageBox("サンプリング条件設定に失敗しました",MB_OK, 0);
}
nRet = AdStartSampling(hDeviceHandle, FLAG_SYNC);
if(nRet != AD_ERROR_SUCCESS){
AfxMessageBox("CSVファイル作成に失敗しました", MB_OK, 0);
}
AdGetSamplingData(hDeviceHandle,&wSmplData[0][0], &ulSmplNum );
outp = fopen("E\\Edata\\record.csv","a");
fprintf(outp,"%f\n",wSmplData);
fclose(outp);
}
}
}
何が違うのですか?
dビルドはできるのですが、プログラムを動かしてもファイルができません。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
AdOpen ("FBIAD1");って使ってるのはインターフェースのADボード?
無限サンプリングにもなってないソースに見えますが今後の話?
(ちょっと前に似た件で質問立ててた人?)
まあ上は置いといて
転記ミスでないのならファイルができないのは
>outp = fopen("E\\Edata\\record.csv","a");
が間違っているからではないでしょうか
↑だとプログラム動かした時のカレントフォルダのE\Edata にファイルを書こうとします
E:\\Edata\\record.csv にしてもできませんか?
できたとしてもほかの回答者書かれているようにまともなデータは書き込まれません
fprintf(outp,"%f\n",wSmplData[i][p]);
等のようにして配列分(ループ)書き込み処理してください
それでもできないなら E:\Edata フォルダがないとか
そもそもそこのロジックが走っていないとか
※きちんとソース見たわけではありません
この回答への補足
インターフェイスのADボードを使用しています。前も投稿したものです。
E:\\Edata\\record.csv の:がぬけていたので直しましたがファイルができません。
ちゃんとEドライブの下にEdataをおいています。
ロジックとはどうしたら通りますか?
fprintf(outp,"%f\n",wSmplData[i][p]);はiとpを
forでfor(i=0;i<=94;++i)のようにすればいいですか?
int nRet;
HANDLE hDeviceHandle;
ADSMPLREQ SmplConfig;
ADBOARDSPEC BoardSpec;
ULONG ulSmplNum;
FILE *outp;
WORD wSmplData[20000];
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.ulTrigMode = AD_ETERNITY;
SmplConfig.fSmplFreq = 20000;
SmplConfig.SmplChReq[0]. ulRange = AD_5V;
nRet = AdSetSamplingConfig(hDeviceHandle,&SmplConfig );
if(nRet != AD_ERROR_SUCCESS){
AfxMessageBox("サンプリング条件設定に失敗しました",MB_OK, 0);
}
nRet = AdStartSampling(hDeviceHandle, FLAG_SYNC);
if(nRet != AD_ERROR_SUCCESS){
AfxMessageBox("CSVファイル作成に失敗しました", MB_OK, 0);
}
AdGetSamplingData(hDeviceHandle,&wSmplData[0], &ulSmplNum );
AdOutputDO(hDeviceHandle,1);
outp = fopen("E:\\Edata\\record.csv","a");
fprintf(outp,"%f\n",wSmplData[0]);
fclose(outp);
}
}
}
ちなみに直したプログラムがこちらです。
No.2
- 回答日時:
≻WORD wSmplData[20000][2];
≻fprintf(outp,"%f\n",wSmplData);
無理です、アドレスを浮動少数点数として出力できません、出力がないのではなく変になるだけですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル形式またはファイル拡...
-
シェルコマンドの 2>&1 とはど...
-
ファイルの文字コードをUTF-8に...
-
コマンド(例えばls)の出力結果...
-
(VBA)書式が変更されてしまい...
-
CSV形式に変換
-
ファイル出力の場所を指定
-
Wordマクロで指定したフォルダ...
-
C言語初心者の質問失礼します。
-
FTPでputすると空ファイルが出...
-
フルパスから最後のディレクト...
-
Wordファイルの結合
-
バッファとは何ですか
-
絶対パスの絶対て英語で何でし...
-
SGファイルって何ですか?
-
VB.NETで他のプロジェクトで作...
-
dataファイルをxtxファイルにす...
-
C言語でBMPファイルの内容を表...
-
OLE又はDDEを使うVISUAL BESIC...
-
営業秘密の漏洩について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル形式またはファイル拡...
-
Acccess レポートをグループ別...
-
CSVファイルを任意の場所に出力...
-
テキストファイルに改行コード...
-
コマンド(例えばls)の出力結果...
-
シェルコマンドの 2>&1 とはど...
-
ファイルの文字コードをUTF-8に...
-
(VBA)書式が変更されてしまい...
-
BitBltについて。
-
SendKeys "^V", True(貼り付け...
-
Excel のページを Jpegファイル...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
VB.NETでExcelファイルを出力す...
-
AccessVBA複数レポート条件毎に...
-
raw形式からbmp形式への書き込...
-
Paiza Cloudです。 どうやれば...
-
OCRで起こしたテキスト文字をCS...
-
Wordマクロで指定したフォルダ...
-
C言語での縦方向のファイル出力...
-
VC++でUTF-8のファイルを出力し...
おすすめ情報