WIFI已經可以工作了,大部分android wifisetting裏要求的功能也都實現了,不過還有兩個問題在這裏記錄一下:
1. Softap無法使用
2. 通過WPS聯網的時候有一定機率會失敗。
對於softap,當在setting中選下WIFI TETHERING時,softapcontroller就會給DRIVER發送私有命令,不過在發送私有命令前會先通過IOCTL發送SIOCGIWPRIV這個命令字給DRIVER。這個命令的作用是獲得當前DRIVER所支持的私有命令。(因爲SOFTAP並不是standard cmd, 所以如果要支持的話必須放在私有命令中)
而DRIVER是否支持私有命令,或者說支持哪些私有命令就要看DRIVER中關於結構體iw_handler_def的賦值:
const struct iw_handler_def wl_iw_handler_def =
{
.num_standard = ARRAYSIZE(wl_iw_handler),
.standard = (iw_handler *) wl_iw_handler,
.num_private = ARRAYSIZE(wl_iw_priv_handler),
.num_private_args = ARRAY_SIZE(wl_iw_priv_args),
.private = (iw_handler *)wl_iw_priv_handler,
.private_args = (void *) wl_iw_priv_args,
};
而我這邊由於不知到手上的模塊支持哪些private cmd。所以這塊自己沒辦法加,只有聯繫供應廠商提供支援,現在暫時空下,等支援OK了再該過來。
可是對於問題2我就頭大了,有時候好有時候不好,不好的時候就是硬件返回了一個fail,這個讓我無從解起。不知道是不是WPS本來聯網就不穩定還是其他什麼情況我也不得而知。這可能也是我沒有選擇在設備商公司工作而是轉投到製造商的悲哀之一吧。一旦設備本身出了問題,作爲製造商只能等待設備商自己來解決,除了催促其他什麼也做不了!可是在設備商公司工作又無法接觸到這麼多好玩的終端產品這就交魚和熊掌不可兼得吧。