diff --git a/ECTrainer2/ECTrainerGUI.cpp b/ECTrainer2/ECTrainerGUI.cpp index 23f4cb1..ef69d31 100644 --- a/ECTrainer2/ECTrainerGUI.cpp +++ b/ECTrainer2/ECTrainerGUI.cpp @@ -117,17 +117,23 @@ if (cvui::button(140, 30, "START")) { Ect()->PWorker()->PostMsg((int)ECTMSG::EXP_START); } + cvui::beginRow(); + cvui::printf("Stage "); + cvui::counter(Ect()->PWorker()->StartStagePtr()); + cvui::endRow(); break; case APP_STATUS::STIM: if (cvui::button(140, 30, "STOP")) { Ect()->PDSMovie()->StopMovie(); Ect()->PWorker()->PostMsg((int)ECTMSG::EXP_STOP); } + cvui::printf("Stage %d", Ect()->PStimulus()->GetStage()); break; } cvui::beginRow(); cvui::printf("Level "); cvui::counter(Ect()->PWorker()->TrainingLevelPtr()); + if (*Ect()->PWorker()->TrainingLevelPtr() < 1) *Ect()->PWorker()->TrainingLevelPtr() = 1; cvui::endRow(); cvui::printf("View Gaze %.0f, %.0f", Ect()->PEyeTrack()->GetGazeV().x, Ect()->PEyeTrack()->GetGazeV().y); //cvui::printf("Img Gaze %.2f, %.2f", Ect()->GetGazeI().x, Ect()->GetGazeI().y); diff --git a/ECTrainer2/Stimulus.cpp b/ECTrainer2/Stimulus.cpp index b119abc..235ccfc 100644 --- a/ECTrainer2/Stimulus.cpp +++ b/ECTrainer2/Stimulus.cpp @@ -11,6 +11,7 @@ , _Display() , _Movie() , _TotalExpTime(0) + , _Stage(0) { _pMovieObject = new MovieObject; } @@ -44,7 +45,7 @@ st.dulation = (float)atof(table[r][2].c_str()); st.csvfile = table[r][3]; st.smallmovie = table[r][4]; - st.stimno = atoi(table[r][5].c_str()); + st.stage = atoi(table[r][5].c_str()); if (st.filepath.size() > 0) { _StimInfoSet.push_back(st); _TotalExpTime += st.dulation; @@ -164,6 +165,8 @@ this->SetImage(_StimInfoSet[newStimNo].filepath); } + if (newStimNo == 0 || _StimInfoSet[newStimNo].stage > 0) _Stage = _StimInfoSet[newStimNo].stage; + _StimTimer.Reset(); _StimNo = newStimNo; return true; diff --git a/ECTrainer2/Stimulus.h b/ECTrainer2/Stimulus.h index 0af5450..337cb49 100644 --- a/ECTrainer2/Stimulus.h +++ b/ECTrainer2/Stimulus.h @@ -22,7 +22,7 @@ std::string smallmovie; // 縮小動画ファイル名 float dulation; // 時間(sec) std::string csvfile; // ターゲット座標ファイル(無い場合は_アンダーバー) - int stimno; // 刺激番号 + int stage; // 刺激ステージ }; class Stimulus : public BaseProcess @@ -47,6 +47,7 @@ nkc::RingBuffer _Movie; // 動画情報 cv::VideoCapture _cap; // 動画オブジェクト float _TotalExpTime; // 合計実験時間 + int _Stage; // 刺激ステージ // ECTrainerインスタンス取得 ECTrainer* Ect() { return (ECTrainer*)_pUserdata; } @@ -96,4 +97,6 @@ float GetTotalExpTime() { return _TotalExpTime; } // ソフトウェアキャリブレーション実行中かどうか bool IsSoftCalib() { return _StimNo < 0 ? false : _StimInfoSet[_StimNo].type == StimInfo::TYPE_CALIB; } + // ステージ取得 + int GetStage() { return _Stage; } }; diff --git a/ECTrainer2/Worker.cpp b/ECTrainer2/Worker.cpp index cb2921c..4256708 100644 --- a/ECTrainer2/Worker.cpp +++ b/ECTrainer2/Worker.cpp @@ -22,6 +22,7 @@ , _FBLevel(1) , _TrainingLevel(1) , _Shift(0, 0) + , _StartStage(0) { _pExpTimer = new nkc::HPTimer(); _pContactTimer = new nkc::HPTimer(); diff --git a/ECTrainer2/Worker.h b/ECTrainer2/Worker.h index 7ca1536..d290b4f 100644 --- a/ECTrainer2/Worker.h +++ b/ECTrainer2/Worker.h @@ -43,6 +43,7 @@ int _TrainingLevel; // トレーニングレベル(高いほど難度UP) std::vector _ShiftLog; // 注視点のずれ記録 cv::Point2f _Shift; // 注視点のずれ + int _StartStage; // 開始ステージ // ECTrainerインスタンス取得 ECTrainer* Ect() { return (ECTrainer*)_pUserdata; } @@ -84,6 +85,8 @@ void SetTrigger() { ::SetEvent(_Trigger); } // トレーニングレベルのポインタ int* TrainingLevelPtr() { return &_TrainingLevel; } + // トレーニングレベルのポインタ + int* StartStagePtr() { return &_StartStage; } // ずれ記録のクリア void ClearShift() { _ShiftLog.clear(); } }; diff --git a/config/visit00.txt b/config/visit00.txt index baf6188..946aef2 100644 --- a/config/visit00.txt +++ b/config/visit00.txt @@ -1,20 +1,20 @@ ���,�h���i�摜�E����j,�񎦎��ԁi�b�j,�^�[�Q�b�g���,�k������,�h���ԍ� -3,../images/SoftCalib/SoftCalib1.png,3,../images/SoftCalib/SoftCalib1.csv,_, -3,../images/SoftCalib/SoftCalib2.png,3,../images/SoftCalib/SoftCalib2.csv,_, -3,../images/SoftCalib/SoftCalib3.png,3,../images/SoftCalib/SoftCalib3.csv,_, -3,../images/SoftCalib/SoftCalib4.png,3,../images/SoftCalib/SoftCalib4.csv,_, +3,../images/SoftCalib/SoftCalib1.png,3,../images/SoftCalib/SoftCalib1.csv,_,_ +3,../images/SoftCalib/SoftCalib2.png,3,../images/SoftCalib/SoftCalib2.csv,_,_ +3,../images/SoftCalib/SoftCalib3.png,3,../images/SoftCalib/SoftCalib3.csv,_,_ +3,../images/SoftCalib/SoftCalib4.png,3,../images/SoftCalib/SoftCalib4.csv,_,_ 1,../images/visit01/visit01_001.png,5,_,_,1 -2,../movies/visit01/visit01_001.avi,10,../movies/visit01/visit01_001.csv,../movies/visit01/visit01_001vga.avi, +2,../movies/visit01/visit01_001.avi,10,../movies/visit01/visit01_001.csv,../movies/visit01/visit01_001vga.avi,_ 1,../images/visit01/visit01_003.png,5,_,_,2 -2,../movies/visit01/visit01_003.avi,10,../movies/visit01/visit01_003.csv,../movies/visit01/visit01_003vga.avi, +2,../movies/visit01/visit01_003.avi,10,../movies/visit01/visit01_003.csv,../movies/visit01/visit01_003vga.avi,_ -2,../movies/break/break01.avi,30,../movies/break/break.csv,../movies/break/break01vga.avi, +2,../movies/break/break01.avi,30,../movies/break/break.csv,../movies/break/break01vga.avi,_ 1,../images/visit01/visit01_006.png,5,_,_,3 -2,../movies/visit01/visit01_006.avi,10,../movies/visit01/visit01_006.csv,../movies/visit01/visit01_006vga.avi, +2,../movies/visit01/visit01_006.avi,10,../movies/visit01/visit01_006.csv,../movies/visit01/visit01_006vga.avi,_ 1,../images/visit01/visit01_008.png,5,_,_,4 -2,../movies/visit01/visit01_008.avi,10,../movies/visit01/visit01_008.csv,../movies/visit01/visit01_008vga.avi, +2,../movies/visit01/visit01_008.avi,10,../movies/visit01/visit01_008.csv,../movies/visit01/visit01_008vga.avi,_ -1,../images/visit01/visit01_end.png,15,_,_ +1,../images/visit01/visit01_end.png,15,_,_,_