在搜索任何相关信息失败后,我需要寻求一些提示如何使 ESP 运行 TCP 服务器(从 espconn_regist_connectcb 开始)能够实现低功耗/睡眠模式。
如果我有一个无限循环,我知道如何让 ESP 进入睡眠状态,使用 wifi_fpm_do_sleep,但是我该如何使用 TCP 服务器呢?我没有任何循环可以放这个。
我想到的唯一想法是在请求处理结束时让 ESP 进入休眠状态,即像这样:
代码:
全选// set up callback somewhere
espconn_regist_disconcb(pespconn, shell_tcp_disconcb);
LOCAL void ICACHE_FLASH_ATTR
shell_tcp_disconcb(void *arg) {
struct espconn *pespconn = (struct espconn *) arg;
os_printf("tcp connec
tion disconnected\n");
// go to sleep mode here for some time
}
但是如果没有请求,我该如何恢复睡眠呢?我想我可以改为使用一些全局状态变量,并且在 main() 中只会有一个带有睡眠处理的虚拟循环——断开连接处理程序会将其设置为“你现在可以睡觉了”,而连接打开的处理程序将禁止睡眠. 但这是一个好的解决方案吗?库中不是已经有一些内置的方法了吗?我希望我正在尝试用这个发明一个轮子......
感谢您的任何回复。