/************************************************************************
*
* 文件名   ：  DebugPrint.c
* 版权说明 ：  北京交控科技有限公司 
* 版本号   ：  1.0
* 创建时间 ：  2020.02.05
* 作者     ：  研发中心软件部
* 功能描述 ：  调试打印接口 
* 使用注意 ： 
* 修改记录 ：  
*
************************************************************************/

#include "DebugPrint.h"
#include "Convert.h"
static UINT8 printImmediatelyFlag = 1u;

/*********************************************
*函数功能：打印应用的调试错误帧信息
*参数说明：
*			UINT32 errorCode：错误码
*			UINT8 devType：设备类型
*			UINT16 devId：设备id
*			UINT8 isCycle：是否周期调用
*返回值：无
*********************************************/
void DebugPrintAppError(UINT32 errorCode,UINT32 devType,UINT32 devId,UINT8 isCycleCall)
{
	DebugPrintError(CI_APP,errorCode,devType,devId,isCycleCall);
}


/*********************************************
*函数功能：打印调试信息
*参数说明：
*			UINT8 errorSrc：错误来源
*			UINT32 errorCode：错误码
*			UINT8 devType：设备类型
*			UINT16 devId：设备id
*返回值：无
*********************************************/
void DebugPrintError(UINT8 errorSrc,UINT32 errorCode,UINT32 devType,UINT32 devId,UINT8 isCycleCall)
{
	char tmpInfoError[15]={0};
	UINT16 ii = 0u;
	UINT32 curCount = Get2oo2CurCycleNum();
	tmpInfoError[0] = (char)0xabU;
	tmpInfoError[1] = (char)0xcdU; /*帧起始：0xabcd*/
	tmpInfoError[2] = (char)errorSrc;	/*错误来源*/
	LongToChar(errorCode,&tmpInfoError[3]);/*错误码*/
	LongToChar(devType,&tmpInfoError[7]);	/*设备类型*/
	LongToChar(devId,&tmpInfoError[11]);	/*设备Id*/
	if (PRINT_CYCLE == isCycleCall)
	{
		if (curCount % 20U == 0u)/*周期调用，则6秒钟打印一次*/
		{
			(void)debug_out_array(0xAA, tmpInfoError, 15);
			
		}
		else
		{
			if (1u == printImmediatelyFlag)
			{
				(void)debug_out_array(0xAA, tmpInfoError, 15);/*确保第一次打印时为非打印周期，也要打印一次*/
			}

			if (1u ==printImmediatelyFlag)
			{
				printImmediatelyFlag = 0u;
			}
			
		}
	}
	else
	{
		(void)debug_out_array(0xAA, tmpInfoError, 15);
	}
	
}


