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

Loading…
Cancel
Save

Powered by TurnKey Linux.