/*******************************************************************************
*	ファイル名：CollectCommon.h
*	用　　　途：収集データ共通定義
*	備　　　考：
*	履　　　歴：
********************************************************************************/

/****************************
*	 コンパイル環境設定		*
****************************/
#pragma once

/****************************
*	インクルードファイル	*
****************************/
/****************************
*	　マクロ・定数定義		*
****************************/
// OPインデックス定義
enum{
	OP_10					= 0	,		// OP10
	OP_20						,		// OP20
	OP_30						,		// OP30
	OP_40						,		// OP40
	OP_50						,		// OP50
	OP_60						,		// OP60

	NOF_OP

} ;

//***** 各種文字列長
#define	ITEM_NAME_BUFLEN				100
#define	WORK_ID_BUFLEN					40
#define	ASSY_BUFLEN						20
#define	INSPECT_BUFLEN					256
#define	KIND_NAME_BUFLEN				20
#define	DATETIME_BUFLEN					40
#define	TOOL_ID_BUFLEN					10
#define	MESITEM_BUFLEN					128
#define	DATAITEM_BUFLEN					128
#define	FEATURE_NAME_BUFLEN				40
#define	CNC_NO_BUFLEN					30
#define	NCLOGGER_FILENAME_BUFLEN		256
#define	IPADDRESS_BUFLEN				45
#define	MODELNAME_BUFLEN				45
#define	FEATURETYPE_BUFLEN				45
#define WORKSERIAL_BUFLEN				16

enum{
	INSKIND_NORMAL			= 0	,		// 通常検査
	INSKIND_NORMAL_FIRST		,		// 通常検査 初品有り
	INSKIND_ALL					,		// 全数検査
	INSKIND_ALL_ARRANGE			,		// 全数検査 段替え初品

	NOF_INSKIND
} ;

// 計測データビット定義
#define	MES_DATA_MINING			0x02	// 計測データビット2(マイニング)
#define	MES_DATA_SETTING1		0x04	// 計測データビット3(設定１)
#define	MES_DATA_SETTING2		0x04	// 計測データビット3(設定２)
#define	MES_DATA_SETTING3		0x04	// 計測データビット3(設定３)
#define	MES_DATA_SETTING4		0x04	// 計測データビット4(設定4)

// 計測NGビット定義
#define	MES_NG_MINING			0x02	// 計測NGビット2(マイニング)
#define	MES_NG_BREAK			0x04	// 計測NGビット3(折損前検知)
#define	MES_NG_FIRST			0x08	// 計測NGビット4(初品チェック工具)
#define	MES_NG_SETTING1			0x10	// 計測NGビット5(設定１)
#define	MES_NG_SETTING2			0x10	// 計測NGビット5(設定２)
#define	MES_NG_SETTING3			0x10	// 計測NGビット5(設定３)
#define	MES_NG_SETTING4			0x10	// 計測NGビット5(設定4)

// 判定
enum{
	JUDGE_OK				= 0	,		// OK判定
	JUDGE_NG					,		// NG判定

	NOF_JUDGE

} ;


//-------------------------------------------------------------
// データ収集関係
//-------------------------------------------------------------
#define	MINING_QUEUE_SIZE			20		// マイニングデータ収集キューサイズ
#define	SETTING1_QUEUE_SIZE			5		// 設定１収集キューサイズ
#define	SETTING2_QUEUE_SIZE			5		// 設定２収集キューサイズ	
#define	SETTING3_QUEUE_SIZE			5		// 設定３収集キューサイズ	
#define	SETTING4_QUEUE_SIZE			5		// 設定４収集キューサイズ	
#define	PRODUCTSINFO_QUEUE_SIZE		10		// 生産情報収集キューサイズ	

////**** 生産情報データ関係
//#define	DATA_PATH_MARK				0		// 刻印データチェックデータパス
//#define	DATA_PATH_OP				1		// OPごとのワーク排出時間チェックデータパス
//#define	DATA_PATH_ULO				2		// アンローダのワーク排出時間チェックデータパス
//#define	NOF_TOOL_OP					60		// OPごとの工具数

//**** 設定１データ関係
#define NOF_MES_FEATURE1			3

