/****************************************************************
	Copyright(C), 1999-2004 Raisecom, Inc.
	filename: trace.c，trace函数，可以向串口输出信息
	Author	: qiaoqiangguo
	version	: 1.0
	date	: 2008/6/21
	Others	:
        THIS DOCUMENT IS GENERATED BY TORNADO TOOLS refgen.exe
        EXAMPLE:
        ->torVars.bat
        ->refgen -mg -out doc trace.c
        ->cd doc
        ->htmllink
*****************************************************************/
#include "includes.h"
#include "strfunc.h"
#include "trace.h"
#include "console.h"

/*trace使用的发送函数*/
trace_msg_send g_msg_msg_send = NULL;

/*定义临时使用的字符数组*/
u8 g_trace_buf[TRACE_BUF_LEN_MAX];

/* 格式输出到trace的目的地
	输入参数:
		fmt,	输出格式，printf相同的格式约定
		...,	可选参数，printf相同的格式约定
	返回值:
		格式化后的字符串长度，与printf的返回值的约定相同		
*/
u32 trace_otp_trace(const char * fmt, ...)
{
	u32 len = 0;
	va_list	  vaList;

	va_start (vaList, fmt);
	/*lint -save -e530*/
	len = otp_vsnprintf((char *)g_trace_buf, TRACE_BUF_LEN_MAX, fmt, vaList);
	/*lint -restore*/
	if(g_msg_msg_send)
	{
		if(g_msg_msg_send(Console_UID, (char *)g_trace_buf, len) != 0)
		{
			va_end (vaList);
			return 0;
		}
	}
    va_end (vaList);
	
    return len;
}

/* 格式输出到trace的目的地
	输入参数:
		fmt,	输出格式，printf相同的格式约定
		...,	可选参数，printf相同的格式约定
	返回值:
		格式化后的字符串长度，与printf的返回值的约定相同		
*/
u32 trace_otp_trace1(trace_msg_send msg_send_cb, u8 uartid, const char * fmt, ...)
{
	u32 len = 0;
	va_list	  vaList;

	va_start (vaList, fmt);
	/*lint -save -e530*/
	len = otp_vsnprintf((char *)g_trace_buf, TRACE_BUF_LEN_MAX, fmt, vaList);
	/*lint -restore*/
	if(msg_send_cb)
	{
		if(msg_send_cb(uartid, (char *)g_trace_buf, len) != 0)
		{
			va_end (vaList);
			return 0;
		}
	}
    va_end (vaList);
	
    return len;
}

/*****************************************************************************
*trace_init		trace初始化函数
*Input:
*	None
*Output:
*	None
*Return:
*	0/-1
*/
int trace_init(void)
{
	memset(g_trace_buf, 0, sizeof(g_trace_buf));

	return 0;
}
