diff --git a/project/Core/Src/tftp.c b/project/Core/Src/tftp.c index 45f2c01..b27bb0a 100644 --- a/project/Core/Src/tftp.c +++ b/project/Core/Src/tftp.c @@ -10,12 +10,9 @@ static const char* TAG = "tftp_server"; extern struct llfs_data_file* llfs_root; -static tftp_custom_file_t virt_file[] = - { - {.name = "index.txt",.data = NULL, .len = 0, .ofset = 0}, - {.name = "virtImage.raw",.data = NULL, .len = 0, .ofset = 0}, - {.name = "virtText.txt",.data = NULL, .len = 0, .ofset = 0} - }; +static tftp_custom_file_t virt_file[] = {{.name = "index.txt", .data = NULL, .len = 0, .ofset = 0}, + {.name = "virtImage.raw", .data = NULL, .len = 0, .ofset = 0}, + {.name = "virtText.txt", .data = NULL, .len = 0, .ofset = 0}}; int str_cat_str(char* dest, size_t dest_size, const char* src) { size_t dest_len = strlen(dest); @@ -27,8 +24,7 @@ int str_cat_str(char* dest, size_t dest_size, const char* src) { return 0; } -int str_cat(char* dest, size_t dest_size, char c) -{ +int str_cat(char* dest, size_t dest_size, char c) { size_t dest_len = strlen(dest); if (dest_len + 1 > dest_size) { return -1; @@ -111,11 +107,11 @@ size_t tftp_custom_fwrite(const void* buf, size_t bytes, tftp_custom_file_t* han * @brief This function is called when a file is opened * It should return a handle to the file or NULL if the file does not exist * The handle contains a ptr to or the actual file data or a virtual file - * + * * @param fname The name of the file to open * @param mode Mode string from TFTP RFC * @param write Flag indicating read (0) or write (!= 0) access - * @return void* File handle supplied to other functions + * @return void* File handle supplied to other functions */ void* tftp_open(const char* fname, const char* mode, uint8_t write) { LOG_INFO(TAG, "Opening %s", fname); @@ -135,7 +131,7 @@ void* tftp_open(const char* fname, const char* mode, uint8_t write) { /** * @brief This function is called when a file is closed - * + * * @param handle The handle to the file to close */ void tftp_close(void* handle) { @@ -146,12 +142,12 @@ void tftp_close(void* handle) { } if (handle == &virt_file[1]) { + // TODO: waiting on pr of tim to merge so we can use the bmp lcd function lcd_clear(LCD_COLOR_BLACK); lcd_display_text("show me what you got virtImage.raw", 0, 0, LCD_COLOR_BLACK, LCD_COLOR_WHITE, LCD_FONT16); } if (handle == &virt_file[2]) { - // TODO: Clear display lcd_clear(LCD_COLOR_BLACK); lcd_display_text((uint8_t*)virt_file[2].data, 0, 0, LCD_COLOR_BLACK, LCD_COLOR_WHITE, LCD_FONT16); } @@ -169,11 +165,11 @@ void tftp_close(void* handle) { * @brief This function is called when a file is read * The virtual files are filtered out first * then the file is trying to get read from the llfs - * + * * @param handle File handle returned by open() - * @param buf Target buffer to copy read data to - * @param bytes Number of bytes to copy to buf - * @return int >= 0: Success; < 0: Error + * @param buf Target buffer to copy read data to + * @param bytes Number of bytes to copy to buf + * @return int >= 0: Success; < 0: Error */ int tftp_read(void* handle, void* buf, int bytes) { int ret = 0; @@ -204,16 +200,16 @@ int tftp_read(void* handle, void* buf, int bytes) { /** * @brief This function is called when a file is written - * + * * @param handle File handle returned by open() * @param p PBUF adjusted such that payload pointer points to the beginning of write data. - * In other words, TFTP headers are stripped off. - * @return int >= 0: Success; < 0: Error + * In other words, TFTP headers are stripped off. + * @return int >= 0: Success; < 0: Error */ int tftp_write(void* handle, struct pbuf* p) { LOG_INFO(TAG, "Writing file"); LOG_DEBUG(TAG, "Not implemented yet"); - tftp_custom_file_t *file = (tftp_custom_file_t*)handle; + tftp_custom_file_t* file = (tftp_custom_file_t*)handle; if (file == &virt_file[1] || file == &virt_file[2]) { return tftp_custom_fwrite(p->payload, p->len, file); } @@ -223,16 +219,14 @@ int tftp_write(void* handle, struct pbuf* p) { /** * @brief This function creates the file list for index.txt */ -void init_index(void) -{ +void init_index(void) { size_t len = 0; // Add len of the virt files to the size - for (int i = 0; i < 2; i++) - { + for (int i = 0; i < 2; i++) { len += strlen(virt_file[i].name) + 1; } const struct llfs_data_file* root = llfs_root; - while(root != NULL) { + while (root != NULL) { len += strlen(root->name) + 1; root = root->next; } @@ -240,13 +234,12 @@ void init_index(void) virt_file[0].data = malloc(len); virt_file[0].len = len; - for (int i = 0; i < 2; i++) - { + for (int i = 0; i < 2; i++) { str_cat_str(virt_file[0].data, len, virt_file[i].name); str_cat(virt_file[0].data, len, '\n'); } root = llfs_root; - while(root != NULL) { + while (root != NULL) { str_cat_str(virt_file[0].data, len, root->name); str_cat(virt_file[0].data, len, '\n'); root = root->next; @@ -256,12 +249,7 @@ void init_index(void) virt_file[2].len = 100; } -struct tftp_context tftpContext_s = { - .open = tftp_open, - .close = tftp_close, - .read = tftp_read, - .write = tftp_write - }; +struct tftp_context tftpContext_s = {.open = tftp_open, .close = tftp_close, .read = tftp_read, .write = tftp_write}; /** * @brief Initialize tftp server