From d04d8ebf9dc63f84a74437a3e06662d2f48e5d02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Sun, 16 Aug 2020 13:15:35 +0200 Subject: [PATCH] Change save fuinction for SD card calibration data --- stm-firmware/settings/settings-sd-card.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/stm-firmware/settings/settings-sd-card.c b/stm-firmware/settings/settings-sd-card.c index e798e2d..285bcc8 100644 --- a/stm-firmware/settings/settings-sd-card.c +++ b/stm-firmware/settings/settings-sd-card.c @@ -43,29 +43,25 @@ static void get_controller_folder_path(char *path, size_t size) * @param[in,out] controller_folder * @return 0 if opened, 1 if created and opened, -1 if error. */ -static int open_or_create_controller_folder(DIR *controller_folder) +static int create_controller_folder(void) { char foldername[48]; int ret = -1; FRESULT filesystem_result; - - if (!controller_folder) - return -1001; + DIR folder; get_controller_folder_path(foldername, sizeof(foldername)); /* Check if folder is present */ - filesystem_result = f_opendir(controller_folder, foldername); + filesystem_result = f_opendir(&folder, foldername); if (filesystem_result == FR_OK) { ret = 0; + f_closedir(&folder); } else { filesystem_result = f_mkdir(foldername); if (filesystem_result == FR_OK) { - filesystem_result = f_opendir(controller_folder, foldername); - if (filesystem_result == FR_OK) - ret = 1; - else - ret = -1; + f_closedir(&folder); + ret = 1; } else { ret = -1; } @@ -79,7 +75,6 @@ static int open_or_create_controller_folder(DIR *controller_folder) int sd_card_settings_save_calibration(float sens_deviation, float offset, bool active) { - DIR folder; FIL cal_file; int status; FRESULT res; @@ -87,8 +82,8 @@ int sd_card_settings_save_calibration(float sens_deviation, float offset, bool a int ret = 0; char buff[256]; - status = open_or_create_controller_folder(&folder); - f_closedir(&folder); + status = create_controller_folder(); + if (status < 0) return -2;