0801,0802,pandora 底板 默认启用定时策略

This commit is contained in:
cdyong 2016-12-15 11:19:06 +08:00
parent 97727ccc5d
commit 79cdde44a1
4 changed files with 138 additions and 105 deletions

View File

@ -192,7 +192,7 @@ void AP0801::InitClient()
Client = tc;
tc->MaxNotActive = 480000;
InitAlarm();
// 重启
tc->Register("Gateway/Restart", &TokenClient::InvokeRestart, tc);
// 重置

View File

@ -14,6 +14,7 @@
#include "..\App\FlushPort.h"
AP0802 * AP0802::Current = nullptr;
static TokenClient* Client = nullptr; // 令牌客户端
AP0802::AP0802()
{
@ -110,6 +111,35 @@ void ButtonOnpress(InputPort* port, bool down, void* param)
AP0802::OnLongPress(port, down);
}
static void OnAlarm(AlarmItem& item)
{
// 1长度n + 1类型 + 1偏移 + (n-2)数据
auto bs = item.GetData();
debug_printf("OnAlarm ");
bs.Show(true);
if (bs[1] == 0x06)
{
auto client = Client;
client->Store.Write(bs[2], bs.Sub(3, bs[0] - 2));
// 主动上报状态
client->ReportAsync(bs[2], bs[0] - 2);
}
}
void AP0802::InitAlarm()
{
if (!Client)return;
if (!AlarmObj)AlarmObj = new Alarm();
Client->Register("Policy/AlarmSet", &Alarm::Set, AlarmObj);
Client->Register("Policy/AlarmGet", &Alarm::Get, AlarmObj);
AlarmObj->OnAlarm = OnAlarm;
AlarmObj->Start();
}
void AP0802::InitButtons(const Delegate2<InputPort&, bool>& press)
{
for (int i = 0; i < ButtonPins.Count(); i++)
@ -175,6 +205,8 @@ void AP0802::InitClient()
// 需要使用本地连接
//client->UseLocal();
//配置闹钟
InitAlarm();
Client = client;
Client->MaxNotActive = 480000;
@ -475,7 +507,7 @@ void AP0802::OnLongPress(InputPort* port, bool down)
debug_printf("Press P%c%d Time=%d ms\r\n", _PIN_NAME(port->_Pin), port->PressTime);
ushort time = port->PressTime;
auto client = AP0802::Current->Client;
auto client =Client;
if (time >= 5000 && time < 10000)
{
if (client) client->Reset("按键重置");

View File

@ -6,6 +6,7 @@
#include "TokenNet\TokenClient.h"
#include "Device\Port.h"
#include "App\Alarm.h"
#define HardwareVerFist 0
#define HardwareVerAt160712 1
@ -25,7 +26,6 @@ public:
ISocketHost* Host; // 网络主机
ISocketHost* HostAP; // 网络主机
TokenClient* Client; // 令牌客户端
byte HardwareVer;
AP0802();
@ -37,7 +37,7 @@ public:
// 设置数据区
void* InitData(void* data, int size);
void Register(int index, IDataPort& dp);
void InitAlarm();
void InitLeds();
void InitButtons(const Delegate2<InputPort&, bool>& press);
void InitPort();
@ -65,7 +65,7 @@ private:
bool NetBra;
bool EspMaster;
bool EspBra;
Alarm* AlarmObj;
// uint Flag; // 内部使用 标识Controller创建情况
void OpenClient(ISocketHost& host);

View File

@ -102,6 +102,7 @@ void PA0903::InitClient()
Client = client;
InitAlarm();
// 重启
Client->Register("Gateway/Restart", &TokenClient::InvokeRestart, Client);
// 重置