10static esp_err_t sdk_result(
int result) {
return result == 0 ? ESP_OK : ESP_FAIL; }
13static const uint8_t UNKNOWN_ADDR[ESP_NOW_ETH_ALEN] = {0};
15static void on_data_received(uint8_t *mac_addr, uint8_t *data, uint8_t
size) {
19static void on_send_report(uint8_t *mac_addr, uint8_t status) {
29 ap.authmode = AUTH_OPEN;
31 ap.max_connection = 0;
32 ap.beacon_interval = 60000;
33 wifi_set_opmode_current(STATIONAP_MODE);
34 wifi_softap_set_config_current(&ap);
35 wifi_softap_dhcps_stop();
36 wifi_set_sleep_type(NONE_SLEEP_T);
37 wifi_station_disconnect();
41 wifi_promiscuous_enable(
true);
42 wifi_set_channel(channel);
43 wifi_promiscuous_enable(
false);
46 if (wifi_get_opmode() == STATIONAP_MODE && wifi_softap_get_config(&ap) && ap.channel != channel) {
48 wifi_softap_set_config_current(&ap);
56 wifi_get_macaddr(wifi_get_opmode() == SOFTAP_MODE ? SOFTAP_IF : STATION_IF, mac);
64 result = esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
72 return sdk_result(result);
87 return sdk_result(
esp_now_add_peer(
const_cast<uint8_t *
>(mac), ESP_NOW_ROLE_COMBO, wifi_get_channel(),
nullptr, 0));
93 const uint8_t channel = wifi_get_channel();
95 esp_now_set_peer_channel(mac, channel);
100 return sdk_result(
esp_now_send(
const_cast<uint8_t *
>(mac),
const_cast<uint8_t *
>(data),
size));
esp_err_t esp_now_del_peer(const uint8_t *peer_addr)
esp_err_t esp_now_unregister_recv_cb(void)
esp_err_t esp_now_unregister_send_cb(void)
esp_err_t esp_now_register_send_cb(esp_now_send_cb_t cb)
esp_err_t esp_now_deinit(void)
esp_err_t esp_now_add_peer(const esp_now_peer_info_t *peer)
esp_err_t esp_now_send(const uint8_t *peer_addr, const uint8_t *data, size_t len)
bool esp_now_is_peer_exist(const uint8_t *peer_addr)
esp_err_t esp_now_register_recv_cb(esp_now_recv_cb_t cb)
esp_err_t esp_now_init(void)
esp_err_t esp_now_fetch_peer(bool, esp_now_peer_info_t *)
ESPNowComponent * global_esp_now