Android系統硬體抽象層原理與實現之WIFI
http://m.blog.csdn.net/linux_zkf/article/details/7492720
整個WIFIHAL實現都很簡單,都是對wpa_supplicant的操作和使用,如果需要自己實現
WIFI HAL可以參考wifi.c來實現wifi.h中所定義的介面,並且設定驅動的路徑、名稱、模組的名稱等引數,
具體操作都將由wpa_supplicant來完成。
其中wifi.h定義了Android系統中WIFI硬體抽象層介面,wifi.h定義
//裝載wifi驅動
int wifi_load_driver();
//缷載wifi驅動
int wifi_unload_driver();
//開始、停止supplicant
int wifi_start_supplicant();
int wifi_stop_supplicant();
//連線supplicant
int wifi_connect_to_supplicant();
//關閉supplicant連線
void wifi_close_supplicant_connection();
int wifi_wait_for_event(char *buf,size_t len);
int wifi_command(const char *command,char *reply, size_t *reply_len);
// DHCP請求
int do_dhcp_request(int *ipaddr, int*gateway, int *mask, int *dns1, int *dns2, int *server, int *lease);
const char *get_dhcp_error_string();
操作介面都很簡單,其中比較重要的是wifi_wait_for_event和wifi_command函式,
前者用於接收wpa_supplicant上報的事件,而後者用於向wpa_supplicant程序傳送命令.