81 lines
2.2 KiB
C
81 lines
2.2 KiB
C
#ifndef NH_CTRL_API_H
|
|
#define NH_CTRL_API_H
|
|
|
|
#include "nh_shared_if.h"
|
|
|
|
#define NH_CTRL_API_MAC_LENGTH 17
|
|
|
|
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_API_ENC_MODE_OPEN,
|
|
NH_CTRL_API_ENC_MODE_WEP,
|
|
NH_CTRL_API_ENC_MODE_WPA_PSK,
|
|
NH_CTRL_API_ENC_MODE_WPA2_PSK,
|
|
NH_CTRL_API_ENC_MODE_WPA_WPA2_PSK,
|
|
NH_CTRL_API_ENC_MODE_WPA2_ENT,
|
|
NH_CTRL_API_ENC_MODE_WPA3_PSK,
|
|
NH_CTRL_API_ENC_MODE_WPA2_WPA3_PSK,
|
|
} nh_ctrl_ap_enc_mode_t;
|
|
|
|
typedef enum {
|
|
NH_CTRL_CONNECT_SUCCESS = 0x00U,
|
|
NH_CTRL_CONNECT_NO_AP_FOUND = 0x02U,
|
|
NH_CTRL_CONNECT_INVALID_PASSWORD = 0x03U,
|
|
NH_CTRL_CONNECT_FAILURE = 0xFFU,
|
|
} nh_ctrl_conn_status_t;
|
|
|
|
typedef struct {
|
|
char *ssid;
|
|
char *bssid;
|
|
int rssi;
|
|
uint32_t channel;
|
|
nh_ctrl_ap_enc_mode_t encryption_mode;
|
|
} nh_ctrl_ap_scan_item_t;
|
|
|
|
typedef struct {
|
|
char *ssid;
|
|
char *bssid;
|
|
char *password;
|
|
bool wpa3_supported;
|
|
int32_t listen_interval;
|
|
} nh_ctrl_ap_conn_params_t;
|
|
|
|
typedef struct {
|
|
nh_ctrl_conn_status_t status;
|
|
char *mac_addr;
|
|
} nh_ctrl_ap_conn_result_t;
|
|
|
|
typedef void (*nh_ctrl_api_ap_scan_list_cb_t)(void *handle, nh_ctrl_ap_scan_item_t *item);
|
|
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);
|
|
nh_ret_t nh_ctrl_api_get_ap_scan_list(nh_ctrl_api_t *api, nh_ctrl_api_ap_scan_list_cb_t cb);
|
|
nh_ret_t nh_ctrl_api_connect_ap(nh_ctrl_api_t *api, nh_ctrl_ap_conn_params_t *params, nh_ctrl_ap_conn_result_t *result);
|
|
|
|
#endif // NH_CTRL_API_H
|