forked from espressif/esp-idf
Merge branch 'docs/translate_esp_netif' into 'master'
docs: Update CN translation for esp netif: add blank space Closes DOC-7843 See merge request espressif/esp-idf!30903
This commit is contained in:
@@ -373,6 +373,58 @@ ESP-NETIF 编程手册
|
|||||||
* 在 ``AP+STA`` 模式下使用 Wi-Fi 时,须创建以上全部接口。
|
* 在 ``AP+STA`` 模式下使用 Wi-Fi 时,须创建以上全部接口。
|
||||||
|
|
||||||
|
|
||||||
|
IP 事件:发送或接收数据包
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
每次发送或接收 IP 数据包会触发 ``IP_EVENT_TX_RX`` 事件,该事件提供有关数据包传输或接收、数据长度和 ``esp_netif`` 句柄的信息。
|
||||||
|
|
||||||
|
启用事件
|
||||||
|
------------------
|
||||||
|
|
||||||
|
**编译时间:**
|
||||||
|
|
||||||
|
编译时使用 kconfig 中的 :ref:`CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC` 标志,可完全禁用启动事件。
|
||||||
|
|
||||||
|
**运行时间:**
|
||||||
|
|
||||||
|
在运行时,你可以使用函数 :cpp:func:`esp_netif_tx_rx_event_enable()` 和 :cpp:func:`esp_netif_tx_rx_event_disable()` 来启用或禁用此事件。
|
||||||
|
|
||||||
|
事件注册
|
||||||
|
------------------
|
||||||
|
|
||||||
|
要处理此事件,请使用以下语法注册一个处理程序:
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
static void
|
||||||
|
tx_rx_event_handler(void *arg, esp_event_base_t event_base,
|
||||||
|
int32_t event_id, void *event_data)
|
||||||
|
{
|
||||||
|
ip_event_tx_rx_t *event = (ip_event_tx_rx_t *)event_data;
|
||||||
|
|
||||||
|
if (event->dir == ESP_NETIF_TX) {
|
||||||
|
ESP_LOGI(TAG, "Got TX event: Interface \"%s\" data len: %d", esp_netif_get_desc(event->esp_netif), event->len);
|
||||||
|
} else if (event->dir == ESP_NETIF_RX) {
|
||||||
|
ESP_LOGI(TAG, "Got RX event: Interface \"%s\" data len: %d", esp_netif_get_desc(event->esp_netif), event->len);
|
||||||
|
} else {
|
||||||
|
ESP_LOGI(TAG, "Got Unknown event: Interface \"%s\"", esp_netif_get_desc(event->esp_netif));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
esp_event_handler_register(IP_EVENT, IP_EVENT_TX_RX, &tx_rx_event_handler, NULL);
|
||||||
|
|
||||||
|
``tx_rx_event_handler`` 为处理该事件的函数的名称。
|
||||||
|
|
||||||
|
事件数据结构
|
||||||
|
----------------
|
||||||
|
|
||||||
|
事件数据结构,:cpp:class:`ip_event_tx_rx_t` 包含以下字段:
|
||||||
|
|
||||||
|
- :cpp:member:`ip_event_tx_rx_t::dir`: 表示数据包是传输 ``ESP_NETIF_TX`` 还是接收 ``ESP_NETIF_RX``。
|
||||||
|
- :cpp:member:`ip_event_tx_rx_t::len`: 数据帧的长度。
|
||||||
|
- :cpp:member:`ip_event_tx_rx_t::esp_netif`: 数据包发送或接收的网络接口。
|
||||||
|
|
||||||
|
|
||||||
API 参考
|
API 参考
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user