Hi3516 AI Camera开发板是带有Wifi模块的,可以工作在AP和STA模式。我们通过系统自带的setting APP就可以实现连接Wifi热点的功能。但我在开发过程中发现,在setting中连接Wifi热点然后退出setting,Wifi就断开了!通过串口日志看到,在退出setting时输出有这样一行字:
[plat_pm]wifineedalwayson,donotclose!!
那基本上这个setting里的wifi连接功能就没法用了,那还有没有办法持久连接wifi呢?
答案是有的:方法1,使用自带的wpa_supplicant;方法2,在app中调用wifi接口。
一、编译
Wifi相关示例代码在//applications/sample/camera/communication目录下,有如下三个目录:
hostapd提供AP模式示例
wpa_cli提供监听事件和控制wpa的示例
wpa_supplicant提供STA模式示例
观察一下这三个目录,除了有.c源码文件外,还有几个.conf文件,是AP和STA模式的配置文件
..../communication/hostapd/config/hostapd.conf,AP模式的配置文件,我们关心的主要是ssid:
interface=wlan0
driver=hdfwifi
ctrl_interface=udp
ssid=testap
hw_mode=g
channel=1
ignore_broadcast_ssid=0
如果要给AP设置密码,需要增加几行配置:
auth_algs=1
wpa=2
wpa_passphrase=12345678
rsn_pairwise=CCMP
..../communication/wpa_supplicant/config/wpa_supplicant.conf,STA模式的配置文件:
country=GB
ctrl_interface=udp
network={
ssid="yourssid"
psk="yourpwd"
}
其中network节初始是空的,自己添加ssid和psk,即热点的ssid和密码。这些conf文件在编译烧录后会存放在/etc目录下
默认情况下,这些是不参与编译的。我们需要修改//applications/sample/camera/communication/BUILD.gn文件,添加相关feature:
lite_component("sample"){
features=[
"wpa_supplicant:wpa_sample",
"hostapd:hostapd_sample",
"wpa_cli:wpa_cli_sample"
]
}
然后编译代码:
pythonbuild.pyipcamera_hi3516dv300-bdebug
二、测试
烧录到Hi3516开发板,不再赘述。
启动后用串口连接,查看bin目录下的文件:
OHOS#ls/bin
Directory/bin:
-rwxrwxrwx13488u:0g:0wpa_supplicant
-rwxrwxrwx50484u:0g:0bundle_daemon
-rwxrwxrwx13488u:0g:0hostapd
-rwxrwxrwx13440u:0g:0foundation
-rwxrwxrwx25924u:0g:0wms_server
-rwxrwxrwx21724u:0g:0appspawn
-rwxrwxrwx13540u:0g:0query.bin
-rwxrwxrwx13540u:0g:0abilityMain
-rwxrwxrwx13488u:0g:0apphilogcat
-rwxrwxrwx13504u:0g:0led_app
-rwxrwxrwx13540u:0g:0media_server
-rwxrwxrwx25828u:0g:0init
-rwxrwxrwx13792u:0g:0hilogcat
-rwxrwxrwx13488u:0g:0camera_app
-rwxrwxrwx25824u:0g:0shell
-rwxrwxrwx13488u:0g:0wpa_cli
可以看到比之前多了几个文件:wpa_supplicant,hostapd,wpa_cli
再查看etc目录,
OHOS#ls/etc
Directory/etc:
-rwxrwxrwx61u:0g:0os-release
-rwxrwxrwx107u:0g:0hostapd.conf
-rwxrwxrwx3473u:0g:0init.cfg
-rwxrwxrwx82u:0g:0wpa_supplicant.conf
可以看到比之前多了几个文件,hostapd.conf,wpa_supplicant.conf
这里简要介绍wpa_supplicant的使用方法,详细命令格式请参考命令自带的help
这里以连接热点为例,命令格式:
cd/bin
./wpa_supplicant-iwlan0-c/etc/wpa_supplicant.conf
-i参数指定网卡名称
-c参数指定配置文件
/etc/wpa_supplicant.conf文件中保存有我们要连接的热点的ssid和密码。
用手机做热点进行测试,看到连接设备从0变为1,说明Wifi连接成功了。
编辑:hfy
-
WIFI
+关注
关注
81文章
5296浏览量
203564 -
Hi3516
+关注
关注
1文章
21浏览量
15889 -
鸿蒙系统
+关注
关注
183文章
2634浏览量
66302
发布评论请先 登录
相关推荐
评论