プログラム初学者です。
visualstudio2019を用いてC#で機械学習のためのデータを取るプログラムを作っています。
C#
1string fileName; 2 for (int i = 0; i < 60; i++) 3 { 4 if (NativeThinkgear.TG_GetValueStatus(connectionID, NativeThinkgear.DataType.TG_DATA_ATTENTION) != 0) 5 { 6 if (i == 0) 7 { 8 SystemSounds.Beep.Play(); 9 fileName = fileNameFolder + "data0.txt"; 10 } 11 else if (i <= 21) 12 { 13 fileName = fileNameFolder + "data1to21.txt"; 14 } 15 else if (i == 22) 16 { 17 SystemSounds.Beep.Play(); 18 fileName = fileNameFolder + "data22.txt"; 19 } 20 else if (i <= 52) 21 { 22 fileName = fileNameFolder + "data23to43.txt"; 23 } 24 else if (i == 44) 25 { 26 SystemSounds.Beep.Play(); 27 fileName = fileNameFolder + "data44.txt"; 28 } 29 else 30 { 31 fileName = fileNameFolder + "data45to60.txt"; 32 } 33 34 35 36 37 using (StreamWriter filewrite000 = new StreamWriter(fileName, true)) 38 { 39 attention = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_ATTENTION); 40 meditation = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_MEDITATION); 41 delta = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_DELTA); 42 theta = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_THETA); 43 lowalpha = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_ALPHA1); 44 highalpha = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_ALPHA2); 45 lowbeta = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_BETA1); 46 highbeta = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_BETA2); 47 lowgamma = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_GAMMA1); 48 highgamma = NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_GAMMA2); 49 DateTime dt = DateTime.Now; 50 51 filewrite000.Write(attention + ", " + meditation + ", " + delta + ", " + theta + ", " + lowalpha + ", " + highalpha + ", " + lowbeta + ", " + highbeta + ", " + lowgamma + ", " + highgamma + ", " + dt.ToString() + ", " + state+"\n"); 52 Console.WriteLine(" ATTENTION: MEDITATION: STATE: DELTA: THETA: LOWALPHA: HIGHALPHA: LOWBETA: HIGHBETA: LOWGAMMA: HIGHGAMMA: " + attention, +meditation, +state, +delta, +theta, +lowalpha, +highalpha, +lowbeta, +highbeta, +lowgamma, +highgamma, dt.ToString()); 53 } 54 } 55 56 if (NativeThinkgear.TG_GetValueStatus(connectionID, NativeThinkgear.DataType.TG_DATA_RAW) != 0) 57 { 58 if (NativeThinkgear.TG_GetValueStatus(connectionID, NativeThinkgear.DataType.MWM15_DATA_FILTER_TYPE) != 0) 59 { 60 Console.WriteLine(" Find Filter Type: " + NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.MWM15_DATA_FILTER_TYPE) + " index: " + packetsRead); 61 //break;//実装// 62 } 63 64 65 66 /* Get and print out the updated raw value */ 67 68 69 70 NativeThinkgear.TG_GetValue(connectionID, NativeThinkgear.DataType.TG_DATA_RAW); 71 72 73 74 packetsRead++; 75 76 77 78 if (packetsRead == 800 || packetsRead == 1600) // call twice interval than 1s (512) 79 { 80 errCode = NativeThinkgear.MWM15_getFilterType(connectionID); 81 Console.WriteLine(" MWM15_getFilterType called: " + errCode); 82 } 83 84 85 86 } 87 } 88
#やりたいこと
for分を回しiの値によってファイル名を変える。
一秒ごとに各種パラーメーターをtxtに出力する。
#問題点
現状データが取得出来てはいるが、データが一秒ごとに取得できず、秒数がとびとびになっている。
値を一秒ごとに取得する方法をご教授ください。
先にされているこういう質問の延長、発展だと思うのですが、解決されたのでしょうか。
[DateTime構造体を用いて任意の時間経過後にプログラムを動作するようにしたい] https://teratail.com/questions/364370
※コメントや回答をいただいている状況で放置するようであれば、新しい質問に応えてもらえることも少なくなります。
もらったレス・回答にフィードバックを返さない人は質問する資格がない
詳細を聞かれてもろくな返事をせず、解決済みにした後に雑な返事をするから本当の解決ができない。
聞きたいことがあるなら、事情をしっかり説明するのが常識。
どういった方向性で実装するかなど考えていて返信が遅くなったことは申し訳ないです。
今後は早急に返信していきます。
あなたの回答
tips
プレビュー