add ini Parse & ini Parse demo
This commit is contained in:
170
board/Linux_Posix/ini_demo/src/main.c
Executable file
170
board/Linux_Posix/ini_demo/src/main.c
Executable file
@@ -0,0 +1,170 @@
|
||||
#include "cmsis_os.h"
|
||||
#include "iniparser.h"
|
||||
#define CONFIG_NAME "Config.ini"
|
||||
|
||||
struct DataInfo_t
|
||||
{
|
||||
int InitData;
|
||||
int VolumeData;
|
||||
int LanguageVersion;
|
||||
};
|
||||
|
||||
#define TASK1_STK_SIZE 512
|
||||
void task1(void *arg);
|
||||
osThreadDef(task1, osPriorityNormal, 1, TASK1_STK_SIZE);
|
||||
|
||||
void task1(void *arg)
|
||||
{
|
||||
int Len = -1;
|
||||
int Ret = -1;
|
||||
char Buf[128];
|
||||
char *DataPtr = NULL;
|
||||
struct DataInfo_t Data;
|
||||
FILE *IniTest = NULL ;
|
||||
FILE *DefaultIni = NULL;
|
||||
dictionary *ConfigIni = NULL;
|
||||
|
||||
/*1. Create ini config file*/
|
||||
IniTest = fopen(CONFIG_NAME, "w");
|
||||
if(NULL == IniTest)
|
||||
{
|
||||
printf("IniTest is Null!\n");
|
||||
return ;
|
||||
}
|
||||
|
||||
fprintf(IniTest,
|
||||
"[Setting]\n"
|
||||
"init_data=0;\n"
|
||||
"volume_data=1;\n"
|
||||
"language_version=1;\n"
|
||||
);
|
||||
|
||||
Ret = fclose(IniTest);
|
||||
if(Ret != 0)
|
||||
{
|
||||
printf("close IniTest fail!\n");
|
||||
return ;
|
||||
}
|
||||
|
||||
IniTest = NULL;
|
||||
|
||||
IniTest = fopen(CONFIG_NAME, "r");
|
||||
if(NULL == IniTest)
|
||||
{
|
||||
printf("IniTest is Null!\n");
|
||||
return ;
|
||||
}
|
||||
|
||||
memset(Buf, 0, sizeof(Buf));
|
||||
while(fgets(Buf, sizeof(Buf), IniTest))
|
||||
{
|
||||
printf("Buf: %s", Buf);
|
||||
}
|
||||
|
||||
fclose(IniTest);
|
||||
IniTest = NULL;
|
||||
|
||||
putchar('\n');
|
||||
|
||||
/*2. Test read ini config file data*/
|
||||
ConfigIni = iniparser_load(CONFIG_NAME);
|
||||
if(NULL == ConfigIni)
|
||||
{
|
||||
printf("ConfigIni is NULL!\n");
|
||||
return ;
|
||||
}
|
||||
|
||||
//iniparser_dump(ConfigIni, stderr);
|
||||
Data.InitData = iniparser_getint(ConfigIni,"Setting:init_data",-1);
|
||||
if(-1 == Data.InitData)
|
||||
{
|
||||
printf("iniparser_getint fail!\n");
|
||||
return ;
|
||||
}
|
||||
Data.VolumeData = iniparser_getint(ConfigIni,"Setting:volume_data",-1);
|
||||
if(-1 == Data.VolumeData)
|
||||
{
|
||||
printf("iniparser_getint fail!\n");
|
||||
return ;
|
||||
}
|
||||
Data.LanguageVersion = iniparser_getint(ConfigIni,"Setting:language_version",-1);
|
||||
if(-1 == Data.LanguageVersion)
|
||||
{
|
||||
printf("iniparser_getint fail!\n");
|
||||
return ;
|
||||
}
|
||||
|
||||
printf("Data.InitData:%d\n", Data.InitData);
|
||||
printf("Data.VolumeData:%d\n", Data.VolumeData);
|
||||
printf("Data.LanguageVersion:%d\n", Data.LanguageVersion);
|
||||
|
||||
/* 3. Set modify one of the parameters*/
|
||||
iniparser_set(ConfigIni,"Setting:init_data", "111");
|
||||
iniparser_set(ConfigIni,"Setting:volume_data", "222");
|
||||
iniparser_set(ConfigIni,"Setting:language_version", "333");
|
||||
|
||||
putchar('\n');
|
||||
|
||||
/*4. Write data to int config file*/
|
||||
DefaultIni = fopen(CONFIG_NAME, "w");
|
||||
if(NULL == DefaultIni)
|
||||
{
|
||||
printf("DefaultIni is NULL!\n");
|
||||
return ;
|
||||
}
|
||||
iniparser_dump_ini(ConfigIni, DefaultIni);
|
||||
Ret = fclose(DefaultIni);
|
||||
if(Ret != 0)
|
||||
{
|
||||
printf("close DefaultIni fail!\n");
|
||||
return ;
|
||||
}
|
||||
|
||||
/*5.Read the modified Config ini file data*/
|
||||
Data.InitData = iniparser_getint(ConfigIni, "Setting:init_data", -1);
|
||||
if(-1 == Data.InitData)
|
||||
{
|
||||
printf("iniparser_getint fail!\n");
|
||||
return ;
|
||||
}
|
||||
Data.VolumeData = iniparser_getint(ConfigIni, "Setting:volume_data", -1);
|
||||
if(-1 == Data.VolumeData)
|
||||
{
|
||||
printf("iniparser_getint fail!\n");
|
||||
return ;
|
||||
}
|
||||
Data.LanguageVersion = iniparser_getint(ConfigIni, "Setting:language_version", -1);
|
||||
if(-1 == Data.LanguageVersion)
|
||||
{
|
||||
printf("iniparser_getint fail!\n");
|
||||
return ;
|
||||
}
|
||||
|
||||
printf("Data.InitData:%d\n", Data.InitData);
|
||||
printf("Data.VolumeData:%d\n", Data.VolumeData);
|
||||
printf("Data.LanguageVersion:%d\n", Data.LanguageVersion);
|
||||
|
||||
iniparser_freedict(ConfigIni);
|
||||
|
||||
while(1)
|
||||
{
|
||||
printf("Ini test success!\n");
|
||||
osDelay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
void application_entry(void *arg)
|
||||
{
|
||||
osThreadCreate(osThread(task1), NULL); // Create task1
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
osKernelInitialize(); //TOS Tiny kernel initialize
|
||||
application_entry(NULL);
|
||||
osKernelStart(); //Start TOS Tiny
|
||||
|
||||
while (1)
|
||||
{
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user