///////////////////////////////////////////////////////////
//  UI.h
//  Implementation of the Class UI
//  Created on:      09-7-2011 20:24:52
//  Original author: u90499
///////////////////////////////////////////////////////////

#ifndef UI_H_
#define UI_H_


//#include "ハードウェア管理.h"
//#include "PID制御.h"
//#include "コース管理.h"
//#include "タッチセンサ監視.h"
#include "Monitor.h"
//#include "走行管理.h"
//#include "走行体.h"
//#include "順路リスト.h"
#include "StartStopDriver.h"
#include "LineTraceDriver.h"
#include "TouchSensor.h"
#include "LightSensor.h"
#include "Vector.h"

using namespace ecrobot;

#include "NXTway_GS_data.h"

extern "C"
{
	#include "ecrobot_interface.h"
};


class UI
{

public:
	UI();
	virtual ~UI();

//	void Enterボタン押下を通知する();
//	void Runボタン押下を通知する();
	void printcalibration();
	void printCourceSelect();
	void waitForTouchSenserOn();
	void notifyTouchSenserPut();
	bool selectBotton(CHAR chTrueData[],CHAR chFalseData[]);
	void printDifficultStage();
	void printResult(bool bInOutFlag, bool bDifficultStageFlag);
	bool selectOKNG();
	S16 calibrate(char* chData);
	void set_ssDriver(StartStopDriver*  src){ m_ssDriver = src;};
	void set_ltDriver(LineTraceDriver* src){m_ltDriver = src;};
	void set_TouchSensor(TouchSensor*  src){m_touch = src;};
	void set_LightSensor(LightSensor* src){m_light = src;};
	
private:
//	ハードウェア管理 NXT走行体;
//	PID制御 PID制御;
//	コース管理 コース管理;
//	タッチセンサ監視 タッチセンサ監視;
	Monitor* m_monitor;
//	走行管理 走行管理;
//	走行体 走行準備;
//	順路リスト *m_順路リスト;
//	PID制御 *m_PID制御;
//	ハードウェア管理 *m_ハードウェア管理;
	StartStopDriver* m_ssDriver;
	LineTraceDriver* m_ltDriver;
	TouchSensor* m_touch;
	LightSensor* m_light;
};
#endif