// データ定義
enum{
	SETTING1_WORKID					= 0	,	// ワークID
	SETTING1_DATETIME					,	// 計測日時
	SETTING1_OPNO						,	// OP番号
	SETTING1_MESITEM					,	// 計測項目
	SETTING1_MESITEM_NAME				,	// 計測項目名称
	SETTING1_NGBIT						,	// NGビット
	SETTING1_RESULTID					,	// 結果ID
	SETTING1_DATAITEM					,	// データ項目
	SETTING1_FEATURE1_ENABLE			,	// 特徴量1有効
	SETTING1_FEATURE1_NAME				,	// 特徴量1名称
	SETTING1_FEATURE1_JUDGE				,	// 特徴量1判定
	SETTING1_FEATURE1_JDGKIND			,	// 特徴量1判定種類
	SETTING1_FEATURE1_VALUE				,	// 特徴量1計測値
	SETTING1_FEATURE1_MIN				,	// 特徴量1計測値下限
	SETTING1_FEATURE1_MAX				,	// 特徴量1計測値上限
	SETTING1_FEATURE2_ENABLE			,	// 特徴量2有効
	SETTING1_FEATURE2_NAME				,	// 特徴量2名称
	SETTING1_FEATURE2_JUDGE				,	// 特徴量2判定
	SETTING1_FEATURE2_JDGKIND			,	// 特徴量2判定種類
	SETTING1_FEATURE2_VALUE				,	// 特徴量2計測値
	SETTING1_FEATURE2_MIN				,	// 特徴量2計測値下限
	SETTING1_FEATURE2_MAX				,	// 特徴量2計測値上限
	SETTING1_FEATURE3_ENABLE			,	// 特徴量3有効
	SETTING1_FEATURE3_NAME				,	// 特徴量3名称
	SETTING1_FEATURE3_JUDGE				,	// 特徴量3判定
	SETTING1_FEATURE3_JDGKIND			,	// 特徴量3判定種類
	SETTING1_FEATURE3_VALUE				,	// 特徴量3計測値
	SETTING1_FEATURE3_MIN				,	// 特徴量3計測値下限
	SETTING1_FEATURE3_MAX				,	// 特徴量3計測値上限
	SETTING1_CNC_NO						,	// CNC No
	SETTING1_IPADDRESS					,	// IpAddress(加工機)
	SETTING1_MODELNAME					,	// ModelName(加工機名)
	SETTING1_FEATURETYPE				,	// KOMTAS Viewer機能選択
	SETTING1_NCLOGGER_FILENAME			,	// NCLogger生データファイル名
	SETTING1_TOOLNO						,	// 工具番号

	NOF_SETTING1_DATA
} ;	

// 設定１特徴量データ構造体
typedef struct {
	BOOL				bEnable ;							// 有効フラグ
	TCHAR				szName		[FEATURE_NAME_BUFLEN] ;	// 特徴量名称
	INT32				nJudge ;							// 判定
	INT32				nJudgeKind ;						// 判定種
	double				dValue ;							// 計測値
	double				dMin ;								// 計測値下限
	double				dMax ;								// 計測値上限

} FEATURE_DATA1, *P_FEATURE_DATA1 ;

// 設定１データ構造体
typedef struct {
	TCHAR				szWorkID	[WORK_ID_BUFLEN] ;		// ワークID
	TCHAR				szDateTime	[DATETIME_BUFLEN] ;		// 計測日時
	INT32				nOpNo ;								// OP番号
	INT32				nMesItem ;							// 計測項目
	TCHAR				szMesItem	[MESITEM_BUFLEN] ;		// 計測項目名称
	INT32				nNgBit ;							// NGビット
	INT32				nResultID ;							// 結果ID
	TCHAR				szDataItem	[DATAITEM_BUFLEN] ;		// データ項目名称
	TCHAR				szCncNo		[CNC_NO_BUFLEN] ;		// CNC No
	TCHAR				szNcLoggerFileName	[NCLOGGER_FILENAME_BUFLEN];		// NCLogger生データファイル名
	TCHAR				szIpAddress[IPADDRESS_BUFLEN];		// IpAddress(加工機)
	TCHAR				szModelName[MODELNAME_BUFLEN];		// ModelName(加工機名)
	TCHAR				szFeatureType[FEATURETYPE_BUFLEN];	// KOMTAS Viewer機能選択
	INT32				nToolNo;							// 工具番号
	FEATURE_DATA1		taFeature	[NOF_MES_FEATURE1] ;		// 特徴量データ構造体配列

} SETTING1_DATA, *P_SETTING1_DATA ;


