如何使用NodeMCU和enduser_setup捕获用户的MAC地址?

时间:2018-03-04 20:26:24

标签: c file http nodemcu

我正在尝试修改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合作过,所以我有以下问题:

  1. 我选择了正确的功能吗?或者它应该是enduser_setup_http_recvcb而不是?
  2. 我怎样才能获得用户的MAC地址? http_client变量包含它吗?
  3. 如何写日志文件?我试着看看调试是如何工作的 -

    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);
       }
     }
    
  4. 但我不明白那里正在修改哪个文件。看起来另一种选择是使用file_fd = vfs_open(output, "w+")这样的直接vfs.h用法来编写文件,但我找不到现有NodeMCU模块的明确示例。

1 个答案:

答案 0 :(得分:0)

在C中工作是一个学习上的飞跃。进行嵌入式C开发是C程序员的一次学习飞跃。开发或修改NodeMCU固件库是嵌入式C开发人员的一次学习飞跃。

我想要建议的是,你可以一步到位地完成太多的步骤以及你尚未开始掌握的问题。

您希望在哪里创建此文本文件?因为VFS只会写入ESP模块内部文件系统上的文件。并且无论如何,可以在运行ESP模块的Lua中直接访问MAC地址。

我建议你要做的是记录使用芯片外设置库配置的任何ESP的mac地址,这意味着通过IP进行通信 - 在配置IP之前你不能这样做堆。

但是,您将在配置的ESP上运行的嵌入式Lua应用程序总是可以使用http模块,例如,将IP(和其他)配置记录到某些Web服务。