Files
arcs/apps-ui/apps/llm/models/model_wifi.h
2026-08-13 16:50:52 +08:00

74 lines
2.0 KiB
C

#ifndef __MODEL_WIFI_H__
#define __MODEL_WIFI_H__
#include <stdint.h>
#include <stdbool.h>
#define WIFI_SSID_MAX_LEN 32
#define WIFI_BSSID_MAX_LEN 18
#define WIFI_PWD_MAX_LEN 64
#define WIFI_MAX_SCAN_APS 20
typedef enum {
MODEL_WIFI_AUTH_AUTO = 0,
MODEL_WIFI_AUTH_OPEN,
MODEL_WIFI_AUTH_WEP,
MODEL_WIFI_AUTH_WPA_PSK,
MODEL_WIFI_AUTH_WPA2_PSK,
MODEL_WIFI_AUTH_WPA_WPA2_PSK,
MODEL_WIFI_AUTH_WPA2_ENTERPRISE,
MODEL_WIFI_AUTH_WPA3_PSK,
MODEL_WIFI_AUTH_WPA2_WPA3_PSK,
MODEL_WIFI_AUTH_UNKNOWN,
MODEL_WIFI_AUTH_MAX,
} model_wifi_encryption_mode_t;
typedef enum {
MODEL_WIFI_STATUS_CONNECTED = 0,
MODEL_WIFI_STATUS_CONNECTING,
MODEL_WIFI_STATUS_DISCONNECTED,
MODEL_WIFI_STATUS_UNKNOWN,
} model_wifi_status_t;
typedef struct {
char ssid[WIFI_SSID_MAX_LEN];
char bssid[WIFI_BSSID_MAX_LEN];
char pwd[WIFI_PWD_MAX_LEN];
int channel;
int rssi;
model_wifi_encryption_mode_t encryption_mode;
} model_wifi_sta_config_t;
typedef struct {
char ssid[WIFI_SSID_MAX_LEN];
char bssid[WIFI_BSSID_MAX_LEN];
int channel;
int rssi;
model_wifi_encryption_mode_t encryption_mode;
} model_wifi_scan_info_t;
struct model_wifi_cb {
void (*on_connected)(model_wifi_sta_config_t *sta_info, void *arg);
void (*on_disconnected)(int reason, void *arg);
void (*on_connecting)(void *arg);
void (*on_connection_failed)(int reason, void *arg);
void (*on_scan_done)(model_wifi_scan_info_t *aps_info, int ap_num, void *arg);
void (*on_scan_failed)(int reason, void *arg);
};
int model_wifi_init(void);
int model_wifi_deinit(void);
int model_wifi_cb_register(const struct model_wifi_cb *cb, void *arg);
int model_wifi_cb_unregister(const struct model_wifi_cb *cb);
int model_wifi_scan_start(void);
model_wifi_status_t model_wifi_get_status(void);
int model_wifi_connect(const char *ssid, const char *pwd, const char *bssid);
int model_wifi_disconnect(void);
int model_wifi_get_connected_info(model_wifi_sta_config_t *sta_info);
#endif