www.pudn.com > hos-v4_os.rar > timtic.cpp


// --------------------------------------------------------------------------- 
//  Hyper Operating System V4  コンフィギュレーター                            
//    HOS_TIM_TIC API の処理                                                   
//                                                                             
//                                    Copyright (C) 1998-2002 by Project HOS   
//                                    http://sourceforge.jp/projects/hos/      
// --------------------------------------------------------------------------- 
 
 
#include  
#include  
#include  
#include "defercd.h" 
#include "timtic.h" 
#include "analyze.h" 
 
 
#define TIMTIC_NUME		0 
#define TIMTIC_DENO		1 
 
 
// コンストラクタ 
CApiTimTic::CApiTimTic() 
{ 
	// パラメーター構文設定 
	m_iParamSyntax[0] = 0;		// 単独パラメーター 
	m_iParamSyntax[1] = 0;		// 単独パラメーター 
	m_iParams         = 2; 
 
	m_iNume = 1; 
	m_iDeno = 1; 
} 
 
 
// デストラクタ 
CApiTimTic::~CApiTimTic() 
{ 
} 
 
 
 
// APIの解析 
int CApiTimTic::AnalyzeApi(const char* pszApiName, const char* pszParams) 
{ 
	int iNume; 
	int iDeno; 
	int iErr; 
	static bool blEx = false; 
 
	// API名チェック 
	if ( strcmp(pszApiName, "HOS_TIM_TIC") == 0 ) 
	{ 
		if ( blEx == true ) 
		{ 
			return CFG_ERR_MULTIDEF; 
		} 
 
		blEx = true; 
 
		iErr = AddParams(pszParams); 
		if ( iErr != CFG_ERR_OK ) 
		{ 
			return iErr; 
		} 
	 
		iNume = atoi(m_pParamPacks[m_iObjs - 1]->GetParam(TIMTIC_NUME)); 
		iDeno = atoi(m_pParamPacks[m_iObjs - 1]->GetParam(TIMTIC_DENO)); 
		if ( iNume <= 0 || iDeno <= 0 ) 
		{ 
			return CFG_ERR_PARAM; 
		} 
 
		m_iNume = iNume; 
		m_iDeno = iDeno; 
		 
		return CFG_ERR_OK; 
	} 
 
	return CFG_ERR_NOPROC; 
} 
 
 
// 文字列を展開 
int CApiTimTic::AutoId(void) 
{ 
	return CFG_ERR_OK; 
} 
 
 
// ID 定義ファイル書き出し 
void CApiTimTic::WriteId(FILE* fp) 
{ 
	fprintf( 
		fp, 
		"\n\n" 
		"/* time tic */\n" 
		"#define TIC_NUME\t\t%d\n" 
		"#define TIC_DENO\t\t%d\n", 
		m_iNume, 
		m_iDeno); 
} 
 
 
// cfgファイル定義部書き出し 
void  CApiTimTic::WriteCfgDef(FILE* fp) 
{ 
	fputs( 
		"\n\n\n" 
		"/* ------------------------------------------ */\n" 
		"/*               set time tic                 */\n" 
		"/* ------------------------------------------ */\n" 
		"\n" 
		"const UW kernel_tic_deno = TIC_DENO;\n" 
		"const UW kernel_tic_div  = TIC_NUME / TIC_DENO;\n" 
		"const UW kernel_tic_mod  = TIC_NUME % TIC_DENO;\n", 
		fp); 
} 
 
 
// --------------------------------------------------------------------------- 
//  Copyright (C) 1998-2002 by Project HOS                                     
// ---------------------------------------------------------------------------