//**** マイニングデータ関係
#define	NOF_JUDGE_ITEM_RANK		5			// 項目診断上位ランク数

// データ定義
enum{
	MINING_WORKID					= 0	,	// ワークID
	MINING_DATETIME						,	// 計測日時
	MINING_OPNO							,	// OP番号
	MINING_ONO							,	// O番号
	MINING_TOOLNO						,	// ツール番号
	MINING_TOOLID						,	// ツール背番号
	MINING_TOOLCOUNT					,	// ツール加工回数
	MINING_JUDGE						,	// 判定
	MINING_VALUE						,	// 計測値
	MINING_MAX							,	// 計測値上限
	MINING_BREAKAGE						,	// 折損前検知フラグ
	MINING_LINEID						,	// ラインID
	MINING_IMP1_SENSOR					,	// 項目診断1 データ項目
	MINING_IMP1_FEATURE					,	// 項目診断1 特徴量番号
	MINING_IMP1_VALUE					,	// 項目診断1 診断値
	MINING_IMP2_SENSOR					,	// 項目診断2 データ項目
	MINING_IMP2_FEATURE					,	// 項目診断2 特徴量番号
	MINING_IMP2_VALUE					,	// 項目診断2 診断値
	MINING_IMP3_SENSOR					,	// 項目診断3 データ項目
	MINING_IMP3_FEATURE					,	// 項目診断3 特徴量番号
	MINING_IMP3_VALUE					,	// 項目診断3 診断値
	MINING_IMP4_SENSOR					,	// 項目診断4 データ項目
	MINING_IMP4_FEATURE					,	// 項目診断4 特徴量番号
	MINING_IMP4_VALUE					,	// 項目診断4 診断値
	MINING_IMP5_SENSOR					,	// 項目診断5 データ項目
	MINING_IMP5_FEATURE					,	// 項目診断5 特徴量番号
	MINING_TBL_COL_IMP5_VALUE			,	// 項目診断5 診断値
	MINING_IPADDRESS					,	// IpAddress(加工機)
	MINING_MODELNAME					,	// ModelName(加工機名)
	MINING_FEATURETYPE					,	// KOMTAS Viewer機能選択
	MINING_NCLOGGER_FILENAME			,	// NCLogger生データファイル名
	
	NOF_MINING_DATA
} ;

typedef struct {
	INT32				nItem ;
	INT32				nFeature ;
	double				dValue ;

}T_JUDGE_ITEM_RESULT, *P_JUDGE_ITEM_RESULT;

// マイニングデータ構造体
typedef struct {
	TCHAR				szWorkID	[WORK_ID_BUFLEN] ;		// ワークID
	TCHAR				szDateTime	[DATETIME_BUFLEN] ;		// 計測日時
	INT32				nOpNo ;								// OP No
	INT32				nONo ;								// O No
	INT32				nToolNo ;							// ツールNo
	TCHAR				szToolID	[TOOL_ID_BUFLEN] ;		// ツールID
	INT32				nToolCount ;						// ツールカウント
	INT32				nJudge ;							// 判定
	double				dValue ;							// 計測値
	double				dMax ;								// 上限
	BOOL				bBreakage ;							// 折損前検知結果
	INT32				nLineID ;							// LineID
	TCHAR				szNcLoggerFileName[NCLOGGER_FILENAME_BUFLEN];		// NCLogger生データファイル名
	TCHAR				szIpAddress[IPADDRESS_BUFLEN];		// IpAddress(加工機)
	TCHAR				szModelName[MODELNAME_BUFLEN];		// ModelName(加工機名)
	TCHAR				szFeatureType[FEATURETYPE_BUFLEN];	// KOMTAS Viewer機能選択
	T_JUDGE_ITEM_RESULT	taJudgeItem	[NOF_JUDGE_ITEM_RANK] ;	// 項目診断結果

} MINING_DATA, *P_MINING_DATA ;

//**** 設定２データ関係
#define NOF_MES_FEATURE			3

