修改flag 二进制为 bool类型

This commit is contained in:
WangQiang 2016-08-08 09:35:46 +00:00
parent a2e59c8de3
commit 1c38566dba
4 changed files with 53 additions and 31 deletions

View File

@ -24,7 +24,11 @@ AP0801::AP0801()
Data = nullptr; Data = nullptr;
Size = 0; Size = 0;
Flag = 0; // 一众标识初始化
NetMaster = false;
NetBra = false;
EspMaster = false;
EspBra = false;
} }
void AP0801::Init(ushort code, cstring name, COM message) void AP0801::Init(ushort code, cstring name, COM message)
@ -183,13 +187,8 @@ void AP0801::Register(int index, IDataPort& dp)
void AP0801::OpenClient(ISocketHost& host) void AP0801::OpenClient(ISocketHost& host)
{ {
/*
Flag esp作为Master esp广播Controller
w5500 Master w5500 广
*/
assert(Client, "Client"); assert(Client, "Client");
debug_printf("\r\n OpenClient Flag :0x%08X\r\n", Flag); // debug_printf("\r\n OpenClient Flag :0x%08X\r\n", Flag);
// 网络就绪后,打开指示灯 // 网络就绪后,打开指示灯
auto net = dynamic_cast<W5500*>(&host); auto net = dynamic_cast<W5500*>(&host);
@ -206,38 +205,38 @@ void AP0801::OpenClient(ISocketHost& host)
{ {
if (Host == esp) // 8266 作为Host的时候 使用 Master 和广播端口两个 HostAP 为空 if (Host == esp) // 8266 作为Host的时候 使用 Master 和广播端口两个 HostAP 为空
{ {
if (esp->Joined && !(Flag & 0x01000000)) if (esp->Joined && !EspMaster)
{ {
AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 ESP8266 则要求 JoinAP 完成才能添加主控制器 AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 ESP8266 则要求 JoinAP 完成才能添加主控制器
Flag |= 0x01000000; EspMaster = true;
} }
if (!(Flag & 0x00010000)) if (!EspBra)
{ {
AddControl(*Host, uri, tk->Port); AddControl(*Host, uri, tk->Port);
Flag |= 0x00010000; EspBra = true;
} }
} }
if (Host == net) // w5500 作为Host的时候 使用Master和广播两个端口 HostAP 开启AP时非空 打开其内网端口 if (Host == net) // w5500 作为Host的时候 使用Master和广播两个端口 HostAP 开启AP时非空 打开其内网端口
{ {
if (!(Flag & 0x00000100)) if (!NetMaster)
{ {
AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 W5500 打开了就直接允许添加Master AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 W5500 打开了就直接允许添加Master
Flag |= 0x00000100; NetMaster = true;
} }
if (!(Flag & 0x00000001)) if (!NetBra)
{ {
AddControl(*Host, uri, tk->Port); AddControl(*Host, uri, tk->Port);
Flag |= 0x00000001; NetBra = true;
} }
} }
if (HostAP && HostAP == esp) // 只使用esp的时候HostAp为空 if (HostAP && HostAP == esp) // 只使用esp的时候HostAp为空
{ {
if (!(Flag & 0x00010000)) if (!EspBra)
{ {
AddControl(*Host, uri, tk->Port); AddControl(*Host, uri, tk->Port);
Flag |= 0x00010000; EspBra = true;
} }
} }

View File

@ -52,7 +52,13 @@ public:
private: private:
void* Data; void* Data;
int Size; int Size;
uint Flag; // 内部使用 标识Controller创建情况 // Control 打开情况标识
bool NetMaster;
bool NetBra;
bool EspMaster;
bool EspBra;
// uint Flag; // 内部使用 标识Controller创建情况
void OpenClient(ISocketHost& host); void OpenClient(ISocketHost& host);
TokenController* AddControl(ISocketHost& host, const NetUri& uri, ushort localPort); TokenController* AddControl(ISocketHost& host, const NetUri& uri, ushort localPort);

View File

@ -27,8 +27,12 @@ AP0802::AP0802()
Client = nullptr; Client = nullptr;
Data = nullptr; Data = nullptr;
Size = 0; Size = 0;
Flag = 0; // Control 打开情况标识
NetMaster = false;
NetBra = false;
EspMaster = false;
EspBra = false;
} }
void AP0802::Init(ushort code, cstring name, COM message) void AP0802::Init(ushort code, cstring name, COM message)
@ -173,6 +177,13 @@ void AP0802::Register(int index, IDataPort& dp)
ds.Register(index, dp); ds.Register(index, dp);
} }
/*
// Control 打开情况标识
bool NetMaster;
bool NetBra;
bool EspMaster;
bool EspBra;
*/
void AP0802::OpenClient(ISocketHost& host) void AP0802::OpenClient(ISocketHost& host)
{ {
/* /*
@ -198,38 +209,38 @@ void AP0802::OpenClient(ISocketHost& host)
{ {
if (Host == esp) // 8266 作为Host的时候 使用 Master 和广播端口两个 HostAP 为空 if (Host == esp) // 8266 作为Host的时候 使用 Master 和广播端口两个 HostAP 为空
{ {
if (esp->Joined && !(Flag & 0x01000000)) if (esp->Joined && !EspMaster)
{ {
AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 ESP8266 则要求 JoinAP 完成才能添加主控制器 AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 ESP8266 则要求 JoinAP 完成才能添加主控制器
Flag |= 0x01000000; EspMaster = true;
} }
if (!(Flag & 0x00010000)) if (!EspBra)
{ {
AddControl(*Host, uri, tk->Port); AddControl(*Host, uri, tk->Port);
Flag |= 0x00010000; EspBra = true;
} }
} }
if (Host == net) // w5500 作为Host的时候 使用Master和广播两个端口 HostAP 开启AP时非空 打开其内网端口 if (Host == net) // w5500 作为Host的时候 使用Master和广播两个端口 HostAP 开启AP时非空 打开其内网端口
{ {
if (!(Flag & 0x00000100)) if (!NetMaster)
{ {
AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 W5500 打开了就直接允许添加Master AddControl(*Host, tk->Uri(), 0); // 如果 Host 是 W5500 打开了就直接允许添加Master
Flag |= 0x00000100; NetMaster = true;
} }
if (!(Flag & 0x00000001)) if (!NetBra)
{ {
AddControl(*Host, uri, tk->Port); AddControl(*Host, uri, tk->Port);
Flag |= 0x00000001; NetBra = true;
} }
} }
if (HostAP && HostAP == esp) // 只使用esp的时候HostAp为空 if (HostAP && HostAP == esp) // 只使用esp的时候HostAp为空
{ {
if (!(Flag & 0x00010000)) if (!EspBra)
{ {
AddControl(*Host, uri, tk->Port); AddControl(*Host, uri, tk->Port);
Flag |= 0x00010000; EspBra = true;
} }
} }

View File

@ -53,7 +53,13 @@ public:
private: private:
void* Data; void* Data;
int Size; int Size;
uint Flag; // 内部使用 标识Controller创建情况 // Control 打开情况标识
bool NetMaster;
bool NetBra;
bool EspMaster;
bool EspBra;
// uint Flag; // 内部使用 标识Controller创建情况
void OpenClient(ISocketHost& host); void OpenClient(ISocketHost& host);
TokenController* AddControl(ISocketHost& host, const NetUri& uri, ushort localPort); TokenController* AddControl(ISocketHost& host, const NetUri& uri, ushort localPort);