Better error processing in sd console commands

Removed_REF_marker
DiSlord 5 years ago
parent e13368d416
commit 0eb2ef4f3d

@ -812,7 +812,7 @@ static FIL *fs_file = ( FIL*)(((uint8_t*)(&spi_buffer[SPI_BUFFER_SIZE]))
static FRESULT cmd_sd_card_mount(void){ static FRESULT cmd_sd_card_mount(void){
const FRESULT res = f_mount(fs_volume, "", 1); const FRESULT res = f_mount(fs_volume, "", 1);
if (res != FR_OK) if (res != FR_OK)
shell_printf("error: card not mounted\r\n"); shell_printf("err: no card\r\n");
return res; return res;
} }
@ -824,9 +824,7 @@ VNA_SHELL_FUNCTION(cmd_sd_list)
DIR dj; DIR dj;
FILINFO fno; FILINFO fno;
FRESULT res; FRESULT res;
shell_printf("sd_list:\r\n"); if (cmd_sd_card_mount() != FR_OK)
res = cmd_sd_card_mount();
if (res != FR_OK)
return; return;
char *search; char *search;
switch (argc){ switch (argc){
@ -834,6 +832,7 @@ VNA_SHELL_FUNCTION(cmd_sd_list)
case 1: search = argv[0];break; case 1: search = argv[0];break;
default: shell_printf("usage: sd_list {pattern}\r\n"); return; default: shell_printf("usage: sd_list {pattern}\r\n"); return;
} }
shell_printf("sd_list:\r\n");
res = f_findfirst(&dj, &fno, "", search); res = f_findfirst(&dj, &fno, "", search);
while (res == FR_OK && fno.fname[0]) while (res == FR_OK && fno.fname[0])
{ {
@ -847,18 +846,19 @@ VNA_SHELL_FUNCTION(cmd_sd_read)
{ {
FRESULT res; FRESULT res;
char *buf = (char *)spi_buffer; char *buf = (char *)spi_buffer;
if (argc < 1) if (argc != 1)
{ {
shell_printf("usage: sd_read {filename}\r\n"); shell_printf("usage: sd_read {filename}\r\n");
return; return;
} }
const char *filename = argv[0]; const char *filename = argv[0];
res = cmd_sd_card_mount(); if (cmd_sd_card_mount() != FR_OK)
if (res != FR_OK) return;
goto error_open;
res = f_open(fs_file, filename, FA_OPEN_EXISTING | FA_READ); if (f_open(fs_file, filename, FA_OPEN_EXISTING | FA_READ) != FR_OK){
if (res != FR_OK) shell_printf("err: no file\r\n");
goto error_open; return;
}
// shell_printf("sd_read: %s\r\n", filename); // shell_printf("sd_read: %s\r\n", filename);
// number of bytes to follow (file size) // number of bytes to follow (file size)
@ -876,28 +876,20 @@ VNA_SHELL_FUNCTION(cmd_sd_read)
} }
res = f_close(fs_file); res = f_close(fs_file);
return; return;
error_open:
shell_printf("Error\r\n");
return;
} }
VNA_SHELL_FUNCTION(cmd_sd_delete) VNA_SHELL_FUNCTION(cmd_sd_delete)
{ {
FRESULT res; FRESULT res;
if (argc < 1) if (argc != 1) {
{
shell_printf("usage: sd_delete {filename}\r\n"); shell_printf("usage: sd_delete {filename}\r\n");
return; return;
} }
res = cmd_sd_card_mount(); if (cmd_sd_card_mount() != FR_OK)
if (res != FR_OK) return;
goto error_delete;
const char *filename = argv[0]; const char *filename = argv[0];
res = f_unlink(filename); res = f_unlink(filename);
shell_printf("delete: %s %s\r\n", filename, res == FR_OK ? "OK" : "error"); shell_printf("delete: %s %s\r\n", filename, res == FR_OK ? "OK" : "err");
return;
error_delete:
shell_printf("Error\r\n");
return; return;
} }
#endif #endif

Loading…
Cancel
Save

Powered by TurnKey Linux.