Bin to Yaml conversions

This commit is contained in:
Raphael Coeffic
2021-11-10 11:06:59 +01:00
parent 6c73b5ba0a
commit 5a367a5221
10 changed files with 162 additions and 46 deletions
+36 -7
View File
@@ -22,6 +22,7 @@
#include "opentx.h"
#include "storage.h"
#include "sdcard_common.h"
#include "sdcard_raw.h"
#include "modelslist.h"
@@ -74,8 +75,7 @@ void storageCreateModelsList()
// SDCARD storage interface
//
const char * loadRadioSettings()
const char * loadRadioSettingsYaml()
{
// YAML reader
TRACE("YAML radio settings reader");
@@ -86,6 +86,16 @@ const char * loadRadioSettings()
return readYamlFile(RADIO_SETTINGS_YAML_PATH, YamlTreeWalker::get_parser_calls(), &tree);
}
const char * loadRadioSettings()
{
FILINFO fno;
if (f_stat(RADIO_SETTINGS_YAML_PATH, &fno) != FR_OK) {
return loadRadioSettingsBin();
}
return loadRadioSettingsYaml();
}
struct yaml_writer_ctx {
FIL* file;
FRESULT result;
@@ -133,7 +143,7 @@ const char * writeGeneralSettings()
}
const char * readModel(const char * filename, uint8_t * buffer, uint32_t size, uint8_t * version)
const char * readModelYaml(const char * filename, uint8_t * buffer, uint32_t size, uint8_t * version)
{
// YAML reader
TRACE("YAML model reader");
@@ -159,7 +169,7 @@ const char * readModel(const char * filename, uint8_t * buffer, uint32_t size, u
// wipe memory before reading YAML
memset(buffer,0,size);
//#if defined(FLIGHT_MODES) && defined(GVARS)
#if defined(FLIGHT_MODES) && defined(GVARS)
// reset GVars to default values
// Note: taken from opentx.cpp::modelDefault()
//TODO: new func in gvars
@@ -168,19 +178,33 @@ const char * readModel(const char * filename, uint8_t * buffer, uint32_t size, u
g_model.flightModeData[p].gvars[i] = GVAR_MAX+1;
}
}
//#endif
#endif
*version = 255; // max version number
return readYamlFile(path, YamlTreeWalker::get_parser_calls(), &tree);
}
const char * writeModel()
const char* readModel(const char* filename, uint8_t* buffer, uint32_t size,
uint8_t* version)
{
const char* ext = strrchr(filename, '.');
if (ext != nullptr) {
if (!strncmp(ext, YAML_EXT, 4)) {
return readModelYaml(filename, buffer, size, version);
}
return readModelBin(filename, buffer, size, version);
}
return nullptr;
}
const char * writeModelYaml(const char* filename)
{
// YAML reader
TRACE("YAML model writer");
char path[256];
getModelPath(path, g_eeGeneral.currModelFilename);
getModelPath(path, filename);
FIL file;
@@ -206,3 +230,8 @@ const char * writeModel()
f_close(&file);
return NULL;
}
const char * writeModel()
{
return writeModelYaml(g_eeGeneral.currModelFilename);
}