圣诞节小礼包 :-)轻量系统/小型系统自动连接WiFi热点 原创 精华
【本文正在参与优质创作者激励】
1. 轻量系统
轻量系统自动连接wifi热点,我在《Hi3861_WiFi IoT工程:WiFi自动连接》一文中已经做了详细说明,附件“wifilink_for_wifiiot.rar”是重新整理后的源代码,大家可以将它放到自己的工程中,在代码中修改:
static char* ssid = "OHOS_TEST"; //Your SSID, HI_WIFI_MAX_SSID_LEN 32 Byte
static char* pswd = "123456789"; //Your PSWD, HI_WIFI_MAX_KEY_LEN 64 Byte
编译运行就可以了。我本地运行的log如下:
[wifilink] WifiLinkTask Begin:
[wifilink] WifiLink Begin: fgWifiConnected[F]
[wifilink] WifiLink End. fgWifiConnected[T]
+NOTICE:SCANFINISH
+NOTICE:CONNECTED
[wifilink] CheckWifiState fgWifiConnected[T]: IP[0.0.0.0]/GW[0.0.0.0]
[wifilink] CheckWifiState fgWifiConnected[T]: IP[192.168.1.108]/GW[192.168.1.1]
+PING:
[wifilink] os_shell_ping(www.baidu.com) ret = 0
[wifilink] WifiLinkTask End.
[0]Reply from 14.215.177.38:time=9ms TTL=54
[1]Reply from 14.215.177.38:time=10ms TTL=54
[2]Reply from 14.215.177.38:time=27ms TTL=54
[3]Reply from 14.215.177.38:time=14ms TTL=54
4 packets transmitted, 4 received, 0 loss, rtt min/avg/max = 9/15/27 ms
OK
2. 小型系统
这是我的即将出版的书《鸿蒙系统学习笔记》的一个示例程序(基于LTS3.0分支),源代码暂时先不公布,但是可执行程序以及使用说明,可以先放出来,请大家试用和提出修改意见。
附件“wifilink_for_small.rar”包含了四个文件:
wifilink
├── BUILD.gn
├── wifilink_liteos_a
├── wifilink_linux
└── wifilink.conf
2.1 BUILD.gn
编译脚本,会把可执行程序和conf文件分别拷贝到对应目录下。
你需要把这里的编译目标添加到系统编译中去。
比如,把这个压缩包解压到 //applications/sample/camera/communication/ 目录下,
2.1.1 打开//vendor/hisilicon/hispark_taurus(_linux)/config.json文件,"applications"下增加"camera_sample_communication"组件,
{
"subsystem": "applications",
"components": [
{ "component": "camera_sample_communication", "features":[] },
{ "component": "camera_sample_app", "features":[] },
{ "component": "camera_screensaver_app", "features":[] }
]
},
2.1.2 打开 //applications/sample/camera/communication/BUILD.gn 增加 wifilink feature:
lite_component("sample") {
features = [
"wifilink:wifilink",
]
}
2.2 wifilink.conf
这是WiFi热点的配置信息,
#FixedIP=192.168.1.10
#PingWho=192.168.1.100
country=GB
ctrl_interface=udp
network={
ssid="OHOS_TEST"
psk="123456789"
}
6/7两行,是你要连接的热点信息,根据实际情况修改即可。
1/2两行,是Linux内核小型系统才用得着的,这里加"#",是作为wpa_supplicant配置文件的注释加进来的,wpa_supplicant会忽略这两行,但我的wifilink_linux程序会读取并使用它们。
FixedIP 是指定分配哪个IP给Hi3516平台,自行修改,分配固定IP,是因为还不知道怎么配置自动获取IP T_T!!
PingWho 是指定平台自动连上WiFi热点后,自动去ping一下那个IP看通不通,这个可以不管,或者配一个同网段的设备IP即可。
2.3 wifilink
可执行程序,默认会拷贝到/bin/目录下,系统启动起来之后,你可以执行
./bin/wifilink &
让它到后台运行即可,运行起来后你可以执行 ifconfig 去查看 wlan0 的信息。
你也可以配置 wifilink 开机自动运行,去自动连接你在 wifilink.conf 中配置的热点,操作步骤如下:
打开:
//vendor/hisilicon/hispark_taurus/init_configs/init_liteos_a_3516dv300.cfg
//vendor/hisilicon/hispark_taurus_linux/init_configs/init_linux_3516dv300_openharmony_debug.cfg
在 init 的 cmds 增加一句
"name" : "init",
"cmds" : [
......
"start wifilink",
......
]
在 services 列表增加 wifilink 服务的配置:
"services" : [{
......
"name" : "wifilink",
"path" : ["/bin/wifilink", "16"],
"uid" : 0,
"gid" : 0,
"once" : 0,
"importance" : 0,
"caps" : []
}, {
......
保存,重新编译和烧录即可。
注意,如果出现启动失败的情况,可以将"16"这个参数稍微调大到 17/18/19 试试看,如果还不行,请反馈给我。
3.标准系统
【还没适配】
感谢楼主圣诞节前送出的礼物
你够快的哈~~
坐等楼主出书