fix: prevent Serial.printf from blocking when USB disconnected
All checks were successful
CI / build (push) Successful in 2m23s
All checks were successful
CI / build (push) Successful in 2m23s
On ESP32-C3 with USB CDC, Serial.printf() blocks indefinitely when USB is not connected. This caused device freezes when booted without USB. Solution: Call Serial.setTxTimeoutMs(0) after Serial.begin() to make all Serial output non-blocking. Also added if (Serial) guards to high-traffic logging paths in EpubReaderActivity as belt-and-suspenders protection. Includes documentation of the debugging process and Serial call inventory. Also applies clang-format to fix pre-existing formatting issues.
This commit is contained in:
@@ -202,8 +202,8 @@ void ListViewActivity::render() const {
|
||||
const auto pageStartIndex = selectorIndex / pageItems * pageItems;
|
||||
|
||||
// Draw selection highlight
|
||||
renderer.fillRect(bezelLeft, CONTENT_START_Y + (selectorIndex % pageItems) * LINE_HEIGHT - 2, pageWidth - RIGHT_MARGIN - bezelLeft,
|
||||
LINE_HEIGHT);
|
||||
renderer.fillRect(bezelLeft, CONTENT_START_Y + (selectorIndex % pageItems) * LINE_HEIGHT - 2,
|
||||
pageWidth - RIGHT_MARGIN - bezelLeft, LINE_HEIGHT);
|
||||
|
||||
// Calculate available text width
|
||||
const int textMaxWidth = pageWidth - LEFT_MARGIN - RIGHT_MARGIN - MICRO_THUMB_WIDTH - 10;
|
||||
@@ -262,8 +262,8 @@ void ListViewActivity::render() const {
|
||||
}
|
||||
|
||||
// Extract tags for badges (only if we'll show them - when NOT selected)
|
||||
constexpr int badgeSpacing = 4; // Gap between badges
|
||||
constexpr int badgePadding = 10; // Horizontal padding inside badge (5 each side)
|
||||
constexpr int badgeSpacing = 4; // Gap between badges
|
||||
constexpr int badgePadding = 10; // Horizontal padding inside badge (5 each side)
|
||||
constexpr int badgeToThumbGap = 8; // Gap between rightmost badge and cover art
|
||||
int totalBadgeWidth = 0;
|
||||
BookTags tags;
|
||||
@@ -302,8 +302,8 @@ void ListViewActivity::render() const {
|
||||
const int badgeY = y + 2 + (titleLineHeight - badgeHeight) / 2;
|
||||
|
||||
if (!tags.extensionTag.empty()) {
|
||||
int badgeWidth = ScreenComponents::drawPillBadge(renderer, badgeX, badgeY, tags.extensionTag.c_str(),
|
||||
SMALL_FONT_ID, false);
|
||||
int badgeWidth =
|
||||
ScreenComponents::drawPillBadge(renderer, badgeX, badgeY, tags.extensionTag.c_str(), SMALL_FONT_ID, false);
|
||||
badgeX += badgeWidth + badgeSpacing;
|
||||
}
|
||||
if (!tags.suffixTag.empty()) {
|
||||
|
||||
Reference in New Issue
Block a user