Bin to Yaml conversions
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user