问题标签 [esp32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - esp32 idf 多套接字服务器
这是我的第一篇文章,所以如果可以提供帮助,请远程请求任何东西,但我没有提供。
我的应用程序需要从 Master 一次打开多个套接字,然后从机连接到 WiFi,然后再连接到套接字
问题是:我必须使其“防弹”以防止不断地从从站重新连接,我收到 Accept error: E (23817) TCP SOCKET: accept error: -1 Too many open files in system 当我第 5 次重新连接客户端时出现,当在 menuconfig 中打开套接字的最大数量 = 5 时,
当客户端在 1 秒内没有发送任何内容时,我断开客户端与服务器的连接 -> 然后我假设他们得到了 DC-d。我用 close() 程序来做。
对于每个套接字,我运行 1 个任务,该任务应该从该套接字接收并进一步采取行动。
对于他们所有人,我还有另一个任务检查上次消息到达的时间并在超过时间时重新启动任务(这是 2 秒)
我需要在最终版本中打开大约 16 个套接字,因此在从站重新启动整个连接后,没有空间让套接字仍然关闭
- 如何正确关闭任务并在其中运行 recv() 过程以正确关闭 Socket。
- 如果 WiFi 没有实现 STA DC-d,有没有办法从服务器端读取套接字已关闭
- 这是关于来自 tcp 堆栈的 TIME_WAIT 吗?
套接字读取代码:
aes-gcm - 在 ESP32 解密上使用 mbedtls 的 AES128-GCM 不起作用
我目前正在开展一个项目,以使用带有 ESP-IDF 工具链的 ESP32 解密来自智能电表的字节流。(此处为感兴趣的人提供智能电表规范:P1PortSpecification.pdf,第 2.6 章第 9 页)。
我正在使用状态机将流拆分为文档中的不同部分,当将它们打印到终端时,我得到了预期的结果,所以我认为当前的输入是正确的。
进入解密有效负载的最终状态我不确定我是否正确使用了 mbedtls 库,因为我无法让它正常工作。使用的加密是 AES128-GCM,因此我使用的是 gcm.h。这是我当前的功能:
为您提供有关 Encrypted_Data 外观的更多详细信息:
将两个错误都打印到终端时,我看到 err1 = 0 和 err2 = -0x0012,即:
因此,我深入研究了 gcm.c 文件,发现只有 1 个地方使用了该定义(此处),但是其他一些东西引起了我的注意。我怀疑这是一个错误,但我无法真正理解这部分背后的原因
在这里找到。为什么它使用这种模式?如果我正在查看它的内容,cipher_info
它会告诉我它使用的是MBEDTLS_CIPHER_AES_128_ECB
as mbedtls_cipher_type_t
,而不是我最初所期望的MBEDTLS_CIPHER_AES_128_GCM
。这是一个问题吗?
总结一下我的主要问题:
- 这是一个意想不到
mbedtls_cipher_type_t
的问题吗? - 我是否正确使用了 mbedtls 功能?
- 开放寻求跟踪问题的建议,因为我仍然没有使用这个平台的经验。
谢谢阅读。
micropython - ESP32 - 使用 MicroPython:重启后如何更新时钟?
我有一块 ESP32 板,Micropython 安装正确,并连接到本地互联网。
由于它必须执行预定的工作 - 它的时钟需要同步。启动后它会得到一个通用日期1/1/2000
。
Micropython 如何使用ntp.pool.org
或其他方式更新 int 时钟?
盖伊
google-cloud-platform - Google Cloud IoT 频繁从云功能向设备发送配置更新时,几乎没有丢失配置更新消息
我按照此处的示例使用配置更新和云功能在移动应用程序和 esp32 设备之间进行通信,但是当我经常发送配置更新消息时,其中一些没有发送;说在 5 条中只有 3 条配置更新消息正在发送,我有两个问题:
1)我们可以多久发送一次配置更新以避免丢失一些更新。
2)云功能和物联网设备之间是否有任何替代方式进行通信。
makefile - 安装 IDF Espressif 使 menuconfig 出现致命错误
我想在我的 Raspberry PI 3 上安装 Espressif IDF。
我已经按照教程克隆 github 文件,所以...
我正处于必须“制作 menuconfig”的步骤,但出现致命错误。致命错误消息是:
有人会遇到这个问题吗???
c - 链接错误:在 PlatformIO 中找不到 -lrdkafka 预编译动态库
我正在尝试让 Kafka 使用 PlatformIO 在 Esp32 上工作。
我尝试使用我的 platformio.ini 文件中表达的构建标志将 C 库链接到在 PlatformIO 中构建的项目。我正在使用 librdkafka 库。librdkafka.so 文件的位置在 /usr/local/lib 中,但是每当我使用 plaformio 中的链接库构建项目时,都会出现以下错误:
platformio.ini 文件:
在 PlatformIO 之外,我使用以下命令成功地将 librdkafka 链接到 main.c 项目文件:
gcc main.c -L/usr/local/lib -l:librdkafka.so -lz -lpthread -lrt -I/usr/local/include/librdkafka
microcontroller - 无法使用 ESP32 (esp-idf) 处理 nRF24L01+
我正在尝试将nRF24L01 库移植到 ESP32(我正在使用 esp-idf)。我所要做的就是替换使用 spi 的函数。我就是这样做的:
但是......没有任何工作。SPI 线连接正确。我可以通过 spi 读取状态。我无法确认它是正确的值,但每次我从 nRF24L01 断开 GND 时它都会发生变化。所以我觉得接线没问题。
这段代码有什么问题?
arduino - MacOS High Sierra Arduino Mac 1.8.5 上的 PROGMEM 错误
我正在使用在 MacOS High Sierra 上运行的 MacBook Pro。
每当我尝试上传包含 PROGMEM 的 Arduino 代码以将原始 HTML 字符串(Arduino Mac 1.8.5)存储到我的 ESP 板时,就会出现问题。我使用的开发板是 ESP8266 LoLin V3。
每当我在 Web 浏览器上访问 ESP 的 IP 地址时,串行监视器中就会引发异常 (3) 。我还尝试使用适用于 Windows 的Arduino 的Windows 版本(1.8.5)上传相同的确切代码,并且网页可以完美显示。
代码:
引发的错误如下:
这里的任何人都可以使用 Mac 尝试将代码上传到您的 ESP8266 上,看看您是否遇到与我相同的错误?任何对 PROGMEM 和 ESP8266 有深入了解的人都可以帮我解决这个问题吗?
c++ - 如何在一个属性中动态存储原始类型?
我对 C/C++ 很陌生,通常,我用 C# 编写代码,所以我有一个问题:
我想在该属性中存储int
s、string
s 和s。在 C# 中,我将声明为对象并将对象转换为或类似:bool
"Value"
Value
int
bool
我可以在 C++ 中使用哪种类型?
c++ - std::stack 的奇怪行为,pop() 返回相同的值
我有使用的课程std::stack
:
我在主代码中添加到堆栈(BLE 通知回调):
一切正常,直到我想从堆栈中弹出项目,然后每个项目都具有相同的值(最后插入的元素)。
串行打印日志:
所以我尝试在在线编译器中编写类似的代码:
它工作正常。
我究竟做错了什么?