esp_nano_hosted/include/nh_ctrl_api.h

58 lines
1.6 KiB
C

#ifndef NH_CTRL_API_H
#define NH_CTRL_API_H
#include "nh_shared_if.h"
typedef enum {
NH_CTRL_WIFI_MODE_NONE,
NH_CTRL_WIFI_MODE_STA,
NH_CTRL_WIFI_MODE_AP,
NH_CTRL_WIFI_MODE_APSTA,
} nh_ctrl_wifi_mode_t;
typedef enum {
NH_CTRL_WIFI_ENC_MODE_OPEN,
NH_CTRL_WIFI_ENC_MODE_WEP,
NH_CTRL_WIFI_ENC_MODE_WPA_PSK,
NH_CTRL_WIFI_ENC_MODE_WPA2_PSK,
NH_CTRL_WIFI_ENC_MODE_WPA_WPA2_PSK,
NH_CTRL_WIFI_ENC_MODE_WPA2_ENT,
NH_CTRL_WIFI_ENC_MODE_WPA3_PSK,
NH_CTRL_WIFI_ENC_MODE_WPA2_WPA3_PSK,
} nh_ctrl_api_wifi_encryption_mode_t;
typedef struct {
char *ssid;
char *bssid;
int rssi;
int channel;
nh_ctrl_api_wifi_encryption_mode_t encryption_mode;
} nh_ctrl_api_wifi_scan_item_t;
typedef void (*nh_ctrl_api_ap_scan_list_cb_t)(void *handle, nh_ctrl_api_wifi_scan_item_t);
typedef void (*nh_ctrl_api_event_cb_init_t)(void *handle);
typedef struct {
nh_ctrl_api_event_cb_init_t init;
} nh_ctrl_api_cb_t;
typedef struct {
nh_shared_if_t *shared_if;
nh_osa_t *osa;
nh_ctrl_api_cb_t cb;
void *user_data;
/* Private states */
nh_osa_semaphore_t p_sem_req;
nh_osa_semaphore_t p_sem_resp;
uint8_t *p_buf_rx;
uint32_t p_buf_rx_len;
} nh_ctrl_api_t;
nh_ret_t nh_ctrl_api_init(nh_ctrl_api_t *api);
void nh_ctrl_api_task(nh_ctrl_api_t *api);
nh_ret_t nh_ctrl_api_get_mac_address(nh_ctrl_api_t *api, uint8_t *mac_addr, nh_ctrl_wifi_mode_t mode);
#endif // NH_CTRL_API_H