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