// データ定義
enum{
	SETTING2_WORKID					= 0	,	// ワークID
	SETTING2_DATETIME					,	// 計測日時
	SETTING2_OPNO						,	// OP番号
	SETTING2_MESITEM					,	// 計測項目
	SETTING2_MESITEM_NAME				,	// 計測項目名称
	SETTING2_NGBIT						,	// NGビット
	SETTING2_RESULTID					,	// 結果ID
	SETTING2_DATAITEM					,	// データ項目
	SETTING2_FEATURE1_ENABLE			,	// 特徴量1有効
	SETTING2_FEATURE1_NAME				,	// 特徴量1名称
	SETTING2_FEATURE1_JUDGE				,	// 特徴量1判定
	SETTING2_FEATURE1_JDGKIND			,	// 特徴量1判定種類
	SETTING2_FEATURE1_VALUE				,	// 特徴量1計測値
	SETTING2_FEATURE1_MIN				,	// 特徴量1計測値下限
	SETTING2_FEATURE1_MAX				,	// 特徴量1計測値上限
	SETTING2_FEATURE2_ENABLE			,	// 特徴量2有効
	SETTING2_FEATURE2_NAME				,	// 特徴量2名称
	SETTING2_FEATURE2_JUDGE				,	// 特徴量2判定
	SETTING2_FEATURE2_JDGKIND			,	// 特徴量2判定種類
	SETTING2_FEATURE2_VALUE				,	// 特徴量2計測値
	SETTING2_FEATURE2_MIN				,	// 特徴量2計測値下限
	SETTING2_FEATURE2_MAX				,	// 特徴量2計測値上限
	SETTING2_FEATURE3_ENABLE			,	// 特徴量3有効
	SETTING2_FEATURE3_NAME				,	// 特徴量3名称
	SETTING2_FEATURE3_JUDGE				,	// 特徴量3判定
	SETTING2_FEATURE3_JDGKIND			,	// 特徴量3判定種類
	SETTING2_FEATURE3_VALUE				,	// 特徴量3計測値
	SETTING2_FEATURE3_MIN				,	// 特徴量3計測値下限
	SETTING2_FEATURE3_MAX				,	// 特徴量3計測値上限
	SETTING2_CNC_NO						,	// CNC No
	SETTING2_IPADDRESS					,	// IpAddress(加工機)
	SETTING2_MODELNAME					,	// ModelName(加工機名)
	SETTING2_FEATURETYPE				,	// KOMTAS Viewer機能選択
	SETTING2_NCLOGGER_FILENAME			,	// NCLogger生データファイル名
	SETTING2_TOOLNO						,	// 工具番号

	NOF_SETTING2_DATA
} ;	

// 設定２特徴量データ構造体
typedef struct {
	BOOL				bEnable ;							// 有効フラグ
	TCHAR				szName		[FEATURE_NAME_BUFLEN] ;	// 特徴量名称
	INT32				nJudge ;							// 判定
	INT32				nJudgeKind ;						// 判定種
	double				dValue ;							// 計測値
	double				dMin ;								// 計測値下限
	double				dMax ;								// 計測値上限

} FEATURE_DATA, *P_FEATURE_DATA ;

// 設定２データ構造体
typedef struct {
	TCHAR				szWorkID	[WORK_ID_BUFLEN] ;		// ワークID
	TCHAR				szDateTime	[DATETIME_BUFLEN] ;		// 計測日時
	INT32				nOpNo ;								// OP番号
	INT32				nMesItem ;							// 計測項目
	TCHAR				szMesItem	[MESITEM_BUFLEN] ;		// 計測項目名称
	INT32				nNgBit ;							// NGビット
	INT32				nResultID ;							// 結果ID
	TCHAR				szDataItem	[DATAITEM_BUFLEN] ;		// データ項目名称
	TCHAR				szCncNo		[CNC_NO_BUFLEN] ;		// CNC No
	TCHAR				szNcLoggerFileName[NCLOGGER_FILENAME_BUFLEN];		// NCLogger生データファイル名
	TCHAR				szIpAddress[IPADDRESS_BUFLEN];		// IpAddress(加工機)
	TCHAR				szModelName[MODELNAME_BUFLEN];		// ModelName(加工機名)
	TCHAR				szFeatureType[FEATURETYPE_BUFLEN];	// KOMTAS Viewer機能選択
	INT32				nToolNo;							// 工具番号
	FEATURE_DATA		taFeature	[NOF_MES_FEATURE] ;		// 特徴量データ構造体配列

} SETTING2_DATA, *P_SETTING2_DATA ;


//**** 設定３データ関係
#define NOF_MES_FEATURE3			3

