什么是 "ESP_NOW_ROLE_MAX"?

问题描述 投票:0回答:1

当我在nodemcu v1.0 (esp-12e)上试用esp-now的时候,我偶然发现了以下内容 ESP_NOW_ROLE_MAX 在设定角色时,用 esp_now_set_self_role(...) 我想知道这可能是什么?有什么想法吗?(我用的是Platform.io,但在Arduino IDE中应该也是这样的)

esp8266 nodemcu arduino-esp8266
1个回答
0
投票

ESP-NOW通信是对等设备(主设备和从设备)之间的通信。是主设备支配整个通信的主动权,从设备只响应主设备的请求,如果适用的话。有一种可能,一个设备可以同时拥有主设备和从设备的角色。如果设备是一个或多个从机的主人,又是另一个主人的从机,就会发生这种情况。

如果一个设备没有角色,它将处于空闲状态。

表中总结了四(五)种可能性,以及它们对应的名称和对接口的优先级。

esp_now_set_self_role(role) the role can be: 
ESP_NOW_ROLE_IDLE = 0,
ESP_NOW_ROLE_CONTROLLER, 
ESP_NOW_ROLE_SLAVE, 
ESP_NOW_ROLE_COMBO, 
ESP_NOW_ROLE_MAX

Idle –without function-   ESP_NOW_ROLE_IDLE = 0          no interface
Master                    ESP_NOW_ROLE_CONTROLLER = 1    priority is given to the station interface
Slave                     ESP_NOW_ROLE_SLAVE = 2      priority is given to the SoftAP interface
Master + Slave            ESP_NOW_ROLE_MAX = 3       priority is given to the station interface
 Master + Slave           ESP_NOW_ROLE_COMBO         priority is given to the SoftAP interface

像这样使用

 // Once ESPNow is successfully init, we will register for Send CB to
  // get the status of Trasnmitted packet
  esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
  esp_now_register_send_cb(OnDataSent);

  // Register peer
  esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);

阅读更多关于 可能的情况看这里 更多信息请见 来源.

© www.soinside.com 2019 - 2024. All rights reserved.