Compare commits
No commits in common. "eafd97b3bdfc150ce62d0b02be9d0506231c7262" and "c9c9ac06d31b7cb6ce6bb94813b0dd54faa9c677" have entirely different histories.
eafd97b3bd
...
c9c9ac06d3
@ -104,58 +104,44 @@ static void debug_clear_console() {
|
||||
}
|
||||
}
|
||||
|
||||
[[maybe_unused, gnu::format(printf, 2, 3)]]
|
||||
static inline void debug_log(unsigned int level, const char *msg, ...) {
|
||||
if (!DEBUG_CHANNEL_ENABLED(level)) {
|
||||
return;
|
||||
}
|
||||
#define debug_log(level, msg, ...) \
|
||||
do { \
|
||||
if (DEBUG_CHANNEL_ENABLED(level)) { \
|
||||
char __swo_buffer[MAX_MESSAGE_LENGTH]; \
|
||||
size_t len = \
|
||||
snprintf(__swo_buffer, sizeof(__swo_buffer), msg, ##__VA_ARGS__); \
|
||||
__swo_putc('\n', level); \
|
||||
/* Print timestamp if enabled */ \
|
||||
if (PRINT_TIMESTAMP) { \
|
||||
char __time_buffer[16]; \
|
||||
if (USE_ANSI_ESCAPE_CODES) { \
|
||||
snprintf(__time_buffer, sizeof(__time_buffer), \
|
||||
"\033[90m[%lu]\033[0m ", HAL_GetTick()); \
|
||||
} else { \
|
||||
snprintf(__time_buffer, sizeof(__time_buffer), "[%lu] ", \
|
||||
HAL_GetTick()); \
|
||||
} \
|
||||
__swo_print(level, __time_buffer); \
|
||||
} \
|
||||
__swo_print(level, log_level_names[level]); \
|
||||
__swo_print(level, __swo_buffer); \
|
||||
if (len >= sizeof(__swo_buffer)) { \
|
||||
__swo_print(level, " [message length exceeded] "); \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
char __swo_buffer[MAX_MESSAGE_LENGTH];
|
||||
va_list args;
|
||||
va_start(args, msg);
|
||||
size_t len = vsnprintf(__swo_buffer, sizeof(__swo_buffer), msg, args);
|
||||
va_end(args);
|
||||
|
||||
__swo_putc('\n', level);
|
||||
|
||||
/* Print timestamp if enabled */
|
||||
if (PRINT_TIMESTAMP) {
|
||||
char __time_buffer[16];
|
||||
if (USE_ANSI_ESCAPE_CODES) {
|
||||
snprintf(__time_buffer, sizeof(__time_buffer),
|
||||
"\033[90m[%lu]\033[0m ", HAL_GetTick());
|
||||
} else {
|
||||
snprintf(__time_buffer, sizeof(__time_buffer), "[%lu] ",
|
||||
HAL_GetTick());
|
||||
}
|
||||
__swo_print(level, __time_buffer);
|
||||
}
|
||||
|
||||
__swo_print(level, log_level_names[level]);
|
||||
__swo_print(level, __swo_buffer);
|
||||
|
||||
if (len >= sizeof(__swo_buffer)) {
|
||||
__swo_print(level, " [message length exceeded] ");
|
||||
}
|
||||
}
|
||||
|
||||
[[maybe_unused, gnu::format(printf, 2, 3)]]
|
||||
static inline void debug_log_cont(unsigned int level, const char *msg, ...) {
|
||||
if (!DEBUG_CHANNEL_ENABLED(level)) {
|
||||
return;
|
||||
}
|
||||
|
||||
char __swo_buffer[MAX_MESSAGE_LENGTH];
|
||||
va_list args;
|
||||
va_start(args, msg);
|
||||
size_t len = vsnprintf(__swo_buffer, sizeof(__swo_buffer), msg, args);
|
||||
va_end(args);
|
||||
|
||||
__swo_print(level, __swo_buffer);
|
||||
|
||||
if (len >= sizeof(__swo_buffer)) {
|
||||
__swo_print(level, " [message length exceeded] ");
|
||||
}
|
||||
}
|
||||
#define debug_log_cont(level, msg, ...) \
|
||||
do { \
|
||||
if (DEBUG_CHANNEL_ENABLED(level)) { \
|
||||
char __swo_buffer[MAX_MESSAGE_LENGTH]; \
|
||||
size_t len = \
|
||||
snprintf(__swo_buffer, sizeof(__swo_buffer), msg, ##__VA_ARGS__); \
|
||||
__swo_print(level, __swo_buffer); \
|
||||
if (len >= sizeof(__swo_buffer)) { \
|
||||
__swo_print(level, " [message length exceeded] "); \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif /* __SWO_LOG_H */
|
||||
|
@ -85,7 +85,8 @@ HAL_StatusTypeDef initAMS(SPI_HandleTypeDef* hspi) {
|
||||
}
|
||||
|
||||
HAL_StatusTypeDef amsWakeUp() {
|
||||
return __pollCMD(PLADC, 100); //wake up ADBMS6830, wait for T_wake = 200 us (100 cycles at 500 kHz)
|
||||
uint8_t buffer[CMD_BUFFER_SIZE(CFG_GROUP_A_SIZE)] = {0};
|
||||
return readCMD(RDCFGA, buffer, CFG_GROUP_A_SIZE);
|
||||
}
|
||||
|
||||
HAL_StatusTypeDef amsCellMeasurement(Cell_Module (*module)[N_BMS]) {
|
||||
|
@ -252,18 +252,6 @@ HAL_StatusTypeDef ___readCMD(uint16_t command, uint8_t * buffer, size_t arglen)
|
||||
for (size_t i = 0; i < N_BMS; i++) {
|
||||
size_t offset = BUFFER_BMS_OFFSET(i, arglen);
|
||||
if (checkDataPEC(&buffer[offset], arglen + 2) != 0) {
|
||||
debug_log(LOG_LEVEL_ERROR, "Invalid data PEC when reading BMS %d", i);
|
||||
debug_log(LOG_LEVEL_ERROR, "Received: ");
|
||||
for (size_t j = 0; j < arglen + 2; j++) {
|
||||
debug_log_cont(LOG_LEVEL_ERROR, "%02X ", buffer[offset + j]);
|
||||
}
|
||||
debug_log_cont(LOG_LEVEL_ERROR, " | %02X %02X ", buffer[offset + arglen], buffer[offset + arglen + 1]); //print out the DPEC
|
||||
debug_log(LOG_LEVEL_ERROR, "^ DATA");
|
||||
//print out spaces until start of DPEC
|
||||
for (size_t j = 0; j < arglen; j++) {
|
||||
debug_log_cont(LOG_LEVEL_ERROR, (arglen < 2) ? "" : " ");
|
||||
}
|
||||
debug_log(LOG_LEVEL_ERROR, " ^ DPEC");
|
||||
return HAL_ERROR;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user