Newer
Older
PrismSoftware / ECTrainer2 / Logger.h
#pragma once

#include <string>
#include <tchar.h>
#include "nkcOpenCV.h"

#define LOG_DIR "../log/"

struct Record {
	double ElapTime;	// 経過時間
	int StimNo;			// 刺激データ番号
	double SceneTime;	// 刺激提示の経過時間
	cv::Point2f GazeV;	// 注視点(視野カメラ座標)
	cv::Point2f Shift;	// ずれ
	cv::Point2f GazeI;	// 注視点(画像座標)
	int Target;			// ターゲット判定
	double ContactTime;	// 目標コンタクト時間
	int Feedback;		// フィードバック
	int	TrainingLevel;	// トレーニングレベル
	int RR;				// バイタル出力(RR間隔)
	float PupilL;		// 瞳孔径
	float PupilR;		// 瞳孔径
	cv::Mat H;			// ホモグラフィ行列
};

// ログ記録クラス
class Logger {
	const char* DATA_LOG_FILE = LOG_DIR "%s_%s_%d.csv";
	const TCHAR* EVENT_LOG_FILE = _T(LOG_DIR "events.txt");

	std::wstring _logFileName;
public:
	Logger();
	static bool Write(TCHAR* filename, TCHAR* msg);
	void Start(std::string subject, int visit);
	void Write(Record& r);
	void Stop();
};

// 将来ログクラスを階層化する
#if 0
class DataLogger : public Logger {
	void Start(std::string subject, int visit);
};
#endif