我正在尝试修改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/

10-11 09:32