#include <dsensor.h>        // dsensorライブラリHeaderのInclude
#include <unistd.h>         // shutdown_requested()のため
#include <conio.h>
#include "in_course.h"

#if defined(DEBUG_LOG)
#include <lnp.h>
#endif /*defined(DEBUG_LOG)*/
//------------------------------------------------------------------------------

void do_calib(unsigned short* color, char* select);

//------------------------------------------------------------------------------


void start_calib(DRIVE_DATA *data)
{
	cls(); // clear lcd

	/*黒色キャリブレーション開始*/
	do_calib(&(data->calib_black), "B");

	cls(); // clear lcd

	/*灰色キャリブレーション開始*/
	do_calib(&(data->calib_gray), "G");

	cls(); // clear lcd

	/*白色キャリブレーション開始*/
	do_calib(&(data->calib_white), "W");

	cls(); // clear lcd

	/*黒色・灰色の境界セット*/
//	data->border_gb = ((long)data->calib_black + data->calib_gray) / 2;
	data->border_gb = data->calib_gray + 500;

	cls(); // clear lcd

	/*白色・灰色の境界セット*/
//	data->border_wg = ((long)data->calib_gray + data->calib_white) / 2;
	data->border_wg = data->calib_gray - 200;

	cls(); // clear lcd

}

void do_calib(unsigned short *color, char *select)
{
	unsigned char counter;
	unsigned long tmp_color = 0;

	sleep(1);
	cputs(select);
	wait_event(dkey_pressed ,KEY_PRGM);
	sleep(1);

	for (counter = 0; counter<CALIB_COUNT; counter++) {
		tmp_color += USE_SENSOR;
	}

	*color = tmp_color / counter;
	

}