令牌配置区更爱,添加判断是否新配置

This commit is contained in:
cdyong 2016-01-07 10:00:04 +00:00
parent 9b68031326
commit 32c77ba45f
2 changed files with 18 additions and 5 deletions

View File

@ -4,10 +4,15 @@
TokenConfig* TokenConfig::Current = NULL;
uint TokenConfig::Size() const
{
return (uint)&New - (uint)&Length;
}
void TokenConfig::LoadDefault()
{
// 实际内存大小,减去头部大小
uint len = sizeof(this[0]) - ((int)&Length - (int)this);
uint len = Size();
memset(&Length, 0, len);
Length = len;
@ -23,7 +28,7 @@ bool TokenConfig::Load()
if(!Config::Current) Config::Current = &Config::CreateFlash();
// 尝试加载配置区设置
uint len = Length;
uint len = Size();
if(!len) len = sizeof(this[0]);
Array bs(&Length, len);
/*if(!Config::Current->GetOrSet("TKCF", bs))
@ -33,15 +38,20 @@ bool TokenConfig::Load()
if(Config::Current->Get("TKCF", bs))
{
debug_printf("TokenConfig::Load 从配置区加载配置\r\n");
New = false;
return true;
}
else
New = true;
return false;
}
void TokenConfig::Save()
{
uint len = Length;
uint len = Size();
if(!len) len = sizeof(this[0]);
debug_printf("TokenConfig::Save \r\n");
@ -69,7 +79,7 @@ void TokenConfig::Show()
void TokenConfig::Write(Stream& ms) const
{
uint len = Length;
uint len = Size();
if(!len) len = sizeof(this[0]);
ms.Write(&Length, 0, len);
@ -77,7 +87,7 @@ void TokenConfig::Write(Stream& ms) const
void TokenConfig::Read(Stream& ms)
{
uint len = Length;
uint len = Size();
if(!len) len = sizeof(this[0]);
ms.Read(&Length, 0, len);

View File

@ -27,11 +27,14 @@ struct TokenConfig
char Server[32]; // 服务器域名。出厂为空,从厂商服务器覆盖,恢复出厂设置时清空
char Vendor[32]; // 厂商服务器域名。原始厂商服务器地址
bool New;
void LoadDefault();
bool Load();
void Save();
void Show();
uint Size() const;
// 序列化到消息数据流
void Write(Stream& ms) const;