diff --git a/project/Core/Inc/cmd.h b/project/Core/Inc/cmd.h index ab2e02f..e7a2503 100644 --- a/project/Core/Inc/cmd.h +++ b/project/Core/Inc/cmd.h @@ -16,7 +16,7 @@ #include -void echo_init( void ); +void tcp_cmd_init( void ); #endif /* INC_CMD_H_ */ diff --git a/project/Core/Src/cmd.c b/project/Core/Src/cmd.c index 3204cbb..b0c5f5b 100644 --- a/project/Core/Src/cmd.c +++ b/project/Core/Src/cmd.c @@ -2,27 +2,27 @@ * cmd.c * * Created on: 13 Nov 2023 - * Author: gertr + * Author: Gert Roelandts */ #include "cmd.h" -uint32_t result_txt = 0xff000000; -uint32_t result_bg = 0xff000000; +uint32_t result_txt = 0xff000000; // Store text color +uint32_t result_bg = 0xff000000; // Store background color -static void echo_close(struct tcp_pcb* pcb) { +static void tcp_cmd_close(struct tcp_pcb* pcb) { tcp_arg(pcb, NULL); tcp_sent(pcb, NULL); tcp_recv(pcb, NULL); tcp_close(pcb); } -static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err) { - int i; - int len; - int file_in_fs; - int check = 0; +static err_t tcp_cmd_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err) { + size_t i; + size_t len; + uint8_t file_in_fs; + uint8_t check = 0; - char *pc; + char* pc; char tcp_buffer[1024]; char text[256]; char color_r[3]; @@ -35,18 +35,20 @@ static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err char extension[4]; - char *endptr; + char* endptr; + + size_t number_of_files; if (err == ERR_OK && p != NULL) { tcp_recved(pcb, p->tot_len); pc = (char*)p->payload; len = p->tot_len; - for (i = 0; i < len; i++) { + for (size_t i = 0; i < len; i++) { tcp_buffer[i] = pc[i]; } - if (strncmp(tcp_buffer, "help", 4) == 0) { + if (!strncmp(tcp_buffer, "help", 4)) { check = 1; tcp_write(pcb, "help : laat lijst zien met alle commando's\r\n" "text : geeft tekst mee die op LCD komt (uw_text)\r\n" @@ -56,7 +58,7 @@ static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err "setImage : veranderd te afbeelding (naam_afbeelding)\r\n" "exit : sluit de verbinding\r\n", 354, 0); tcp_output(pcb); - } else if (strncmp(tcp_buffer, "text ", 5) == 0) { + } else if (!strncmp(tcp_buffer, "text ", 5)) { for (i = 0; i < len - 4; i++) { text[i] = tcp_buffer[i + 5]; } @@ -65,8 +67,8 @@ static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err lcd_display_text(text, 10, 10, result_txt, LCD_FONT16); check = 1; - } else if (strncmp(tcp_buffer, "color", 5) == 0) { - for (i = 0; i < 3; i++) { + } else if (!strncmp(tcp_buffer, "color", 5)) { + for (size_t i = 0; i < 3; i++) { color_r[i] = tcp_buffer[i + 6]; color_g[i] = tcp_buffer[i + 10]; color_b[i] = tcp_buffer[i + 14]; @@ -76,8 +78,8 @@ static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err result_bg |= strtoul(color_b, &endptr, 10); check = 1; - } else if (strncmp(tcp_buffer, "textColor", 9) == 0) { - for (i = 0; i < 3; i++) { + } else if (!strncmp(tcp_buffer, "textColor", 9)) { + for (size_t i = 0; i < 3; i++) { text_color_r[i] = tcp_buffer[i + 10]; text_color_g[i] = tcp_buffer[i + 14]; text_color_b[i] = tcp_buffer[i + 18]; @@ -87,65 +89,65 @@ static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err result_txt |= strtoul(text_color_b, &endptr, 10); check = 1; - } else if (strncmp(tcp_buffer, "listImages", 10) == 0) { - size_t number_of_files = llfs_file_count(); + } else if (!strncmp(tcp_buffer, "listImages", 10)) { + number_of_files = llfs_file_count(); llfs_file_t file_list[number_of_files]; number_of_files = llfs_file_list(file_list, number_of_files, NULL); - for (int i = 0; i < number_of_files; i++) { + for (size_t i = 0; i < number_of_files; i++) { tcp_write(pcb, file_list[i].name, strlen(file_list[i].name), TCP_WRITE_FLAG_COPY | TCP_WRITE_FLAG_MORE); tcp_write(pcb, "\r\n", 2, TCP_WRITE_FLAG_COPY | TCP_WRITE_FLAG_MORE); } check = 1; - } else if (strncmp(tcp_buffer, "setImage", 8) == 0) { + } else if (!strncmp(tcp_buffer, "setImage", 8)) { char filename[len - 8]; - for (int i = 0; i < len - 9; i++) { + for (size_t i = 0; i < len - 9; i++) { filename[i] = tcp_buffer[i + 9]; } - for (int i = 0; i < 3; i++) { + for (size_t i = 0; i < 3; i++) { extension[i] = tcp_buffer[i + len - 3]; } filename[sizeof(filename) - 1] = '\0'; extension[3] = '\0'; - size_t number_of_files = llfs_file_count(); + number_of_files = llfs_file_count(); llfs_file_t file_list[number_of_files]; number_of_files = llfs_file_list(file_list, number_of_files, NULL); file_in_fs = 0; - for (int i = 0; i < number_of_files; i++) { - if (strcmp(filename, file_list[i].name) == 0) { + for (size_t i = 0; i < number_of_files; i++) { + if (!strcmp(filename, file_list[i].name)) { file_in_fs = 1; } } // Check which file extension is used and call right function - if (strncmp(extension, "bmp", 3) == 0 && file_in_fs == 1) { + if (!strncmp(extension, "bmp", 3) && file_in_fs) { lcd_clear_images(); lcd_draw_img_from_fs(filename, 10, 10); - } else if (strncmp(extension, "gif", 3) == 0 && file_in_fs == 1) { + } else if (!strncmp(extension, "gif", 3) && file_in_fs) { lcd_clear_images(); lcd_draw_gif_from_fs(filename, 10, 10); - } else if (file_in_fs == 0) { + } else if (!file_in_fs) { tcp_write(pcb, "File NOT in filesystem\n\r", 24, TCP_WRITE_FLAG_COPY | TCP_WRITE_FLAG_MORE); } else { tcp_write(pcb, "Extension NOT supported\n\r", 25, TCP_WRITE_FLAG_COPY | TCP_WRITE_FLAG_MORE); } check = 1; - } else if (strncmp(tcp_buffer, "exit", 4) == 0) { + } else if (!strncmp(tcp_buffer, "exit", 4)) { lcd_clear_images(); lcd_clear_text(); - echo_close(pcb); + tcp_cmd_close(pcb); check = 1; } - if (check == 0 && (strncmp(tcp_buffer, "\r\n", 2) != 0)) { + if (!check && (strncmp(tcp_buffer, "\r\n", 2) != 0)) { tcp_write(pcb, "Onbestaand commando: help voor lijst van commando's\r\n", 53, 0); } @@ -154,15 +156,13 @@ static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err if (len > tcp_sndbuf(pcb)) { len = tcp_sndbuf(pcb); } - - //tcp_write( pcb, tcp_buffer, len, 0 ); tcp_sent(pcb, NULL); } else { pbuf_free(p); } if (err == ERR_OK && p == NULL) { - echo_close(pcb); + tcp_cmd_close(pcb); } if (strncmp(tcp_buffer, "\r\n", 2) != 0) { tcp_write(pcb, "User: ", 6, 0); @@ -171,11 +171,11 @@ static err_t echo_recv(void* arg, struct tcp_pcb* pcb, struct pbuf* p, err_t err return ERR_OK; } -static err_t echo_accept(void* arg, struct tcp_pcb* pcb, err_t err) { +static err_t tcp_cmd_accept(void* arg, struct tcp_pcb* pcb, err_t err) { LWIP_UNUSED_ARG(arg); LWIP_UNUSED_ARG(err); tcp_setprio(pcb, TCP_PRIO_MIN); - tcp_recv(pcb, echo_recv); + tcp_recv(pcb, tcp_cmd_recv); tcp_err(pcb, NULL); tcp_poll(pcb, NULL, 4); tcp_write(pcb, " Welcom bij de TCP CMD Interface\r\n" @@ -186,12 +186,12 @@ static err_t echo_accept(void* arg, struct tcp_pcb* pcb, err_t err) { return ERR_OK; } -void echo_init(void) { - struct tcp_pcb *tcp_pcb; +void tcp_cmd_init(void) { + struct tcp_pcb* tcp_pcb; tcp_pcb = tcp_new(); tcp_bind(tcp_pcb, IP_ADDR_ANY, 23); tcp_pcb = tcp_listen(tcp_pcb); - tcp_accept(tcp_pcb, echo_accept); + tcp_accept(tcp_pcb, tcp_cmd_accept); }