#ifndef TEST #include #include #include #include #endif #include #include #include #ifdef TEST #include #endif #include #include #ifdef TEST #define LOGBUFFER_SIZE 32 #else #define LOGBUFFER_SIZE 1024 #endif // TEST static ringbuffer_t logBuffer; void logInit() { ringbufferInit(&logBuffer, LOGBUFFER_SIZE); } void logFree() { ringbufferFree(&logBuffer); } int logExec() { int c = -1; #ifndef TEST if (__HAL_UART_GET_FLAG(&debugUart, UART_FLAG_TXE)) { // is the TX channel free #endif // TEST c = ringbufferGetOne(&logBuffer); if (c > 0) { #ifndef TEST // transfer to TX channel uint8_t cc = (uint8_t) c; HAL_UART_Transmit(&debugUart, &cc, 1, HAL_MAX_DELAY); #endif // TEST } #ifndef TEST } #endif // TEST return c; } #ifndef TEST static void flashGreenLed(void *handle) { led(GREEN, TOGGLE); } #endif // TEST int logMsg(char *msg) { int res = -1; if (-1 == (res = ringbufferPut(&logBuffer, (uint8_t*) msg, strlen(msg)))) { #ifndef TEST // blink the green light or so flashGreenLed(NULL); schAdd(flashGreenLed, NULL, 100, 0); #else printf("\n*** green blink ***\n"); #endif // TEST } return res; }