diff --git a/ECTrainer2/BitalMonitor.cpp b/ECTrainer2/BitalMonitor.cpp index 960b545..aa2e0a0 100644 --- a/ECTrainer2/BitalMonitor.cpp +++ b/ECTrainer2/BitalMonitor.cpp @@ -6,8 +6,7 @@ // �R���X�g���N�^ BitalMonitor::BitalMonitor(ECTrainer* pEct) :BaseProcess(pEct) - , _rrinterval(ECTrainer::RINGBUFSIZE) - , _heartbeat(ECTrainer::RINGBUFSIZE) + , _rrInterval(ECTrainer::RINGBUFSIZE) { } @@ -46,8 +45,7 @@ if (*sp == '#') { int RR = atoi(sp + 1); if (RR > 0) { - _rrinterval.Put(RR); - _heartbeat.Put(60000 / RR); + _rrInterval.Put(RR); } //std::cout << "Read:" << RR << std::endl; } diff --git a/ECTrainer2/BitalMonitor.h b/ECTrainer2/BitalMonitor.h index f7528a7..02dec1c 100644 --- a/ECTrainer2/BitalMonitor.h +++ b/ECTrainer2/BitalMonitor.h @@ -9,13 +9,12 @@ { const int COM_PORT = 4; GComPort _Com; - RingBuffer _rrinterval; - RingBuffer _heartbeat; + RingBuffer _rrInterval; public: BitalMonitor(ECTrainer* pEct); bool Init(); bool MainLoop(); - int GetRR() { return _rrinterval.Get(); } - int GetHB() { return _heartbeat.Get(); } + int GetRR() { return _rrInterval.Get(); } + int GetHB() { return _rrInterval.Get() ? 60000 / _rrInterval.Get() : 0; } }; diff --git a/ECTrainer2/ECTrainer.cpp b/ECTrainer2/ECTrainer.cpp index 04cf562..f7b1c43 100644 --- a/ECTrainer2/ECTrainer.cpp +++ b/ECTrainer2/ECTrainer.cpp @@ -20,7 +20,7 @@ _pMarker = new Marker(); _pProcs[GUI] = new ECTrainerGUI(this); _pProcs[IMGPROC] = new ImageProc(this, _pMarker); - _pProcs[SCNCAM] = new SceneCamera(this, (ImageProc*)_pProcs[IMGPROC]); + _pProcs[SCNCAM] = new SceneCamera(this); _pProcs[STIM] = new Stimulus(this, _pMarker); _pProcs[EYETR] = new EyeTrack(this, _pMarker); _pProcs[REST] = new TobiiREST(this); diff --git a/ECTrainer2/SceneCamera.cpp b/ECTrainer2/SceneCamera.cpp index 6621d46..5c1f4e1 100644 --- a/ECTrainer2/SceneCamera.cpp +++ b/ECTrainer2/SceneCamera.cpp @@ -7,9 +7,7 @@ #include "ImageProc.h" // �R���X�g���N�^ -SceneCamera::SceneCamera(ECTrainer* pEct, ImageProc* pImageProc) - :BaseProcess(pEct), _pImageProc(pImageProc) -{ +SceneCamera::SceneCamera(ECTrainer* pEct) : BaseProcess(pEct) { } @@ -36,8 +34,8 @@ // �V�[���B�e cv::Mat scene; _SceneCam >> scene; - _pImageProc->SetImage(scene); - Sleep(1); + _pEct->PImageProc()->SetImage(scene); + //Sleep(0); } return true; diff --git a/ECTrainer2/SceneCamera.h b/ECTrainer2/SceneCamera.h index 3cab272..5db213b 100644 --- a/ECTrainer2/SceneCamera.h +++ b/ECTrainer2/SceneCamera.h @@ -7,11 +7,10 @@ class SceneCamera : public BaseProcess { - ImageProc* _pImageProc; cv::VideoCapture _SceneCam; public: - SceneCamera(ECTrainer* pEct, ImageProc* pImageProc); + SceneCamera(ECTrainer* pEct); bool Init(); bool MainLoop(); }; diff --git a/ECTrainer2/Worker.cpp b/ECTrainer2/Worker.cpp index 9d929ef..d1225e3 100644 --- a/ECTrainer2/Worker.cpp +++ b/ECTrainer2/Worker.cpp @@ -1,6 +1,7 @@ #include "Worker.h" #include "ECTrainer.h" #include "EyeTrack.h" +#include "BitalMonitor.h" #include "myOpenCV.h" #include #include @@ -17,15 +18,17 @@ int64 start = cv::getTickCount(); FILE* fp; fopen_s(&fp, "log.txt", "w"); - printf("time,gazeVx,gazeVy\n"); + printf("time,gazeVx,gazeVy,RR\n"); while (_pEct->IsAppRun()) { Sleep(0); if (!_pEct->PEyeTrack()->IsNewGazeV()) continue; - float elapse = (float)(cv::getTickCount() - start) * 1000.F / cv::getTickFrequency(); + auto elapse = (cv::getTickCount() - start) * 1000. / cv::getTickFrequency(); + fprintf(fp, "%.1f", elapse); cv::Point2f gazeV = (_pEct->GetGazeV()); - fprintf(fp, "%.1f, %.1f, %.1f\n", elapse, gazeV.x, gazeV.y); + fprintf(fp, ",%.1f,%.1f", gazeV.x, gazeV.y); + fprintf(fp, ",%d", _pEct->PBitalMonitor()->GetRR()); } fclose(fp);