python - ESP32 - 将两个或多个 SDK 示例项目合二为一
问题描述
tl;dr -- 我如何将一对 SDK 项目组合在一起并让“menuconfig”系统正常工作?
我有一个 ESP32 模块的简单项目:让 ESP32 提供一个新的专用 WiFi 网络,允许智能手机直接连接到 ESP32。连接后,手机可以将其 Web 浏览器指向 ESP32 的 IP 地址(硬编码为 192.168.1.1),ESP32 将接受来自手机的 HTTP 连接。因此,用户将拥有一个简单的界面,通过该界面可以使用 HTML 数据输入表单、按钮等与 ESP32 进行交互。
请注意,此连接不超过 ESP32,此项目根本不需要互联网连接。
幸运的是,该模块的 SDK 包含大量示例,我已经设法让 Web 服务器和 WiFi 接入点正常工作,但不能同时运行两者。这是两个示例项目(“...examples/protocols/http_server/simple”和“...examples/wifi/getting_started/softAP”)。
到目前为止,我已经设法发现 WiFi 接入点软件在“后台”中运行,并且即使在 main() 函数结束后仍继续运行。这意味着我应该能够从另一个示例中引入 Web 服务器代码并在 main() 函数中执行它。我很确定这是可行的(如果我弄错了,请纠正我)。
问题:
这两个示例项目中的每一个都包含一个“idf.py menuconfig”命令,可让用户快速更改任何重要设置,例如 WiFi SSID 或 HTTP 基本身份验证密码。
我想在两个项目合并后保留这个菜单系统,因为它非常有用,并且在一定程度上减少了在重新编译之前更改代码所涉及的人为错误。
有没有一种简单的方法可以将两个 SDK 示例项目中的 menuconfig 系统组合成一个可用于完全配置两个代码库组合的项目?
更多信息:我在 Ubuntu 20 虚拟机上使用 ESP-IDF 开发套件,通过 USB 连接到 ESP32。
解决方案
这很简单。menuconfig 项目在组件的 Kconfig.projbuild 文件中描述。如果您想将这些项目从一个项目添加到另一个项目,您只需将一个main/Kconfig.projbuild
文件的内容复制粘贴到另一个文件即可。有关详细信息,请参阅ESP IDF 文档。
推荐阅读
- git - 链接 github 到 git 不需要密码
- android - 带有构建工具 gradle 3.1.3 的 Android Studio 无法下载所需的库依赖项
- asp.net - (System.Web.UI.HtmlControls.HtmlGenericControl) 与控件类型 (System.Web.UI.HtmlControls.HtmlIframe) 不兼容
- python - 如何使用 python 从肥皂响应中的多个命名空间获取数据:xml.etree.ElementTree
- python - 将图像转换为灰度
- matlab - 如何拦截J1939 CAN报文?
- java - Float.floatToRawIntBits(); 是什么?在java中返回?
- .net - 使用 Web 服务 SOAP Header
- oracle-apex - Oracle Apex Interactive 报告以 htm 而非 CSV 或 XLSX 形式发送电子邮件
- python - 在 tfhub 再训练脚本中计算 F1 分数、精度、召回率