微网配置支持设置配置区
This commit is contained in:
parent
6135aae84b
commit
d7d5c12dd7
|
@ -50,6 +50,9 @@ void Setup(ushort code, const char* name, COM_Def message, int baudRate)
|
|||
}
|
||||
|
||||
#endif
|
||||
|
||||
// Flash最后一块作为配置区
|
||||
Config::Current = &Config::CreateFlash();
|
||||
}
|
||||
|
||||
void Fix2401(void* param)
|
||||
|
@ -160,9 +163,6 @@ TinyClient* CreateTinyClient(ITransport* port)
|
|||
|
||||
void* InitConfig(void* data, uint size)
|
||||
{
|
||||
// Flash最后一块作为配置区
|
||||
Config::Current = &Config::CreateFlash();
|
||||
|
||||
// 启动信息
|
||||
auto hot = &HotConfig::Current();
|
||||
hot->Times++;
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
|
||||
TinyConfig* TinyConfig::Current = NULL;
|
||||
|
||||
TinyConfig::TinyConfig()
|
||||
{
|
||||
Cfg = Config::Current;
|
||||
}
|
||||
|
||||
void TinyConfig::LoadDefault()
|
||||
{
|
||||
// 实际内存大小,减去头部大小
|
||||
|
@ -18,19 +23,17 @@ void TinyConfig::LoadDefault()
|
|||
|
||||
PingTime = 20;
|
||||
OfflineTime = 60;
|
||||
StartSet = 64;
|
||||
}
|
||||
|
||||
void TinyConfig::Load()
|
||||
{
|
||||
// Flash最后一块作为配置区
|
||||
if(!Config::Current) Config::Current = &Config::CreateFlash();
|
||||
if(!Cfg) return;
|
||||
|
||||
// 尝试加载配置区设置
|
||||
uint len = Length;
|
||||
if(!len) len = sizeof(this[0]);
|
||||
Array bs(&Length, len);
|
||||
if(!Config::Current->GetOrSet("TCFG", bs))
|
||||
if(!Cfg->GetOrSet("TCFG", bs))
|
||||
debug_printf("TinyConfig::Load 首次运行,创建配置区!\r\n");
|
||||
else
|
||||
debug_printf("TinyConfig::Load 从配置区加载配置\r\n");
|
||||
|
@ -40,29 +43,33 @@ void TinyConfig::Load()
|
|||
debug_printf("TinyConfig::Load 设备类型变更\r\n");
|
||||
|
||||
Kind = Sys.Code;
|
||||
Config::Current->Set("TCFG", bs);
|
||||
Cfg->Set("TCFG", bs);
|
||||
}
|
||||
}
|
||||
|
||||
void TinyConfig::Save()
|
||||
{
|
||||
if(!Cfg) return;
|
||||
|
||||
uint len = Length;
|
||||
if(!len) len = sizeof(this[0]);
|
||||
|
||||
debug_printf("TinyConfig::Save \r\n");
|
||||
|
||||
Array bs(&Length, len);
|
||||
Config::Current->Set("TCFG", bs);
|
||||
Cfg->Set("TCFG", bs);
|
||||
}
|
||||
|
||||
void TinyConfig::Clear()
|
||||
{
|
||||
if(!Cfg) return;
|
||||
|
||||
LoadDefault();
|
||||
|
||||
debug_printf("TinyConfig::Clear \r\n");
|
||||
|
||||
Array bs(&Length, Length);
|
||||
Config::Current->Set("TCFG", bs);
|
||||
Cfg->Set("TCFG", bs);
|
||||
}
|
||||
|
||||
void TinyConfig::Write(Stream& ms) const
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "Sys.h"
|
||||
#include "Stream.h"
|
||||
#include "Storage\Storage.h"
|
||||
#include "Config.h"
|
||||
|
||||
// 必须设定为1字节对齐,否则offsetof会得到错误的位置
|
||||
#pragma pack(push) // 保存对齐状态
|
||||
|
@ -11,8 +11,9 @@
|
|||
#pragma pack(1)
|
||||
|
||||
// 配置信息
|
||||
struct TinyConfig
|
||||
class TinyConfig
|
||||
{
|
||||
public:
|
||||
byte Length; // 数据长度
|
||||
|
||||
byte OfflineTime;// 离线阀值时间。秒
|
||||
|
@ -30,8 +31,7 @@ struct TinyConfig
|
|||
byte Password[16]; // 通信密码
|
||||
byte Mac[6]; // 无线物理地址
|
||||
|
||||
byte StartSet;
|
||||
|
||||
TinyConfig();
|
||||
void LoadDefault();
|
||||
|
||||
void Load();
|
||||
|
@ -44,6 +44,9 @@ struct TinyConfig
|
|||
|
||||
static TinyConfig* Current;
|
||||
static TinyConfig* Init();
|
||||
|
||||
private:
|
||||
Config* Cfg;
|
||||
};
|
||||
|
||||
#pragma pack(pop) // 恢复对齐状态
|
||||
|
|
Loading…
Reference in New Issue