📄 lpt.h
字号:
/*
分级别打印的头文件,包括分级打印的宏定义。
lpt(lv, ptString)
task :打印的任务
lv :打印级别
ptString :打印字符串内容
lpt1(lv, ptString, para)
带有一个参数的打印。
lpt2(lv, ptString, para1,para2)
带有一个参数的打印。
lpt3(lv, ptString, para1, para2, para3)
带有一个参数的打印。
创建:李勇 2003/05/16
修改
*/
#ifndef __LPT_H
#define __LPT_H
typedef enum
{
PT_DEBUG = 0x01, /* 调试打印 */
PT_NORMAL = 0x02, /* 正常有用信息的打印 */
PT_IMPORT = 0x04, /* 重要信息的打印 */
PT_INFO = 0x08, /* 需要重点关注信息的打印 */
PT_WARN = 0x10, /* 告警打印 */
PT_ERROR = 0x20, /* 错误打印 */
PT_FATAL = 0x40, /* 致命错误的打印 */
PT_SIGNAL = 0x80 /* 信令跟踪 */
}PRINT_LEVEL;
#define MAX_FILE_NAME_LEN 50 /* 最大文件名长度(包括文件路径) */
#define MAX_PRINT_DATA_LEN 200 /* 一次能打印的最大长度 */
#define PATH_LEN 14
typedef struct
{
UINT8 taskNo;
UINT8 printLevel;
UINT8 fileName[MAX_FILE_NAME_LEN + 1];
UINT32 lineNo;
UINT8 printData[MAX_PRINT_DATA_LEN +1];
UINT8 trace;
}PRINT_MSG;
extern UINT8 ptDataBuf[1024];
extern UINT8 printData[256 + 1], logData[256 + 1];//256,TASK_NUM系统支持的最大任务数
extern void initPrintData(void);
extern UINT8 getTaskNo();
extern void printAndLog(UINT8 lv, char * file, UINT32 line, char * data);
extern BOOL requirePrintOrLog(UINT8 lv);
UINT32 getFileLen(FILE * p_file);
#define lpt(lv, ptString)\
{\
if (requirePrintOrLog(lv))\
{\
printAndLog(lv, __FILE__, __LINE__, ptString);\
}\
}
#define lpt1(lv, ptString, para1)\
{\
if (requirePrintOrLog(lv))\
{\
char printDataBuf[1024];\
sprintf(printDataBuf, ptString, para1);\
printAndLog(lv, __FILE__, __LINE__, printDataBuf);\
}\
}
#define lpt2(lv, ptString, para1, para2)\
{\
if (requirePrintOrLog(lv))\
{\
char printDataBuf[1024];\
sprintf(printDataBuf, ptString, para1, para2);\
printAndLog(lv, __FILE__, __LINE__, printDataBuf);\
}\
}
#define lpt3(lv, ptString, para1, para2, para3)\
{\
if (requirePrintOrLog(lv))\
{\
char printDataBuf[1024];\
sprintf(printDataBuf, ptString, para1, para2, para3);\
printAndLog(lv, __FILE__, __LINE__, printDataBuf);\
}\
}
#define lpt4(lv, ptString, para1, para2, para3, para4)\
{\
if (requirePrintOrLog(lv))\
{\
char printDataBuf[1024];\
sprintf(printDataBuf, ptString, para1, para2, para3, para4);\
printAndLog(lv, __FILE__, __LINE__, printDataBuf);\
}\
}
/* printParams所有的参数必须用括号统一括起来,否则无效 */
/* semMptbuf信号量用于打印缓冲区的互斥 */
/* 由于增加了互斥信号量,所以此宏不能在ISR中调用 */
#define pt(lv,printParams)\
{\
if (requirePrintOrLog(lv))\
{\
semTake(semMptbuf, WAIT_FOREVER);\
ptFormat printParams;\
printAndLog(lv, __FILE__, __LINE__, ptDataBuf);\
semGive(semMptbuf);\
}\
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -