From 4c4969d0cb0f817de2aa866a7d8abfde6ecaff82 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Sat, 25 Feb 2017 14:20:28 -0500 Subject: initial commit of config parser --- src/survive_config.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/survive_config.h (limited to 'src/survive_config.h') diff --git a/src/survive_config.h b/src/survive_config.h new file mode 100644 index 0000000..03e5eb8 --- /dev/null +++ b/src/survive_config.h @@ -0,0 +1,36 @@ +// (C) 2017 <>< Joshua Allen, Under MIT/x11 License. + + +#ifndef _SURVIVE_CONFIG_H +#define _SURVIVE_CONFIG_H + +#include "survive_internal.h" + +typedef enum { + CONFIG_UNKNOWN = 0, + CONFIG_FLOAT = 1, + CONFIG_UINT32 = 2, + CONFIG_STRING = 3 +} cval_type; +/* +typedef union { + uint32_t i; + float f; + } Numeric; +*/ +typedef struct { + char *tag; + cval_type type; + union { + uint32_t i; + float f; + } numeric; + char *str; +} config_val; + + +void config_open(const char* path, const char* mode); +void config_close(); +void config_write_lighthouse(struct BaseStationData* bsd, uint8_t length); + +#endif \ No newline at end of file -- cgit v1.2.3 From 3baabd2f8aa69a986bbb29739e6353d9a95336c5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Sat, 25 Feb 2017 14:34:10 -0500 Subject: float to FLT --- src/survive_config.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/survive_config.h') diff --git a/src/survive_config.h b/src/survive_config.h index 03e5eb8..24762cd 100644 --- a/src/survive_config.h +++ b/src/survive_config.h @@ -15,7 +15,7 @@ typedef enum { /* typedef union { uint32_t i; - float f; + FLT f; } Numeric; */ typedef struct { @@ -23,7 +23,7 @@ typedef struct { cval_type type; union { uint32_t i; - float f; + FLT f; } numeric; char *str; } config_val; @@ -33,4 +33,13 @@ void config_open(const char* path, const char* mode); void config_close(); void config_write_lighthouse(struct BaseStationData* bsd, uint8_t length); +void config_save(const char* path); +const FLT config_set_float(const char *tag, const FLT value); +const uint32_t config_set_uint32(const char *tag, const uint32_t value); +const char* config_set_str(const char *tag, const char* value); +FLT config_read_float(const char *tag, const FLT value, const FLT def); + +uint32_t config_read_uint32(const char *tag, const uint32_t value, const uint32_t def); +const char* config_read_str(const char *tag, const char *value, const char *def_str); + #endif \ No newline at end of file -- cgit v1.2.3