1 ini.c
#include
#include "stm32f10x.h"
#include "string.h"
#include "EEPROMDrv.h"
#include "ini.h"
//define the memory map in EEPROM
#define IniStartAddress 0
#define IniMaxSize 200
/* EEPROM
0________200________________________________________________________________64K
| | |
|INI | OTHERS |
|_________|_________________________________________________________________|
*/
//---------------Declare variable---------------
//Eeprom is initialized
const uint8_t Var1_Len = 2;
uint8_t Var1_EepromIsInitialized[Var1_Len] = {0};
const uint8_t Var1_Default[Var1_Len] = {0x55, 0x11};
//start
const uint8_t Var2_Len = 1;
uint8_t Var2_Contrast[Var2_Len] = {0};
const uint8_t Var2_Default[Var2_Len] = {50};
const uint8_t Var3_Len = 1;
uint8_t Var3_KeyTone[Var3_Len] = {0};
const uint8_t Var3_Default[Var3_Len] = {0};
const uint8_t Var4_Len = 1;
uint8_t Var4_Language[Var4_Len] = {0};
const uint8_t Var4_Default[Var4_Len] = {0};
const uint8_t Var5_Len = 9;
uint8_t Var5_TerminalPassword[Var5_Len] = {0};
const uint8_t Var5_Default[Var5_Len] = {"123456"};
const uint8_t Var6_Len = 28;
uint8_t Var6_ServerAddress[Var6_Len] = {0};
const uint8_t Var6_Default[Var6_Len] = {"255.255.255.255,10245"};
const uint8_t Var7_Len = 15;
uint8_t Var7_ApnName[Var7_Len] = {0};
const uint8_t Var7_Default[Var7_Len] = {"cmnet"};
const uint8_t Var8_Len = 15;
uint8_t Var8_ApnId[Var8_Len] = {0};
const uint8_t Var8_Default[Var8_Len] = {0};
const uint8_t Var9_Len = 15;
uint8_t Var9_ApnPassword[Var9_Len] = {0};
const uint8_t Var9_Default[Var9_Len] = {0};
const uint8_t Var10_Len = 15;
uint8_t Var10_AdvancedMenuPassword[Var10_Len] = {0};
const uint8_t Var10_Default[Var10_Len] = {"000000"};
//...add your ini variable here, total length of Vars, do not more than MAXINIBUFFSIZE(200)
INI machine_ini[machine_ini_max] =
{
//variable buff, ,The initial value of the buff
//VarEepromIsInitialized;
{Var1_EepromIsInitialized, Var1_Default, Var1_Len},
//start
//VarContrast;
{Var2_Contrast, Var2_Default, Var2_Len},
//VarKeyTone;
{Var3_KeyTone, Var3_Default, Var3_Len},
//VarLanguage;
{Var4_Language, Var4_Default, Var4_Len},
//VarTerminalPassword;
{Var5_TerminalPassword, Var5_Default, Var5_Len},
//VarServerAddress;
{Var6_ServerAddress, Var6_Default, Var6_Len},
//VarApnName;
{Var7_ApnName, Var7_Default, Var7_Len},
//VarApnId;
{Var8_ApnId, Var8_Default, Var8_Len},
//VarApnPassword;
{Var9_ApnPassword, Var9_Default, Var9_Len},
//VarAdvancedMenuPassword;
{Var10_AdvancedMenuPassword, Var10_Default, Var10_Len},
//...add yours as follow
};
uint8_t IniTempBuf[IniMaxSize] = {0};
void PrintBuf(const char *title, uint8_t buf[], uint16_t size)
{
uint16_t i=0;
printf("%s : ", title);
for(i=0; i
#ifndef __INI_H__
#define __INI_H__
void Ini_Initialize (void);
void Ini_WriteToEerpom (void);
void Ini_ReadFromEeprom (void);
void Ini_RestoreToFactoryDefault (void);
int8_t Ini_CmpWithDefault(void);
typedef struct
{
//pointer
uint8_t *Var;
//if you are use the function "Restroe factory set", VarDefault -> Var
const uint8_t *VarDefault;
uint8_t VarLen;
}INI;
#define machine_ini_max 10
extern INI machine_ini[machine_ini_max];
//Item list
#define IniItem_EepromIsInitialized 0
#define IniItem_Contrast 1
#define IniItem_KeyTone 2
#define IniItem_Language 3
#define IniItem_TerminalPassword 4
#define IniItem_ServerAddress 5
#define IniItem_ApnName 6
#define IniItem_ApnId 7
#define IniItem_ApnPassword 8
#define IniItem_AdvancedMenuPassword 9
//IniItem_Language
#define lang_English 0
#define lang_Chinese 1
//user use as follow
#define gEepromIsInitialized machine_ini[IniItem_EepromIsInitialized]
#define gContrast machine_ini[IniItem_Contrast]
#define gKeyTone machine_ini[IniItem_KeyTone]
#define gLanguage machine_ini[IniItem_Language]
#define gTerminalPassword machine_ini[IniItem_TerminalPassword]
#define gServerAddress machine_ini[IniItem_ServerAddress]
#define gApnName machine_ini[IniItem_ApnName]
#define gApnId machine_ini[IniItem_ApnId]
#define gApnPassword machine_ini[IniItem_ApnPassword]
#define gAdvancedMenuPassword machine_ini[IniItem_AdvancedMenuPassword]
#endif