Wpa_gui程序分析(二)

来源:互联网 发布:大数据对餐饮业 编辑:程序博客网 时间:2024/04/20 04:59

http://blog.163.com/modingfa_002/blog/static/11092546620105841255688/

紧接着上章未完结的,继续分析WpaGui类中的函数。

void processMsg(char *msg)

从名字 上可以看出,这是处理消息的函数,处理的消息当然是wpa_supplicant向上层传递的函数。从前面的文章的分析我们可以得知,控制 wpa_supplicant的主要发式就是使用特定接口,将特定的命令字符串传送过去,而wpa_supplicant作为反馈的是及时的字符串消息, 以及当完成某项任务后的消息。比如,当扫描完成后,wpa_supplicant就会发送WPA_EVENT_SCAN_RESULTS表示已经可以接受 扫描结果了。而该函数,自然就根据wpa_spplicant发送过来的消息做相对应的处理。

void processCtrlReq(const char *req)

用来处理界面上用户发出的请求,具体有UserDataRequest类来完成。

void receiveMsgs()

既然要处理消息,就首先要获得消息,该函数就是用来接受wpa_supplicant发送过来的消息。

void connectB()

从字面上来看,是用来进行连接的,其实如果用网络链接的术语来说,是进行关联,使用的是REASSOCIATE命令让wpa_supplicant去连接上无线网络。

void selectNetwork( const QString &sel )

用来选择无线网络,非常好理解,使用SELECT_NETWORK命令操作。

void enableNetwork(const QString &sel)

void disableNetwork(const QString &sel)

这两个函数是想对应的,在连接一个无线网络之前,首先要使这个网络的参数配置可用,如果不想使用,则可以使它不可用。分别使用ENABLE_NETWORK和DISABLE_NETWORK命令。

void editNetwork(const QString &sel)

void editSelectedNetwork()

void editListedNetwork()

配 置无线网络的各项参数,具体部分由NetworkConfig来完成,而editSelectNetwork()是配置选择好的无线网络,是通过调用 editNetwork()实现的,editListedNetwork()也同样是通过调用editNetwork()实现,作用是配置已经列出来的无 线网络。
void triggerUpdate()

触发更新,用来更新网络的状态和参数。

void addNetwork()

增加一个新的网络,一般可以用来连接隐藏的无线网络,具体实现也是由NetworkConfig()完成。

void removeNetwork(const QString &sel)

void removeSelectedNetwork()

void removeListedNetwork()

与上面配置无线网络的三个函数类似,但作用不同在于是移除无线网络的配置。当从一个地点到里另外一个地点后,原有的无线网络可能会不存在,但是它的配置参数依旧还存在,这时可以使用这几个函数来移除无线网络无效的配置。使用的是REMOVE_NETWORK命令。

void enableAllNetworks()

void disableAllNetworks()

简单的两个函数,使全部配置好的无线网络可用或不可用,是在原来的ENABLE_NETWORK和DISABLE_NETWORK命令基础上,加上all参数来表示对全部网络生效。

void removeAllNetworks()

移除全部网络,是REMOVE_NETWORK命令后加上all的参数实现。

void saveConfig()

其实配置一个网络,在过程中都是在内存中进行的,如果这是没有保存,关闭程序的话,当下次重新启动时,会发现认为配置好的网络参数依旧不存在。而saveConfig()函数的作用就是将内存中的配置保存到文件中,使用的是SAVE_CONFIG命令。

以上就是大部分WpaGui类中函数的分析,其实还有很多函数并没有详细介绍,但是有一部分是与win下套接字变成有关,我并不是非常了解,还有一部分只是单纯的与程序的运行,比如隐藏在系统托盘上等有关,对我们了解wpa_gui的整体框架并不是有很大的帮助。

最后可以总结下,其实wpa_gui就是为wpa_supplicant底层程序增加了一套Qt4的图形交互界面,而这样的构架可以在对未来我们实际项目的设计上有一定的帮助,比如如何做到后台功能和前台界面的分离,如何做到跨平台,都有某种程度的启发。

原创粉丝点击