我正在尝试修改enduser_setup
模块以充当强制门户。
我找到了this源代码。看来我应该修改enduser_setup_http_serve_html
函数以添加用户MAC地址的日志记录。即我想编写一个文本文件,如下所示:
04/03/2018 23:03 aa:bb:cc:dd:ee
04/03/2018 23:04 bb:aa:cc:dd:ee
(每次用户打开我的页面时,应将带有其MAC地址的新行添加到文件中)
我以前从未使用过C,所以我有以下问题:
我是否正确选择了功能?还是应该改为
enduser_setup_http_recvcb
?如何获得用户的MAC地址?
http_client
变量包含它吗?如何写日志文件?我试图看看调试在那里如何工作-
static void enduser_setup_debug(int line, const char *str)
{
lua_State *L = lua_getstate();
if(state != NULL && state->lua_dbg_cb_ref != LUA_NOREF)
{
lua_rawgeti(L, LUA_REGISTRYINDEX, state->lua_dbg_cb_ref);
lua_pushfstring(L, "%d: \t%s", line, str);
lua_call(L, 1, 0);
}
}
但是我不知道在那修改了哪个文件。看起来另一个选择是使用直接
vfs.h
用法(例如file_fd = vfs_open(output, "w+")
)编写文件,但是我无法从现有NodeMCU模块中找到清晰的示例。 最佳答案
在C中工作是一个学习上的飞跃。对于C程序员来说,进行嵌入式C开发是一项学习上的飞跃。对于嵌入式C开发人员而言,开发或修改NodeMCU固件库是一个学习上的飞跃。
我想建议的是,您要一步一步完成许多步骤,而您尚未开始处理这些问题。
您要在哪里创建此文本文件?因为VFS仅会写入ESP模块内部文件系统上的文件。 MAC地址可以直接在运行一个ESP模块的Lua中访问。
我建议您尝试做的事情是在芯片外记录使用设置库配置的任何ESP的mac地址,这意味着通过IP进行通信-在配置IP堆栈之前您无法做到这一点。
但是,您将在已配置的ESP上运行的嵌入式Lua应用程序始终可以使用http
模块,例如,将IP(和其他)配置记录到某些Web服务。
关于c - 如何使用NodeMCU和enduser_setup捕获用户的MAC地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49100057/