公司代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

85 lines
1.7 KiB

#include <bsp_Log.h>
#include <stdio.h>
struct UARTHandler* log_UART_Handler;
char log_buf[500];
void decode_log_received(uint8_t *buffer, uint16_t length);
char* EM_LOG_LEVEL_GET(const int level)
{
if (level == LOG_DEBUG)
{
return "DEBUG";
} else if (level == LOG_INFO)
{
return "INFO";
} else if (level == LOG_WARN)
{
return "WARN";
} else if (level == LOG_ERROR)
{
return "ERROR";
} else if (level == LOG_TRACE)
{
return "TRACE";
} else if (level == LOG_FATAL)
{
return "FATAL";
}
return "UNKNOW";
}
uint8_t Tx_Buf_LOG[2048];
uint16_t Size_LOG;
char LOG_LEVEL_Char= LOG_TRACE;
//char LOG_LEVEL_Char= 8;
void log_log(const int level, const char *fun, const int line, const char *fmt,
...)
{
#ifdef OPEN_LOG
if (level >= LOG_LEVEL_Char)
{
va_list arg;
va_start(arg, fmt);
char buf[100] =
{ 0 };
vsnprintf(buf, sizeof(buf), fmt, arg);
va_end(arg);
memset(Tx_Buf_LOG,'\0',sizeof(Tx_Buf_LOG));
sprintf(Tx_Buf_LOG, "[%-5s] [%s:%4d] %s \r\n", EM_LOG_LEVEL_GET(level), fun, line,\
buf);
Size_LOG=strlen(Tx_Buf_LOG);
log_UART_Handler->AddSendList(log_UART_Handler,Tx_Buf_LOG,Size_LOG,100,NULL);
}
#endif
}
void log_intialize(struct UARTHandler* Handler)
{
log_UART_Handler = Handler;
log_UART_Handler->Wait_time = 10; //等待10ms 最低不要低于4;
//log_UART_Handler->DispacherCallPeriod = 10; //等待10ms 最低不要低于4;
log_UART_Handler->dispacherController->DispacherCallTime = 100;
log_UART_Handler->UART_Decode=decode_log_received;
}
void decode_log_received(uint8_t *buffer, uint16_t length)
{
if(length==3)
{
LOG_LEVEL_Char=buffer[2];// 接收三个字节,第三个字节表示log 日志等级,0 时,打印出来的数据最多;
}
}