高通QIA开发(四)

        继续介绍QIA开发中log部分。分为两方面,一是控制在测试过程中生成哪些log文件;二是在代码中通过注册log处理函数打印log。

        通过修改“C:\Qualcomm\QDART\LogConfig\QDART_Logging_Configuration.xml”来配置log的路径、命名规则以及log类型。QDART Configuration Editor也可以编辑该xml。

 "File Name"建议用“Sn-%DATE_TIME%-%TECHNOLOGIES%-"的格式来命名。在每次测试之前,修改这个xml,将当前DUT的Sn填到”File Name"中,方便l测试记录的查找及可能的llog数据处理。“Log Flags”建议只勾选“XML”、“HTML”、“TXT-Debug”。

        如果要获取QIA测试过程中的debug log,可通过注册消息处理函数来实现。

m_scheudler->OnDebugMessage += gcnew QSPRScheduler::OnDebugMessageEventHandler(scheduler_OnDebugMessage);

使用QSPR test测试的部分,只注册一次,重复注册会导致收到多次重复消息。使用server test 的部分每次测试都要注册:

stm_register_system_event_handler(g_STM, &g_RFCAL, ptd, DutTestEventHandler);
stm_set_log_filename(g_STM, &g_RFCAL, (_bstr_t)strxttpath);

两个消息处理函数类似

void scheduler_OnDebugMessage(String^ window, String^ text, int level, bool NoEOL)
{
	if(bdisplayDebuglog)
	{
		CString  strtext = CString(text);
		MyTrace(strtext,1);
	}
	if(window->ToUpper()->Contains("LOG"))
	{
		CString  strtext = CString(text);
		if(buse_radiated)
		{
			//XML Log file "file://C:\UserDefine-_P.xml"
			if(strtext.Find(_T("XML Log file \"file:"))>-1)//strresultxmlfilepath,获取测试结果的路径
			{
				int pos1=strtext.Find(_T("file://"));
				int pos2=strtext.Find(_T("\""),pos1);
				g_strRadiatedresultxmlpath=strtext.Mid(pos1+7,pos2-pos1-7);
				MyTrace(g_strRadiatedresultxmlpath,1);
			}
		}
		if(buse_qseq)
		{
			int pos=strtext.Find(_T("[HTML]:"));
			if(pos>-1)
			{
				CString strhtml=strtext.Mid(pos+8);
				strhtml.Replace(_T(".html"),_T(".xml"));
				vector_resultxmlpath.push_back(strhtml);
			}
		}
	}
	else if (window->ToUpper()->Contains("ERROR"))
	{
		CString  strtext = CString(text);
		MyTrace(strtext,1);
	}
	else
	{

	}
}
void DutTestEventHandler(void * context, int type, const char * msg)
{
	ThreadData *ptd=(ThreadData *)context;
	int iWinNo=ptd->iWinNo;
	CString strtext;
	switch (type)
	{
	default:
	case 1: // debug
		if(bdisplayDebuglog)
		{
			Trace((char *)msg,ptd->iWinNo);
		}
		break;
	case 2: // log
		//XML Log file "file://C:\UserDefine-_P.xml"
		
		if(bdisplayDebuglog)
		{
			Trace((char *)msg,ptd->iWinNo);
		}
		strtext=CString(msg);
		if(strtext.Find(_T("XML Log file \"file:"))>-1)//strresultxmlfilepath,获取测试结果的路径
		{
			int pos1=strtext.Find(_T("file://"));
			int pos2=strtext.Find(_T("\""),pos1);
			g_strresultxmlpath=strtext.Mid(pos1+7,pos2-pos1-7);
			MyTrace(g_strresultxmlpath,iWinNo);
		}
		break;
	case 3: // error
		if(bdisplayDebuglog)
		{
			Trace((char *)msg,ptd->iWinNo);
		}
		break;
	case 4: // TPL
		// This is very verbose, uncomment when needed.
		
		break;
	case 5: // HTML
		
		break;
	}
}

在代码中获取测试结果的路径,以便从中解析测试结果输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值