diff --git a/tests/mocs.c b/tests/mocs.c index a5a5d9d..e777de9 100644 --- a/tests/mocs.c +++ b/tests/mocs.c @@ -148,4 +148,9 @@ size_t tcp_sndbuf(void* pcb) { void pbuf_free(struct pbuf* p) { UNUSED(p); +} + +uint16_t pbuf_copy_partial(const struct pbuf* buf, void* dataptr, uint16_t len, uint16_t offset) { + memcpy(dataptr, ((uint8_t*)(buf->payload)) + offset, len); + return len; } \ No newline at end of file diff --git a/tests/mocs.h b/tests/mocs.h index 2c214cc..9fcc977 100644 --- a/tests/mocs.h +++ b/tests/mocs.h @@ -17,7 +17,7 @@ typedef void sFONT; #define LCD_COLOR_BLACK 0 #define LCD_COLOR_WHITE 1 -#define LCD_TRANSPARENT 2 +#define LCD_TRANSPARENT 2 #define LCD_FONT16 0 #define LCD_FONT24 (void*)1 @@ -101,7 +101,7 @@ typedef err_t (*tcp_accept_fn)(void* arg, struct tcp_pcb* newpcb, err_t err); uint32_t logger_get_timestamp(void); -void lcd_display_text(const char* text, uint16_t x_pos, uint16_t y_pos, uint32_t color, uint32_t bg_color, sFONT* font); +void lcd_display_text(uint8_t* text, uint16_t x_pos, uint16_t y_pos, uint32_t color, uint32_t bg_color, sFONT* font); void lcd_draw_img_from_fs(char* filename, uint32_t x_pos, uint32_t y_pos); void lcd_draw_gif_from_fs(char* filename, uint32_t x_pos, uint32_t y_pos); void lcd_draw_bmp_img(uint8_t* bmp_buff, uint32_t x_pos, uint32_t y_pos); @@ -129,6 +129,8 @@ void pbuf_free(struct pbuf* p); size_t tcp_sndbuf(void* pcb); +uint16_t pbuf_copy_partial(const struct pbuf* buf, void* dataptr, uint16_t len, uint16_t offset); + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/tests/tcp_cmd.cpp b/tests/tcp_cmd.cpp index 4958ee8..fbaa82e 100644 --- a/tests/tcp_cmd.cpp +++ b/tests/tcp_cmd.cpp @@ -209,11 +209,8 @@ static err_t tcp_cmd_recv_new(void* arg, struct tcp_pcb* pcb, struct pbuf* p, er LOG_WARN(TAG, "Command too long"); } size_t len = p->tot_len >= MAX_CMD_LEN ? MAX_CMD_LEN : p->tot_len; - #if TESTING - memcpy(cmd, p->payload, len); - #else + pbuf_copy_partial(p, cmd, len, 0); - #endif cmd[len] = '\0'; remove_newline(cmd);