#pragma once
#include <string>
#include <vector>
#include <tchar.h>
#include "nkcOpenCV.h"
#define LOG_DIR "../log/"
struct Record {
double ElapTime; // 経過時間
int StimNo; // 刺激データ番号
int SceneNo; // シーン番号
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 {
std::wstring _logFileName;
std::vector<Record> _Records;
public:
static const char* DATA_LOG_FILE;
static const char* CALIB_LOG_FILE;
static const TCHAR* EVENT_LOG_FILE;
static bool Append(const TCHAR* filename, const TCHAR* msg);
static void WriteEvent(const TCHAR* msg);
Logger();
void StartRecord(std::string subject, int visit, bool isCalib = false);
void WriteRecord(Record& r);
void Stop();
std::wstring Filename() { return _logFileName; };
};
// 将来ログクラスを階層化する
#if 0
class DataLogger : public Logger {
void Start(std::string subject, int visit);
};
#endif