#pragma once
#include "dt.h"
#include "string.h"
#include <string>
#include <vector>
#include <map>
#include "CLog.h"
//#include "EventMgr.h"
using namespace std;

#pragma comment(lib,"Common.lib")
#pragma comment(lib,"CLog.lib")

typedef enum
{
	CHS,
	ENG
}LANGUAGE_TYPE;

typedef enum
{
	COMMON_ERR = -0x1000,
	ERR_CREAT_AXIS_FAIL,
	ERR_CREAT_IO_FAIL,
	ERR_CREAT_COORD_FAIL,
	ERR_CLASS_UNINIT,
	ERR_READ_DATEBASE,
	ERR_COMMON_DISCONNSQLITE,
	ERR_COMMON_EXECSQLITEORDER_FIAL,
	ERR_CAMERA_OPERATION_FAIL,
	ERR_WAFTER_POSITON_OUT_RANGE,     //��Ƭ̨�ƶ�ʱ��������λ
	ERR_COMMON_GET_RESOLUTION_FAIL,
	ERR_COMMON_UNINIT_CAMERA,
	ERR_TEMPLATE_ID_ERROR,
	ERR_UNINIT,
	ERR_MODULE_CHECK_DIAGMODEL_ENABLE,
	ERR_HEAD_USECOUTOUT,
	ERR_TIP_BLOCK,	//�������
	ERR_TIME_OUT,
	ERR_COMMON_IO_INIT,
	ERR_IO_SET_VACUUM,
	ERR_IO_SET_STRONG,
	ERR_WAF_UNINIT,
	ERR_NULL_POINTER,
	ERR_OTHERS,
	ERR_GET_STEP_PARAM_FAIL,
	ERR_SET_STEP_PARAM_FAIL,
	ERR_MODLE_INII_FAIL,
	ERR_CALIB_FAIL
}ERRID_COMMON;


const static map<ERRID_COMMON, string> g_mapErrorChsDescribe = {

	{ERR_CLASS_UNINIT,"��δ��ʼ����"},
	{ERR_CREAT_AXIS_FAIL,"����CAxis�������"},
	{ERR_CREAT_IO_FAIL,"����CIo�������"},
	{ERR_CREAT_COORD_FAIL,"����CCoord�������"},
	{ERR_READ_DATEBASE,"�����ݿ����"},
	{ERR_COMMON_DISCONNSQLITE,"�������ݿ������"},
	{ERR_COMMON_EXECSQLITEORDER_FIAL,"ִ��SQLָ�������"},
	{ERR_CAMERA_OPERATION_FAIL,"�������������"},
	{ERR_WAFTER_POSITON_OUT_RANGE, "�������������"},
	{ERR_COMMON_GET_RESOLUTION_FAIL,"��ȡ��Դ����"},
	{ERR_COMMON_UNINIT_CAMERA,"���δ��ʼ����"},
	{ERR_TEMPLATE_ID_ERROR,"�Id����"},
	{ERR_UNINIT,"δ��ʼ����"},
	{ERR_MODULE_CHECK_DIAGMODEL_ENABLE,"��⵽���ģʽ�򿪡�"},
	{ERR_HEAD_USECOUTOUT,"���쳬��ʹ�ô�����"},
	{ERR_TIME_OUT,"��ʱ��"},
	{ERR_COMMON_IO_INIT,"IOδ��ʼ����"},
	{ERR_IO_SET_VACUUM,"�������IO����"},
	{ERR_IO_SET_STRONG,"����IO����"},
	{ERR_WAF_UNINIT,"��Ƭ̨δ��ʼ����"},
	{ERR_NULL_POINTER,"��ָ�����"},
	{ERR_MODLE_INII_FAIL,"ģ��δ��ʼ����"},
	{ERR_OTHERS,"��������"},
	{ERR_GET_STEP_PARAM_FAIL," ��ȡStep���в�������"},
	{ERR_SET_STEP_PARAM_FAIL," ����Step���������"},
	{ERR_CALIB_FAIL,"�궨����ʧ��"}
};

const static map<ERRID_COMMON, string> g_mapErrorEngDescribe = {
	{ERR_OTHERS,""},
	{ERR_MODLE_INII_FAIL,""}
};

//void AddWarn() {
//	//����
//
//	//����
//
//	//�����־��
//
//	LOG_WARN("");
//}



static string GetErrorDescribe(ERRID_COMMON iErrId, LANGUAGE_TYPE lang = CHS)
{
	if (lang == LANGUAGE_TYPE::CHS)
	{
		auto it = g_mapErrorChsDescribe.find(iErrId);
		if (it == g_mapErrorChsDescribe.end()) {
			return "unknown error id.";
		}
		return it->second;
	}
	else if (lang == LANGUAGE_TYPE::ENG)
	{
		auto it = g_mapErrorEngDescribe.find(iErrId);
		if (it == g_mapErrorEngDescribe.end()) {
			return "unknown error id.";
		}
		return it->second;
	}

	return "unknown error id.";
}