Fix #1: Implement save function for calibration

This commit is contained in:
2020-08-16 12:52:16 +02:00
parent fa3c980207
commit 15d255778c
5 changed files with 29 additions and 9 deletions

View File

@@ -77,7 +77,7 @@ static int open_or_create_controller_folder(DIR *controller_folder)
return ret;
}
int sd_card_settings_save_calibration(float sens_deviation, float offset)
int sd_card_settings_save_calibration(float sens_deviation, float offset, bool active)
{
DIR folder;
FIL cal_file;
@@ -85,6 +85,7 @@ int sd_card_settings_save_calibration(float sens_deviation, float offset)
FRESULT res;
UINT bw;
int ret = 0;
char buff[256];
status = open_or_create_controller_folder(&folder);
f_closedir(&folder);
@@ -95,9 +96,21 @@ int sd_card_settings_save_calibration(float sens_deviation, float offset)
/* Create new calibration file */
res = f_open(&cal_file, CALIBRATION_FILE_NAME, FA_CREATE_ALWAYS | FA_WRITE);
if (res == FR_OK) {
f_write(&cal_file, "Test", 4U, &bw);
status = snprintf(buff, sizeof(buff), "[cal]\noffset = %f\nsensdev = %f\nactive = %s\n",
offset, sens_deviation, (active ? "true" : "false"));
if ((unsigned int)status < sizeof(buff) && status >= 0) {
f_write(&cal_file, buff, status, &bw);
if (bw == (unsigned int)status)
ret = 0;
else
ret = -3;
} else {
ret = -4;
}
f_close(&cal_file);
ret = 0;
} else {
ret = -1;
}

View File

@@ -21,8 +21,8 @@
#include <reflow-controller/settings/settings.h>
#include <reflow-controller/settings/settings-sd-card.h>
settings_save_calibration(float sens_deviation, float offset)
settings_save_calibration(float sens_deviation, float offset, bool active)
{
/* There is no other configuration location besides the SD card (yet) */
return sd_card_settings_save_calibration(sens_deviation, offset);
return sd_card_settings_save_calibration(sens_deviation, offset, active);
}