diff --git a/ESP-IDF_Robot/build/.ninja_lock b/ESP-IDF_Robot/build/.ninja_lock new file mode 100644 index 000000000..e69de29bb diff --git a/ESP-IDF_Robot/build/CMakeFiles/git-data/head-ref b/ESP-IDF_Robot/build/CMakeFiles/git-data/head-ref index 95860d1c2..330a2b090 100644 --- a/ESP-IDF_Robot/build/CMakeFiles/git-data/head-ref +++ b/ESP-IDF_Robot/build/CMakeFiles/git-data/head-ref @@ -1 +1 @@ -8806219c7d8c73b0532c7afd27e9c0bd1efb9047 +efdea51dac034fe75f225e806685983fe9b61160 diff --git a/ESP-IDF_Robot/main/espnow_config.h b/ESP-IDF_Robot/main/espnow_config.h index 21488ef56..fa30afe11 100644 --- a/ESP-IDF_Robot/main/espnow_config.h +++ b/ESP-IDF_Robot/main/espnow_config.h @@ -1,4 +1,54 @@ #ifndef ESPNOW_CONFIG_H #define ESPNOW_CONFIG_H +/* ESPNOW can work in both station and softap mode. It is configured in menuconfig. */ +#if CONFIG_ESPNOW_WIFI_MODE_STATION +#define ESPNOW_WIFI_MODE WIFI_MODE_STA +#define ESPNOW_WIFI_IF ESP_IF_WIFI_STA +#else +#define ESPNOW_WIFI_MODE WIFI_MODE_AP +#define ESPNOW_WIFI_IF ESP_IF_WIFI_AP +#endif + +#define ESPNOW_QUEUE_SIZE 6 + +#define IS_BROADCAST_ADDR(addr) (memcmp(addr, s_example_broadcast_mac, ESP_NOW_ETH_ALEN) == 0) + + +typedef enum { + EXAMPLE_ESPNOW_SEND_CB, + EXAMPLE_ESPNOW_RECV_CB, +} espnow_event_id_t; + +typedef struct { + uint8_t mac_addr[ESP_NOW_ETH_ALEN]; + esp_now_send_status_t status; +} espnow_event_send_cb_t; + +typedef struct { + uint8_t mac_addr[ESP_NOW_ETH_ALEN]; + uint8_t *data; + int data_len; +} espnow_event_recv_cb_t; + +typedef union { + espnow_event_send_cb_t send_cb; + espnow_event_recv_cb_t recv_cb; +} espnow_event_info_t; +typedef union { + espnow_event_send_cb_t send_cb; + espnow_event_recv_cb_t recv_cb; +} espnow_event_info_t; +/* When ESPNOW sending or receiving callback function is called, post event to ESPNOW task. */ +typedef struct { + espnow_event_id_t id; + espnow_event_info_t info; +} espnow_event_t; + +enum { + EXAMPLE_ESPNOW_DATA_BROADCAST, + EXAMPLE_ESPNOW_DATA_UNICAST, + EXAMPLE_ESPNOW_DATA_MAX, +}; + #endif \ No newline at end of file