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的图形交互界面,而这样的构架可以在对未来我们实际项目的设计上有一定的帮助,比如如何做到后台功能和前台界面的分离,如何做到跨平台,都有某种程度的启发。
- Wpa_gui程序分析(二)
- Wpa_gui程序分析
- Wpa_gui程序分析
- 词法分析程序<二>
- 洗牌程序分析(二)
- nrf51822程序的分析(二)
- Openfire分析之二:主干程序分析
- RM装甲检测程序分析(二)
- 第一个窗口程序(二.分析窗口程序)
- GEP程序(C#语言描述)分析(二)
- iPhone企业应用实例分析之二:程序处理流程
- linux程序分析工具介绍(二)—-ldd,nm
- linux程序分析工具介绍(二)—-ldd,nm
- GEP程序(C#语言描述)分析(二)
- (二)使用llvm进行程序分析-hotspot、path
- linux程序分析工具介绍(二)—-ldd,nm
- linux程序分析工具介绍(二)—-ldd,nm
- inux程序分析工具介绍(二)—-ldd,nm
- C++的多重继承
- java读取 .properties配置文件
- 测试经理职能
- Dtd简介
- 让程序定时执行
- Wpa_gui程序分析(二)
- 简单的用ul和li结合struts2做成的树效果
- WCF 客户端配置
- 文件存储 OutputStream/InputStream
- 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chrono
- 编程之道阅读随笔
- 三层结构中解决同一解决方案不同项目中访问Web.config文件的问题
- makefile
- 三:备份恢复类