qs.xiong | 1af5daf | 2022-03-14 09:12:12 -0400 | [diff] [blame] | 1 | /**@File libwifi6.h |
| 2 | * @Brief :about function test |
| 3 | * @details : |
| 4 | * @Author : qs.xiong |
| 5 | * @Date : 2022-3-14 |
| 6 | * @Version : V1.0 |
| 7 | * @copy ritght : Copyright (c) MobileTek |
| 8 | */ |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 9 | #ifndef __LIBWIFI6_H__ |
| 10 | #define __LIBWIFI6_H__ |
| 11 | |
| 12 | typedef enum { |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 13 | LYNQ_WIFI_BANDWIDTH_HT10 = 0, // not support in ap mode |
| 14 | LYNQ_WIFI_BANDWIDTH_HT20, |
| 15 | LYNQ_WIFI_BANDWIDTH_HT40, // not support in ap mode |
| 16 | LYNQ_WIFI_BANDWIDTH_HT80, |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 17 | }lynq_wifi_bandwidth_type_m; |
| 18 | |
| 19 | typedef enum { |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 20 | LYNQ_WIFI_AUTH_OPEN = 0, |
qs.xiong | 9fbf74e | 2023-03-28 13:38:22 +0800 | [diff] [blame] | 21 | LYNQ_WIFI_AUTH_WEP, // not support WEP |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 22 | LYNQ_WIFI_AUTH_WPA_PSK, |
| 23 | LYNQ_WIFI_AUTH_WPA2_PSK, |
qs.xiong | 9fbf74e | 2023-03-28 13:38:22 +0800 | [diff] [blame] | 24 | LYNQ_WIFI_AUTH_WPA2_WPA3_PSK, |
| 25 | LYNQ_WIFI_AUTH_WPA3_PSK, |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 26 | }lynq_wifi_auth_s; |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 27 | |
| 28 | typedef enum { |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 29 | LYNQ_WIFI_2G_band = 1, |
| 30 | LYNQ_WIFI_5G_band, |
| 31 | LYNQ_WIFI_2_and_5G_band, //not support |
| 32 | }lynq_wifi_band_m; |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 33 | |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 34 | typedef enum { |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 35 | LYNQ_WIFI_AP_STATUS_DISABLE = 0, |
| 36 | LYNQ_WIFI_AP_STATUS_ENABLE, //ap is running status |
| 37 | }lynq_wifi_ap_run_status_s; |
| 38 | |
| 39 | typedef enum { |
| 40 | LYNQ_WIFI_STA_STATUS_DISABLE = 0, |
| 41 | LYNQ_WIFI_STA_STATUS_ENABLE, //sta is running status |
| 42 | }lynq_wifi_sta_run_status_s; |
| 43 | |
| 44 | typedef enum { |
| 45 | LYNQ_WIFI_INTERFACE_0 = 0, //sta |
| 46 | LYNQ_WIFI_INTERFACE_1, //ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 47 | }lynq_wifi_index_e; |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 48 | |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 49 | typedef enum { |
| 50 | LYNQ_WIFI_STATUS_DISCONNECT = 0, |
| 51 | LYNQ_WIFI_STATUS_CONNECT, |
you.chen | 70f377f | 2023-04-14 18:17:09 +0800 | [diff] [blame] | 52 | LYNQ_WIFI_SERVICE_ABNORMAL, |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 53 | }lynq_wifi_ap_status_s; |
| 54 | |
| 55 | typedef struct ap_info |
| 56 | { |
| 57 | char ap_ip[32]; |
| 58 | char ap_mac[32]; |
qs.xiong | fef4650 | 2023-02-16 15:54:49 +0800 | [diff] [blame] | 59 | char ap_ssid[64]; |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 60 | char psw[64]; //password |
| 61 | lynq_wifi_auth_s auth; |
| 62 | lynq_wifi_band_m band; |
| 63 | }ap_info_s; |
| 64 | |
| 65 | typedef struct device_info |
| 66 | { |
| 67 | char sta_ip[32]; |
| 68 | char sta_mac[32]; |
| 69 | char hostname[32]; |
| 70 | lynq_wifi_ap_status_s status; |
| 71 | }device_info_s; |
| 72 | |
| 73 | typedef struct scan_info |
| 74 | { |
| 75 | char mac[32]; |
qs.xiong | fef4650 | 2023-02-16 15:54:49 +0800 | [diff] [blame] | 76 | char ssid[64]; |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 77 | lynq_wifi_band_m band; |
| 78 | lynq_wifi_auth_s auth; |
| 79 | int rssi; |
| 80 | }scan_info_s; |
| 81 | |
| 82 | typedef struct ap_detail_info |
| 83 | { |
| 84 | struct ap_info base_info; // base_info : base info of strcut ap_info |
| 85 | lynq_wifi_ap_run_status_s status; // status:is not running 1:is running |
| 86 | int rssi; //[0~199] |
| 87 | }ap_detail_info_s; |
| 88 | |
| 89 | typedef struct saved_ap_info |
| 90 | { |
| 91 | struct ap_info base_info; |
| 92 | }saved_ap_info_s; |
| 93 | |
| 94 | |
| 95 | // insmod drive and start service of wifi |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 96 | int lynq_wifi_enable(void); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 97 | //rmmod drive |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 98 | int lynq_wifi_disable(void); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 99 | //set ssid of ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 100 | int lynq_wifi_ap_ssid_set(lynq_wifi_index_e idx,char *ap_ssid); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 101 | //get ap of ssid |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 102 | int lynq_wifi_ap_ssid_get(lynq_wifi_index_e idx,char *ap_ssid); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 103 | |
| 104 | //set frquency for ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 105 | int lynq_wifi_ap_frequency_set(lynq_wifi_index_e idx,int lynq_wifi_frequency); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 106 | //get freuency of ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 107 | int lynq_wifi_ap_frequency_get(lynq_wifi_index_e idx,int *lynq_wifi_frequency); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 108 | |
| 109 | //set bandwidth for ap |
| 110 | int lynq_wifi_ap_bandwidth_set(lynq_wifi_index_e idx,lynq_wifi_bandwidth_type_m bandwidth); |
| 111 | //get thr bandwidth of ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 112 | int lynq_wifi_ap_bandwidth_get(lynq_wifi_index_e idx,lynq_wifi_bandwidth_type_m *bandwidth); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 113 | |
| 114 | //set channel for ap |
qs.xiong | 0fb469a | 2022-04-14 03:50:45 -0400 | [diff] [blame] | 115 | int lynq_wifi_ap_channel_set( lynq_wifi_index_e idx,int channel); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 116 | //get channel of ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 117 | int lynq_wifi_ap_channel_get( lynq_wifi_index_e idx,int* channel); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 118 | |
| 119 | //set auth for ap |
| 120 | int lynq_wifi_ap_auth_set(lynq_wifi_index_e idx, lynq_wifi_auth_s auth); |
| 121 | //get ap auth |
| 122 | int lynq_wifi_ap_auth_get(lynq_wifi_index_e idx, lynq_wifi_auth_s *auth); |
| 123 | |
| 124 | //start ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 125 | int lynq_wifi_ap_start(lynq_wifi_index_e idx); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 126 | //stop ap |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 127 | int lynq_wifi_ap_stop(lynq_wifi_index_e idx); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 128 | //restart ap |
| 129 | int lynq_wifi_ap_restart(lynq_wifi_index_e idx); |
| 130 | |
| 131 | //hide ssid |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 132 | int lynq_wifi_ap_hide_ssid(lynq_wifi_index_e idx); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 133 | //unhide ssid |
qs.xiong | f1b525b | 2022-03-31 00:58:23 -0400 | [diff] [blame] | 134 | int lynq_wifi_ap_unhide_ssid(lynq_wifi_index_e idx); |
qs.xiong | 97fa59b | 2022-04-07 05:41:29 -0400 | [diff] [blame] | 135 | |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 136 | //set the password for ap |
| 137 | int lynq_ap_password_set(lynq_wifi_index_e idx, char *password); |
| 138 | //get the ap password |
| 139 | int lynq_ap_password_get(lynq_wifi_index_e idx, char *password); |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 140 | |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 141 | //set the password to connet to dest_ap |
| 142 | int lynq_sta_ssid_password_set(lynq_wifi_index_e idx, ap_info_s *ap, char *password); |
| 143 | int lynq_sta_ssid_password_get(lynq_wifi_index_e idx, ap_info_s *ap, char *password); |
| 144 | |
| 145 | //get the ssid of sta |
| 146 | int lynq_wifi_get_sta_ssid(lynq_wifi_index_e idx,char *sta_ssid); |
| 147 | //get availble device info such as:ssid mac band rssi status auth |
| 148 | int lynq_wifi_get_sta_available_ap(lynq_wifi_index_e idx,ap_detail_info_s *info); |
| 149 | |
| 150 | |
| 151 | |
| 152 | //get the sta connect ap auth |
| 153 | int lynq_wifi_get_sta_auth(lynq_wifi_index_e idx, lynq_wifi_auth_s* auth); //auth 0:OPEN 1:WEP 2:WPA-PSK 3:WPA2-PSK |
| 154 | |
| 155 | //sta start connect to dest_ap |
| 156 | int lynq_wifi_sta_connect(lynq_wifi_index_e idx, char *ssid, lynq_wifi_auth_s auth, char *psw); |
you.chen | b95401e | 2023-05-12 19:39:06 +0800 | [diff] [blame] | 157 | int lynq_wifi_sta_connect_timeout(lynq_wifi_index_e idx, char *ssid, lynq_wifi_auth_s auth, char *psw, int timeout); |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 158 | //disconnect |
| 159 | int lynq_wifi_sta_disconnect(lynq_wifi_index_e idx,char *ssid); |
| 160 | |
| 161 | //start sta mode;enable sta |
| 162 | int lynq_wifi_sta_start(lynq_wifi_index_e idx); |
| 163 | //stop sta:disable sta |
| 164 | int lynq_wifi_sta_stop(lynq_wifi_index_e idx); |
| 165 | |
| 166 | //Get all device info linked ap |
| 167 | int lynq_get_ap_device_list(lynq_wifi_index_e idx, ap_info_s **ap, device_info_s ** list,int * len); //list info:mac ip hostname status len:device len |
| 168 | //Get scan_result info |
| 169 | int lynq_get_scan_list(lynq_wifi_index_e idx, scan_info_s ** list,int * len); //list info:mac ssid band auth rssi len:scan_info len |
| 170 | int lynq_sta_forget_ap(lynq_wifi_index_e idx, char *ssid,lynq_wifi_auth_s auth); |
| 171 | int lynq_get_sta_saved_ap(lynq_wifi_index_e idx,saved_ap_info_s ** list,int * len); //len: length of saved_ap_info |
| 172 | |
| 173 | //start scan availbale ap active |
| 174 | int lynq_wifi_sta_start_scan(lynq_wifi_index_e idx); |
| 175 | |
| 176 | /* |
| 177 | * event usage: |
| 178 | * first declare a funcion like AP_CALLBACK_FUNC_PTR to recv messge from wifi lib |
| 179 | * call lynq_reg_ap_event_callback to register whih private data pointer and the callback fuction pointer declared before |
| 180 | * when envent comes the last registered callback function will been called |
| 181 | */ |
| 182 | |
| 183 | typedef void(*AP_CALLBACK_FUNC_PTR)(void *priv, lynq_wifi_ap_status_s status); |
| 184 | int lynq_reg_ap_event_callback(void *priv, AP_CALLBACK_FUNC_PTR cb); |
| 185 | int lynq_unreg_ap_event_callback(void *priv); |
| 186 | |
| 187 | typedef enum { |
| 188 | LYNQ_WIFI_STA_STATUS_DISCONNECT = 0, |
| 189 | LYNQ_WIFI_STA_STATUS_CONNECT, |
| 190 | LYNQ_WIFI_STA_STATUS_SCAN_RESULT, //finish sta scan |
you.chen | 32cb31e | 2023-04-13 14:05:45 +0800 | [diff] [blame] | 191 | LYNQ_WIFI_STA_STATUS_CONNECT_FAIL, |
you.chen | 70f377f | 2023-04-14 18:17:09 +0800 | [diff] [blame] | 192 | LYNQ_WIFI_STA_SERVICE_ABNORMAL, |
you.chen | 32cb31e | 2023-04-13 14:05:45 +0800 | [diff] [blame] | 193 | LYNQ_WIFI_STATUS_EGNORE, |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 194 | }lynq_wifi_sta_status_s; |
| 195 | typedef enum |
| 196 | { |
| 197 | LYNQ_TIME_OUT = 0, |
qs.xiong | 455c30b | 2023-04-12 11:40:02 +0800 | [diff] [blame] | 198 | LYNQ_UNSPECIFIED_REASON, |
| 199 | LYNQ_AUTHENTICATION_NO_LONGER_VALID, |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 200 | LYNQ_PSW_ERROR, |
| 201 | LYNQ_AUTH_ERROR, |
qs.xiong | 455c30b | 2023-04-12 11:40:02 +0800 | [diff] [blame] | 202 | LYNQ_AP_UNABLE_HANDLE, |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 203 | LYNQ_NOT_FIND_AP, |
qs.xiong | 455c30b | 2023-04-12 11:40:02 +0800 | [diff] [blame] | 204 | LYNQ_WAIT_CONNECT_ACTIVE, |
you.chen | 3502019 | 2022-05-06 11:30:57 +0800 | [diff] [blame] | 205 | }error_number_s; |
| 206 | |
| 207 | typedef void(*STA_CALLBACK_FUNC_PTR)(void *priv, lynq_wifi_sta_status_s status, error_number_s number); |
| 208 | int lynq_reg_sta_event_callback(void * priv, STA_CALLBACK_FUNC_PTR cb); |
| 209 | int lynq_unreg_sta_event_callback(void * priv); |
| 210 | |
| 211 | //get current ap status |
| 212 | int lynq_get_ap_status(lynq_wifi_index_e idx, lynq_wifi_ap_run_status_s * ap_status); |
| 213 | //get curent sta status |
| 214 | int lynq_get_sta_status(lynq_wifi_index_e idx, lynq_wifi_sta_run_status_s * sta_status); |
| 215 | |
| 216 | //set the country code |
| 217 | int lynq_get_country_code(lynq_wifi_index_e idx, char *country_code); |
| 218 | //get current country code |
| 219 | int lynq_set_country_code(lynq_wifi_index_e idx, char *country_code); |
| 220 | |
| 221 | //get wlan0/ap0 ip or mac |
| 222 | int lynq_get_interface_ip(lynq_wifi_index_e idx,char *ip); |
| 223 | int lynq_get_interface_mac(lynq_wifi_index_e idx,char *mac); |
| 224 | |
| 225 | |
| 226 | //get current connect ap mac rssi band |
| 227 | int lynq_get_connect_ap_mac(lynq_wifi_index_e idx,char *mac); |
| 228 | int lynq_get_connect_ap_rssi(lynq_wifi_index_e idx,int * rssi); |
| 229 | int lynq_get_connect_ap_band(lynq_wifi_index_e idx,lynq_wifi_band_m * band); |
you.chen | f58b3c9 | 2022-06-21 16:53:48 +0800 | [diff] [blame] | 230 | int lynq_get_connect_ap_ip(lynq_wifi_index_e idx,char *ip); |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 231 | |
qs.xiong | 026c5c7 | 2022-10-17 11:15:45 +0800 | [diff] [blame] | 232 | /*****add limit of connected ap device number 2022.10.12 by qs.xiong |
| 233 | * |
| 234 | *sta_number: |
| 235 | * ap max be connected no more than 15 |
| 236 | * so sta_number : [1-15] |
| 237 | */ |
| 238 | int lynq_ap_connect_num(int sta_number); |
| 239 | |
qs.xiong | 7790555 | 2022-10-17 11:19:57 +0800 | [diff] [blame] | 240 | /****add acs contrl api***************** |
| 241 | * |
| 242 | *idx: |
| 243 | * 1 is ap and only 1 is legal in this api |
| 244 | *acs_mode: |
| 245 | * 2 is open acs at 2.4GHz |
| 246 | * 5 is open acs at 5GHz |
| 247 | * didnt ssuport 2.4G&5G together |
| 248 | * add by qs.xiong 20221012*************/ |
| 249 | int lynq_enable_acs(lynq_wifi_index_e idx,int acs_mode); |
| 250 | |
you.chen | 0f5c643 | 2022-11-07 18:31:14 +0800 | [diff] [blame] | 251 | //you.chen add for tv-box start |
| 252 | /** |
| 253 | * @brief enableGBW, repeat call will fail before disableGBW |
| 254 | * @param mac of tv-box |
| 255 | * @return |
| 256 | */ |
| 257 | int enableGBW(const char* mac); |
| 258 | /** |
| 259 | * @brief disableGBW |
| 260 | * @return |
| 261 | */ |
| 262 | int disableGBW(); |
| 263 | //you.chen add for tv-box end |
| 264 | |
qs.xiong | 7a105ce | 2022-03-02 09:43:11 -0500 | [diff] [blame] | 265 | #endif |