1. 程式人生 > >Android系統硬體抽象層原理與實現之WIFI

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_eventwifi_command函式,

前者用於接收wpa_supplicant上報的事件,而後者用於向wpa_supplicant程序傳送命令.