【FFH】OpenHarmony设备开发(四)-WIFI_AP开发 原创 精华
Table of Contents
前言
我们在第一篇文章中讲到了WIFI的STA连接,本文章主要讲轻量化系统的WIFI的AP连接,即是打开WIFI的热点。本文适用于OpenHarmony3.1的轻量化系统设备.
设计流程
wifiAPTask主线程函数
-
注册wifi事件的回调函数
RegisterWifiEvent(WifiEvent* event)
-
初始化wifi热点相关配置
SetHotspotConfig(const HotspotConfig* config)
-
启动wifi热点模式
EnableHotspot()
-
检查热点是否正确地启用
IsHotspotActive()
-
启动DHCP
- 查找接口:
netifapi_netif_find()
- 改变IP_add的配置:
netifapi_netif_set_addr()
- 启动dhcp服务:
netifapi_dhcps_start()
- 查找接口:
线程创建
代码分析
1.注册wifi事件的回调函数
首先要创建一个指向wifi事件回调的指针,用于热点连接、断开或扫描时调用回调函数,便于相对应时刻的操作。(若不需要回调函数,设置该指针为NULL)
WifiEvent g_wifiEventHandler = {0};
再来介绍一下wifEvent结构体对象,.OnHotspotStaJoin
是绑定STA站点加入时的回调函数,.OnHotspotStaLeave
是STA退出时的回调函数,.OnHotspotStateChanged
是状态改变回调函数,我们通常设置这三个回调函数即可
最后使用RegisterWifiEvent
函数调用g_wifiEventHandler
指针的数据,指定wifi回调函数,该函数返回值为0即是成功
具体的回调函数在文章后面细述
2.初始化wifi热点相关配置
首先创建一个配置热点的config指针,并初始化该指针
随后使用 SetHotspotConfig
函数配置wifi热点,该函数返回值为0即是成功
3/4.启动和检查wifi
启动wifi:
使用IsHotspotActive();
函数,确认热点模式是否使能成功
5.启动DHCP
第一步先创建dhcp对象
第二步是初始化dhcp相关配置,然后使用netifapi_netif_set_addr
函数配置dhcp
第三步需要先将dhcp关闭!!!否则直接进行第四步开启dhcp会产生内存报错
netifapi_dhcps_stop(g_lwip_netif);
第四步是开启dhcp
netifapi_dhcps_start(g_lwip_netif, 0, 0);
-
参数一:dhcp对象
-
参数二:地址池的起始IP地址
-
参数三:需要加入IP地址池的IP地址数量
回调函数
下面将介绍三个类型的回调函数
状态改变回调函数
终端输出WIFI AP模式状态
STA退出回调函数
STA退出时打印mac地址
绑定STA站点加入回调函数
打印出每个STA站点的MAC地址
效果图
将开发板变成路由器的一小步
静态ip怎么配置
追到第四篇了,打卡
STA端可以配置静态ip吧