Как захватить MAC-адрес пользователя с помощью NodeMCU и enduser_setup?

Я пытаюсь изменить модуль enduser_setup, чтобы он действовал как Captive портал. Я нашел этот исходный код. Похоже, я должен изменить функцию 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);
       }
     }
    

Но я не понимаю, какой файл там модифицируется. Похоже, еще один вариант — записать файл с прямым vfs.h< /a> используется как file_fd = vfs_open(output, "w+"), но я не могу найти четкий пример из существующих модулей NodeMCU.


person LA_    schedule 04.03.2018    source источник


Ответы (1)


Работа в C — это скачок в обучении. Разработка встраиваемых систем на языке C — это рывок в обучении для программиста на языке C. Разработка или модификация библиотек встроенного ПО NodeMCU — это настоящий скачок в обучении для разработчика встраиваемых систем на языке C.

Я пытаюсь предположить, что здесь слишком много шагов, которые вам нужно выполнить за один раз, и вопросов, которые вы еще не начали понимать.

Где вы хотите создать этот текстовый файл? Потому что VFS будет записывать только файлы в файловой системе, внутренней для модуля ESP. И MAC-адрес в любом случае напрямую доступен в Lua, на котором работает один модуль ESP.

Я предполагаю, что то, что вы пытаетесь сделать, - это зарегистрировать MAC-адрес любого ESP, настраиваемого с использованием библиотеки установки вне чипа, и это означает, что вы можете говорить по IP, что вы не можете сделать, пока не настроите стек IP.

Однако встроенное приложение Lua, которое вы будете запускать на настроенном ESP, всегда может использовать модуль http, скажем, для регистрации конфигурации IP (и других) в какой-либо веб-службе.

person TerryE    schedule 08.03.2018