完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我正在尝试将现有的模块修改为
1) 添加更多字段而不是标准的 wifi 名称和密码字段 2) 保存给文本文件的答案 我知道如何修改 html 文件,但我不熟悉 C,所以我可以不明白如何将接收到的数据传递给 Lua 或将其直接保存到文本文件(考虑到它可能包含 utf-8 数据)。 在此感谢您的帮助。 代码:全选 ... else if (c_strncmp(data + 4, "/setwifi?", 9) == 0) { switch (enduser_setup_http_handle_credentials(data, data_len)) { case 0: enduser_setup_serve_status_as_json(http_client); break; case 1: enduser_setup_http_serve_header(http_client, http_header_400, LITLEN(http_header_400)); break; default: ENDUSER_SETUP_ERROR("http_recvcb failed. Failed to handle wifi credentials.", ENDUSER_SETUP_ERR_UNKOWN_ERROR, ENDUSER_SETUP_ERR_NONFATAL); break; } } ... static int enduser_setup_http_handle_credentials(char *data, unsigned short data_len) { ENDUSER_SETUP_DEBUG("enduser_setup_http_handle_credentials"); state->success = 0; state->lastStationStatus = 0; char *name_str = (char *) ((uint32_t)strstr(&(data[6]), "wifi_ssid=")); char *pwd_str = (char *) ((uint32_t)strstr(&(data[6]), "wifi_password=")); if (name_str == NULL || pwd_str == NULL) { ENDUSER_SETUP_DEBUG("Password or SSID string not found"); return 1; } int name_field_len = LITLEN("wifi_ssid="); int pwd_field_len = LITLEN("wifi_password="); char *name_str_start = name_str + name_field_len; char *pwd_str_start = pwd_str + pwd_field_len; int name_str_len = enduser_setup_srch_str(name_str_start, "& "); int pwd_str_len = enduser_setup_srch_str(pwd_str_start, "& "); if (name_str_len == -1 || pwd_str_len == -1) { ENDUSER_SETUP_DEBUG("Password or SSID HTTP paramter divider not found"); return 1; } struct station_config *cnf = luaM_malloc(lua_getstate(), sizeof(struct station_config)); c_memset(cnf, 0, sizeof(struct station_config)); int err; err = enduser_setup_http_urldecode(cnf->ssid, name_str_start, name_str_len, sizeof(cnf->ssid)); err |= enduser_setup_http_urldecode(cnf->password, pwd_str_start, pwd_str_len, sizeof(cnf->password)); if (err != 0 || c_strlen(cnf->ssid) == 0) { ENDUSER_SETUP_DEBUG("Unable to decode HTTP parameter to valid password or SSID"); return 1; } ENDUSER_SETUP_DEBUG(""); ENDUSER_SETUP_DEBUG("WiFi Credentials Stored"); ENDUSER_SETUP_DEBUG("-----------------------"); ENDUSER_SETUP_DEBUG("name: "); ENDUSER_SETUP_DEBUG(cnf->ssid); ENDUSER_SETUP_DEBUG("pass: "); ENDUSER_SETUP_DEBUG(cnf->password); ENDUSER_SETUP_DEBUG("-----------------------"); ENDUSER_SETUP_DEBUG(""); task_post_medium(do_station_cfg_handle, (task_param_t) cnf); return 0; } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1252浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2334浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:47 , Processed in 0.684758 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1805
