MC3302_SDK_V1.1.9_202507281.../media/sample/common/param_config.h

44 lines
1.4 KiB
C
Raw Permalink Normal View History

2025-11-11 04:08:31 +00:00
#ifndef __HYSA_FILE_COMM_H__
#define __HYSA_FILE_COMM_H__
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define MAX_VALUE 64 /* max length of section,key,value*/
typedef struct _option {
char key[MAX_VALUE]; /* <20><>Ӧ<EFBFBD><D3A6> */
char value[MAX_VALUE]; /* <20><>Ӧֵ */
struct _option *next; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>ʶ */
}Option;
typedef struct _data {
char section[MAX_VALUE]; /* <20><><EFBFBD><EFBFBD>sectionֵ */
Option *option; /* option<6F><6E><EFBFBD><EFBFBD>ͷ */
struct _data *next; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>ʶ */
}Data;
typedef struct {
char comment; /* <20><>ʾע<CABE>͵ķ<CDB5><C4B7><EFBFBD> */
char separator; /* <20><>ʾ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD> */
char re_string[MAX_VALUE]; /* <20><><EFBFBD><EFBFBD>ֵ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ֵ */
int re_int; /* <20><><EFBFBD><EFBFBD>int<6E><74>ֵ */
bool re_bool; /* <20><><EFBFBD><EFBFBD>bool<6F><6C>ֵ */
double re_double ; /* <20><><EFBFBD><EFBFBD>double<6C><65><EFBFBD><EFBFBD> */
Data *data; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ͷ */
unsigned int num;
}Config;
Config *cnf_load_config(const char *filename);
bool cnf_get_value(Config *cnf, const char *section, const char *key);
void print_config_info(Config *cnf);
int cnf_release(Config *cnf);
bool cnf_remove_section(Config *cnf, const char *section);
bool cnf_add_option(Config *cnf, const char *section, const char *key, const char *value);
Data *cnf_has_section(Config *cnf, const char *section);
unsigned int cnf_get_total_num(Config *cnf);
#endif