// データ定義
enum{
	SETTING3_WORKID					= 0	,	// ワークID
	SETTING3_DATETIME					,	// 計測日時
	SETTING3_OPNO						,	// OP番号
	SETTING3_MESITEM					,	// 計測項目
	SETTING3_MESITEM_NAME				,	// 計測項目名称
	SETTING3_NGBIT						,	// NGビット
	SETTING3_RESULTID					,	// 結果ID
	SETTING3_DATAITEM					,	// データ項目
	SETTING3_FEATURE1_ENABLE			,	// 特徴量1有効
	SETTING3_FEATURE1_NAME				,	// 特徴量1名称
	SETTING3_FEATURE1_JUDGE				,	// 特徴量1判定
	SETTING3_FEATURE1_JDGKIND			,	// 特徴量1判定種類
	SETTING3_FEATURE1_VALUE				,	// 特徴量1計測値
	SETTING3_FEATURE1_MIN				,	// 特徴量1計測値下限
	SETTING3_FEATURE1_MAX				,	// 特徴量1計測値上限
	SETTING3_FEATURE2_ENABLE			,	// 特徴量2有効
	SETTING3_FEATURE2_NAME				,	// 特徴量2名称
	SETTING3_FEATURE2_JUDGE				,	// 特徴量2判定
	SETTING3_FEATURE2_JDGKIND			,	// 特徴量2判定種類
	SETTING3_FEATURE2_VALUE				,	// 特徴量2計測値
	SETTING3_FEATURE2_MIN				,	// 特徴量2計測値下限
	SETTING3_FEATURE2_MAX				,	// 特徴量2計測値上限
	SETTING3_FEATURE3_ENABLE			,	// 特徴量3有効
	SETTING3_FEATURE3_NAME				,	// 特徴量3名称
	SETTING3_FEATURE3_JUDGE				,	// 特徴量3判定
	SETTING3_FEATURE3_JDGKIND			,	// 特徴量3判定種類
	SETTING3_FEATURE3_VALUE				,	// 特徴量3計測値
	SETTING3_FEATURE3_MIN				,	// 特徴量3計測値下限
	SETTING3_FEATURE3_MAX				,	// 特徴量3計測値上限
	SETTING3_CNC_NO						,	// CNC No
	SETTING3_IPADDRESS					,	// IpAddress(加工機)
	SETTING3_MODELNAME					,	// ModelName(加工機名)
	SETTING3_FEATURETYPE				,	// KOMTAS Viewer機能選択
	SETTING3_NCLOGGER_FILENAME			,	// NCLogger生データファイル名
	SETTING3_TOOLNO						,	// 工具番号

	NOF_SETTING3_DATA
} ;	

// 設定３特徴量データ構造体
typedef struct {
	BOOL				bEnable ;							// 有効フラグ
	TCHAR				szName		[FEATURE_NAME_BUFLEN] ;	// 特徴量名称
	INT32				nJudge ;							// 判定
	INT32				nJudgeKind ;						// 判定種
	double				dValue ;							// 計測値
	double				dMin ;								// 計測値下限
	double				dMax ;								// 計測値上限

} FEATURE_DATA3, *P_FEATURE_DATA3 ;

// 設定３データ構造体
typedef struct {
	TCHAR				szWorkID	[WORK_ID_BUFLEN] ;		// ワークID
	TCHAR				szDateTime	[DATETIME_BUFLEN] ;		// 計測日時
	INT32				nOpNo ;								// OP番号
	INT32				nMesItem ;							// 計測項目
	TCHAR				szMesItem	[MESITEM_BUFLEN] ;		// 計測項目名称
	INT32				nNgBit ;							// NGビット
	INT32				nResultID ;							// 結果ID
	TCHAR				szDataItem	[DATAITEM_BUFLEN] ;		// データ項目名称
	TCHAR				szCncNo		[CNC_NO_BUFLEN] ;		// CNC No
	TCHAR				szNcLoggerFileName[NCLOGGER_FILENAME_BUFLEN];		// NCLogger生データファイル名
	TCHAR				szIpAddress[IPADDRESS_BUFLEN];		// IpAddress(加工機)
	TCHAR				szModelName[MODELNAME_BUFLEN];		// ModelName(加工機名)
	TCHAR				szFeatureType[FEATURETYPE_BUFLEN];	// KOMTAS Viewer機能選択
	INT32				nToolNo;							// 工具番号
	FEATURE_DATA3		taFeature	[NOF_MES_FEATURE3] ;		// 特徴量データ構造体配列

} SETTING3_DATA, *P_SETTING3_DATA ;


