From 7e4a1ea7fe878fa546155e7a25d68e47a46f114c Mon Sep 17 00:00:00 2001 From: Pimpest <82343504+pimpest@users.noreply.github.com> Date: Thu, 5 Mar 2026 14:11:31 +0100 Subject: [PATCH] Fixed 0a getting converted to 0d 0a --- firmware/base/src/msgs.h | 16 ++++++++++++---- firmware/base/tusb/tusb_stdio_driver.c | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/firmware/base/src/msgs.h b/firmware/base/src/msgs.h index 36624c2..fa71ac1 100644 --- a/firmware/base/src/msgs.h +++ b/firmware/base/src/msgs.h @@ -1,5 +1,6 @@ #pragma once +#include #include "crc.h" #include "stdio.h" @@ -58,15 +59,22 @@ enum { TSTATE_BUILD_MSG, }; -inline void send_tRespState(tRespState *resp) { +static inline void write_raw(void* data, size_t n) { + const uint8_t* a = data; + for(size_t i = 0; i < n; i++){ + putchar_raw(a[i]); + } +} + +static inline void send_tRespState(tRespState *resp) { resp->crc = crcFooter(*resp); - fwrite(resp, 1, sizeof(tRespState), stdout); + write_raw(resp, sizeof(tRespState)); fflush(stdout); } -inline void send_tRespEndCalib(tRespEndCalib *state) { +static inline void send_tRespEndCalib(tRespEndCalib *state) { state->crc = crcFooter(*state); - fwrite(state, 1, sizeof(tRespEndCalib), stdout); + write_raw(state, sizeof(tRespEndCalib)); fflush(stdout); } diff --git a/firmware/base/tusb/tusb_stdio_driver.c b/firmware/base/tusb/tusb_stdio_driver.c index 58c51f4..726b882 100644 --- a/firmware/base/tusb/tusb_stdio_driver.c +++ b/firmware/base/tusb/tusb_stdio_driver.c @@ -51,7 +51,7 @@ static void stdio_dual_usb_out_chars(const char *buf, int length) { tud_task(); tud_cdc_n_write_flush(itf); if (!stdio_dual_usb_connected() || - (!tud_cdc_write_available() && + (!tud_cdc_n_write_available(itf) && time_us_64() > last_avail_time[itf] + STDIO_DUAL_USB_STDOUT_TIMEOUT_US)) { break;