From 808e05cd0764b72c532247d4fc0be1ed05bc93fc Mon Sep 17 00:00:00 2001 From: coffee Date: Thu, 30 Oct 2025 16:56:02 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=AD=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/HDLog.h | 4 ++++ include/HDRPC.h | 9 +++++---- src/HDLog.c | 14 ++++++++++---- src/HDRPC.c | 14 +++++++------- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/include/HDLog.h b/include/HDLog.h index 5fd8e9a..ce359f7 100644 --- a/include/HDLog.h +++ b/include/HDLog.h @@ -68,6 +68,8 @@ #define LogHexData(data, len) #endif +#define LogTVHex(data, len) HDLogHexType((const uint8_t *)data, len, 1, NULL, kLogLevelTVHex) + // 仅用于兼容旧版, 实际不输出数据 #define qDebugWin(A, B) #define OutputFunInfo @@ -95,6 +97,7 @@ typedef enum eLogLevel { kLogLevelStack, ///< 打印栈大小信息 kLogLevelHeap, ///< 打印堆大小信息 kLogLevelTrace, ///< trace级别日志 + kLogLevelTVHex, ///< TV Hex 日志 kLogLevelMax, } eLogLevel; @@ -146,6 +149,7 @@ uint8_t HDLogCheckFpgaHeader(const uint8_t *data, int len); * @param offset 打印偏移, 一般传递 NULL 即可 **/ void HDLogHex(const uint8_t *data, int len, uint8_t checkPrint, uint32_t *offset); +void HDLogHexType(const uint8_t *data, int len, uint8_t checkPrint, uint32_t *offset, uint8_t logLevel); /** * @brief 无格式以16进制打印数据, 打印16个换行 diff --git a/include/HDRPC.h b/include/HDRPC.h index 0489957..dc24e3e 100644 --- a/include/HDRPC.h +++ b/include/HDRPC.h @@ -17,6 +17,7 @@ #define __HDRPC_H__ #include +#include // 设置超时时间 #ifndef HDRPC_TIMEOUT @@ -293,7 +294,7 @@ void HDRPCReadCallData(void *data, uint16_t len); * @param timeout 超时回调 * @return int16_t id索引(返回-1则无存储返回回调) */ -int16_t _HDRPCSendData(HDRPCSession *session, uint16_t funcCode, HDRPCCallback callBack, const char *funcName, uint8_t nameLen, HDRPCTimeoutCall timeout); +HDRPCIndexId_t _HDRPCSendData(HDRPCSession *session, uint16_t funcCode, HDRPCCallback callBack, const char *funcName, uint8_t nameLen, HDRPCTimeoutCall timeout); #define HDRPCSendData(session, code, func) _HDRPCSendData(session, code, func, #func, sizeof(#func) - 1, NULL) #define HDRPCSendDataNotCall(session, code) _HDRPCSendData(session, code, NULL, NULL, 0, NULL) #define HDRPCSendDataTimeout(session, code, func, timeout) _HDRPCSendData(session, code, func, #func, sizeof(#func) - 1, timeout) @@ -312,20 +313,20 @@ uint16_t HDRPCConvSendData(HDRPCSession *session, uint8_t *data, uint16_t len); * @brief idIndex 发送返回的id索引 * @brief delayMs 超时时间(ms) */ -void HDRPCSetDelayTime(int16_t idIndex, uint16_t delayMs); +void HDRPCSetDelayTime(HDRPCIndexId_t idIndex, uint16_t delayMs); /** * @brief 移除任务 * @brief idIndex 发送返回的id索引 */ -void HDRPCRemoveTask(int16_t idIndex); +void HDRPCRemoveTask(HDRPCIndexId_t idIndex); /** * @brief 获取对于任务的回调函数 * @param idIndex 发送返回的id索引 * @return 无效返回NULL */ -HDRPCCallback HDRPCGetCallBack(int16_t idIndex); +HDRPCCallback HDRPCGetCallBack(HDRPCIndexId_t idIndex); /** * @brief 运转RPC, 主要用于处理超时 diff --git a/src/HDLog.c b/src/HDLog.c index 7bce0c1..8537cc9 100644 --- a/src/HDLog.c +++ b/src/HDLog.c @@ -45,6 +45,7 @@ static HShellMatch sLogMatch[] = { HSHELL_MATCH_ITEM(kLogLevelDebug, "logDebug"), HSHELL_MATCH_ITEM(kLogLevelError, "logError"), HSHELL_MATCH_ITEM(kLogLevelHex, "logHex"), + HSHELL_MATCH_ITEM(kLogLevelTVHex, "logTVHex"), HSHELL_MATCH_ITEM(kLogLevelStack, "logStack"), HSHELL_MATCH_ITEM(kLogLevelHeap, "logHeap"), #if USE_HD_FPGA_CHECK @@ -101,9 +102,9 @@ static uint32_t *GetFpgaType(uint8_t type, uint8_t isWrite) } #endif -static void LogHex(const uint8_t *data, int len, uint8_t checkPrint, uint32_t *offset, uint8_t lock) +static void LogHex(const uint8_t *data, int len, uint8_t checkPrint, uint8_t logLevel, uint32_t *offset, uint8_t lock) { - if (checkPrint && HBitGet(sLogItem, kLogLevelHex) == 0) + if (checkPrint && HBitGet(sLogItem, logLevel) == 0) { return; } @@ -461,7 +462,7 @@ uint8_t HDLogPrintFpga(const uint8_t *data, int len, uint8_t isWrite, uint8_t ch const char *opt = isWrite ? "write" : "read"; printf("%s[%u], typeCount[%u] - type[%02X], sendCard[%d], netPort[%d], cardNumber[%d], subFunc[%04X], group[%04X], effectLen[%d]\r\n", opt, count, typeCount, type, sendCard, port, recvCardNumber, subFunc, group, effectLen); - LogHex((const uint8_t *)(data) + 17, (len) - 21, 1, NULL, 0); + LogHex((const uint8_t *)(data) + 17, (len) - 21, 1, kLogLevelHex, NULL, 0); LOG_UNLOCK(); return 1; } @@ -469,7 +470,12 @@ uint8_t HDLogPrintFpga(const uint8_t *data, int len, uint8_t isWrite, uint8_t ch void HDLogHex(const uint8_t *data, int len, uint8_t checkPrint, uint32_t *offset) { - LogHex(data, len, checkPrint, offset, 1); + LogHex(data, len, checkPrint, kLogLevelHex, offset, 1); +} + +void HDLogHexType(const uint8_t *data, int len, uint8_t checkPrint, uint32_t *offset, uint8_t logLevel) +{ + LogHex(data, len, checkPrint, logLevel, offset, 1); } void HDLogData(const uint8_t *data, int len, uint8_t checkPrint) diff --git a/src/HDRPC.c b/src/HDRPC.c index 2c005b6..1977dd2 100644 --- a/src/HDRPC.c +++ b/src/HDRPC.c @@ -157,8 +157,8 @@ static void Call(HDRPCSession *session, uint16_t exception) { } } -static int16_t AddCall(HDRPCSession *session, HDRPCCallback callBack, const char *funcName, uint8_t nameLen, HDRPCTimeoutCall timeout) { - int16_t result = -1; +static HDRPCIndexId_t AddCall(HDRPCSession *session, HDRPCCallback callBack, const char *funcName, uint8_t nameLen, HDRPCTimeoutCall timeout) { + HDRPCIndexId_t result = -1; if (session == NULL || callBack == NULL || nameLen == 0) { LogD("funcName[%s], len[%d] add Faild", funcName, nameLen); return result; @@ -693,9 +693,9 @@ void HDRPCReadCallData(void *data, uint16_t len) ParseReadDataCall(session, data, len); } -int16_t _HDRPCSendData(HDRPCSession *session, uint16_t funcCode, HDRPCCallback callBack, const char *funcName, uint8_t nameLen, HDRPCTimeoutCall timeout) +HDRPCIndexId_t _HDRPCSendData(HDRPCSession *session, uint16_t funcCode, HDRPCCallback callBack, const char *funcName, uint8_t nameLen, HDRPCTimeoutCall timeout) { - int16_t result = -1; + HDRPCIndexId_t result = -1; if (sInfo.writeCall == NULL) { LogD("Write Call is nullptr"); return result; @@ -750,7 +750,7 @@ uint16_t HDRPCConvSendData(HDRPCSession *session, uint8_t *data, uint16_t len) return useLen; } -void HDRPCSetDelayTime(int16_t idIndex, uint16_t delayMs) +void HDRPCSetDelayTime(HDRPCIndexId_t idIndex, uint16_t delayMs) { if (idIndex < 0 || idIndex >= sInfo.callLen) { LogD("Invalid idIndex[%d]", idIndex); @@ -760,7 +760,7 @@ void HDRPCSetDelayTime(int16_t idIndex, uint16_t delayMs) sInfo.localCallBuffer[idIndex].delayMs = delayMs; } -HDRPCCallback HDRPCGetCallBack(int16_t idIndex) +HDRPCCallback HDRPCGetCallBack(HDRPCIndexId_t idIndex) { if (idIndex < 0 || idIndex >= sInfo.callLen) { LogD("Invalid idIndex[%d], len[%d]", idIndex, sInfo.callLen); @@ -770,7 +770,7 @@ HDRPCCallback HDRPCGetCallBack(int16_t idIndex) return sInfo.localCallBuffer[idIndex].callback; } -void HDRPCRemoveTask(int16_t idIndex) +void HDRPCRemoveTask(HDRPCIndexId_t idIndex) { if (idIndex < 0 || idIndex >= sInfo.callLen) { LogD("Invalid idIndex[%d]", idIndex);