//**** 設定４データ関係
#define NOF_MES_FEATURE4			3

// データ定義
enum{
	SETTING4_WORKID					= 0	,	// ワークID
	SETTING4_DATETIME					,	// 計測日時
	SETTING4_OPNO						,	// OP番号
	SETTING4_MESITEM					,	// 計測項目
	SETTING4_MESITEM_NAME				,	// 計測項目名称
	SETTING4_NGBIT						,	// NGビット
	SETTING4_RESULTID					,	// 結果ID
	SETTING4_DATAITEM					,	// データ項目
	SETTING4_FEATURE1_ENABLE			,	// 特徴量1有効
	SETTING4_FEATURE1_NAME				,	// 特徴量1名称
	SETTING4_FEATURE1_JUDGE				,	// 特徴量1判定
	SETTING4_FEATURE1_JDGKIND			,	// 特徴量1判定種類
	SETTING4_FEATURE1_VALUE				,	// 特徴量1計測値
	SETTING4_FEATURE1_MIN				,	// 特徴量1計測値下限
	SETTING4_FEATURE1_MAX				,	// 特徴量1計測値上限
	SETTING4_FEATURE2_ENABLE			,	// 特徴量2有効
	SETTING4_FEATURE2_NAME				,	// 特徴量2名称
	SETTING4_FEATURE2_JUDGE				,	// 特徴量2判定
	SETTING4_FEATURE2_JDGKIND			,	// 特徴量2判定種類
	SETTING4_FEATURE2_VALUE				,	// 特徴量2計測値
	SETTING4_FEATURE2_MIN				,	// 特徴量2計測値下限
	SETTING4_FEATURE2_MAX				,	// 特徴量2計測値上限
	SETTING4_FEATURE3_ENABLE			,	// 特徴量3有効
	SETTING4_FEATURE3_NAME				,	// 特徴量3名称
	SETTING4_FEATURE3_JUDGE				,	// 特徴量3判定
	SETTING4_FEATURE3_JDGKIND			,	// 特徴量3判定種類
	SETTING4_FEATURE3_VALUE				,	// 特徴量3計測値
	SETTING4_FEATURE3_MIN				,	// 特徴量3計測値下限
	SETTING4_FEATURE3_MAX				,	// 特徴量3計測値上限
	SETTING4_CNC_NO						,	// CNC No
	SETTING4_IPADDRESS					,	// IpAddress(加工機)
	SETTING4_MODELNAME					,	// ModelName(加工機名)
	SETTING4_FEATURETYPE				,	// KOMTAS Viewer機能選択
	SETTING4_NCLOGGER_FILENAME			,	// NCLogger生データファイル名
	SETTING4_TOOLNO						,	// 工具番号

	NOF_SETTING4_DATA
} ;	

// 設定４特徴量データ構造体
typedef struct {
	BOOL				bEnable ;							// 有効フラグ
	TCHAR				szName		[FEATURE_NAME_BUFLEN] ;	// 特徴量名称
	INT32				nJudge ;							// 判定
	INT32				nJudgeKind ;						// 判定種
	double				dValue ;							// 計測値
	double				dMin ;								// 計測値下限
	double				dMax ;								// 計測値上限

} FEATURE_DATA4, *P_FEATURE_DATA4 ;

// 設定４データ構造体
typedef struct {
	TCHAR				szWorkID	[WORK_ID_BUFLEN] ;		// ワークID
	TCHAR				szDateTime	[DATETIME_BUFLEN] ;		// 計測日時
	INT32				nOpNo ;								// OP番号
	INT32				nMesItem ;							// 計測項目
	TCHAR				szMesItem	[MESITEM_BUFLEN] ;		// 計測項目名称
	INT32				nNgBit ;							// NGビット
	INT32				nResultID ;							// 結果ID
	TCHAR				szDataItem	[DATAITEM_BUFLEN] ;		// データ項目名称
	TCHAR				szCncNo		[CNC_NO_BUFLEN] ;		// CNC No
	TCHAR				szNcLoggerFileName[NCLOGGER_FILENAME_BUFLEN];		// NCLogger生データファイル名
	TCHAR				szIpAddress[IPADDRESS_BUFLEN];		// IpAddress(加工機)
	TCHAR				szModelName[MODELNAME_BUFLEN];		// ModelName(加工機名)
	TCHAR				szFeatureType[FEATURETYPE_BUFLEN];	// KOMTAS Viewer機能選択
	INT32				nToolNo;							// 工具番号
	FEATURE_DATA4		taFeature	[NOF_MES_FEATURE4] ;		// 特徴量データ構造体配列

} SETTING4_DATA, *P_SETTING4_DATA ;

//**** 工具ステータスデータ関係
#define NOF_MAX_TOOLNUM			200

// データ定義
enum {
	PRODUCTINFO_DATETIME=0,		// 計測日時
	PRODUCTINFO_TOOLNO,			// 工具番号
	PRODUCTINFO_TOOLCOUNTS,		// 工具カウント
	PRODUCTINFO_WORKCOUNTS,		// ワークカウント
	PRODUCTINFO_WORKTYPE,		// 車種
	PRODUCTINFO_WORKSERIAL,		// ワークシリアル
	PRODUCTINFO_CUSTOMMACRO1,	// カスタムマクロ値1
	PRODUCTINFO_CUSTOMMACRO2,	// カスタムマクロ値2
	
	NOF_PRODUCTINFO_DATA
};

// 生産情報データ構造体
typedef struct {
	TCHAR				szDateTime[DATETIME_BUFLEN];		// 計測日時
	INT32				nToolNo;							// 工具番号
	INT32				nToolCounts;						// 工具カウント
	INT32				nWorkCounts;						// ワークカウント
	INT32				nWorkType;							// 車種
	TCHAR				szWorkSerial[WORKSERIAL_BUFLEN];	// ワークシリアル
	double				dCustomMacroVal1;					// カスタムマクロ値1
	double				dCustomMacroVal2;					// カスタムマクロ値2
} PRODUCTINFO_DATA, *P_PRODUCTINFO_DATA;

typedef struct {
	INT32				nToolNum;							// 取得したツール数
	PRODUCTINFO_DATA	taProductInfo[NOF_MAX_TOOLNUM];
} PRODUCTSINFO_DATA, *P_PRODUCTSINFO_DATA;

//*** 収集データインデックス
enum{		
	
	COLLECT_MINING			= 0		,	// マイニングデータ
	COLLECT_SETTING1				,	// 設定１データ
	COLLECT_SETTING2				,	// 設定２データ
	COLLECT_SETTING3				,	// 設定３データ
	COLLECT_SETTING4				,	// 設定4データ
	COLLECT_PRODUCTSINFO			,	// 生産情報データ

	NOF_COLLECT_DATA
} ;

static LPCTSTR m_szParamFile[NOF_COLLECT_DATA] =
{
	{ _T("MiningData.ini")		},	// マイニングデータ設定ファイル名
	{ _T("Setting1Data.ini")	},	// 設定１設定ファイル名
	{ _T("Setting2Data.ini")	},	// 設定２設定ファイル名
	{ _T("Setting3Data.ini")	},	// 設定３設定ファイル名
	{ _T("Setting4Data.ini")	},	// 設定4設定ファイル名
	{ _T("ProductInfoData.ini")		},	// 生産情報設定ファイル名
};

static INT32 m_naNofData[NOF_COLLECT_DATA] =
{
	{ NOF_MINING_DATA	 },			// マイニングデータ数
	{ NOF_SETTING1_DATA	 },			// 設定１データ数
	{ NOF_SETTING2_DATA	 },			// 設定２データ数
	{ NOF_SETTING3_DATA	 },			// 設定３データ数
	{ NOF_SETTING4_DATA	 },			// 設定4データ数
	{ NOF_PRODUCTINFO_DATA },		// 生産情報データ数
};

//-------------------------------------------------------------
// データベース関係
//-------------------------------------------------------------
#define DB_DEFAULT_HOST				_T("localhost")
#define	DB_DEFAULT_USER				_T("root")
#define	DB_DEFAULT_PASSWORD			_T("root")
#define	DB_DEFAULT_DBNAME			_T("db_ntc")
#define	DB_DEFAULT_CHARSET			_T("sjis")
#define	DB_SETTING_LEN				30
#define	DB_TBL_LEN					20
#define	TBL_COL_LEN					30

/****************************
*	　  関　数　宣　言		*
****************************/


/****************************
*	　  関　数　宣　言		*
****************************/

