路由器热点功能开发样例
样例简介
此样例演示如何在Pegasus Wi-Fi IoT智能家居套件上开发wifi_AP模式。
工程版本
- 系统版本/API版本:OpenHarmony 3.0 release
- IDE版本:DevEco Device Tool Release 3.0.0.401
快速上手
准备硬件环境
- 预装windows系统的PC机
- Hi3861V100开发板套件
准备开发环境
开发环境安装配置参照文档:DevEco Device Tool 环境搭建
准备工程
本用例采DevEco Device Tool工具进行开发,当配置完开发环境后,我们可以在IDE上进行工程的配置下载。
如上图所示,填写对应样例工程的名称,选择对应的样例组件和样例工程存放路径后,点击创建即可进行样例工程的下载。下载界面如下:
当左下角显示正在下载OpenHarmony镜像时,耐心等待下载完成即可。
准备工具链
- 在Projects中,点击Settings按钮,进入配置工程界面。
- 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击SetUp按钮,自动安装所需工具链。
- 如果出现安装pip组件失败,可参考修改Python源的方法进行修改,完成尝试重新安装。
工具链自动安装完成后如下图所示。
样例代码下载完成后,DevEco Device
Tool会重新要求连接远程服务器,输入密码连接后会进入对应的代码编辑界面,此时点击左下角DevEco插件图标,选择PROJECT
TASKS可以查看到对应的样例工程,点击build选项进行编译,并可在终端查看对应的编译结果。
固件生成在对应工程目录的out/hispark_taurus/electronic_board/目录下。
烧录/安装
编译完成后可以通过DevEco Device Tool进行烧录,在烧录前需要做一些烧录的配置:
配置准备
在配置烧录前需要先查看DevEco Device Tool是否可以正常识别串口。
-
点击左边栏"REMOTE DEVELOPMENT",找到 并点击” Local PC “ 选项。
-
查看 Local PC右边图标
如若图标为,则代表DevEco Device Tool已连接本地,可以正常识别串口。
如若图标为,则代表DevEco Device Tool未连接本地,不能识别串口,此时需要点击该绿色图标进行连接,连接成功后图标会变为。
- 点击主页,在主页选择对应工程,点击配置工程进入到配置页面。
查询串口
在DevEco Device Tool中,点击QUICK ACCESS > DevEco Home > Device,查看并记录对应的串口号。
如果对应的串口异常,请根据Hi3861V100开发板串口驱动安装安装USB转串口的驱动程序。
配置串口
在QUICK ACCESS > DevEco Home > Projects中,点击Settings打开工程配置界面。
在“hi3861”页签,设置烧录选项,包括upload_port、upload_protocol和upload_partitions。
- upload_port:选择已查询的串口号。
- upload_protocol:选择烧录协议,选择“hiburn-serial”。
- upload_partitions:选择待烧录的文件,默认选择hi3861_app。
烧录
- 所有的配置都修改完成后,在工程配置页签的顶部,点击Save进行保存。点击Open打开工程文件,然后在“PROJECT TASKS”中,点击hi3861下的Upload按钮,启动烧录。
- 启动烧录后,显示如下提示信息时,请在15秒内,按下开发板上的RST按钮重启开发板。
更多烧录细节可以参考Hi3861V100开发板烧录。
Wifi STA API
使用OpenHarmony原始WiFI API接口进行编程,AP模式需要使用原始接口以及一些DHCP客户端接口。
OpenHarmony WiFi AP模式相关的API接口文件路径
foundation/communication/interfaces/kits/wifi_lite/wifiservice/wifi_hotspot_config.h
foundation/communication/interfaces/kits/wifi_lite/wifiservice/wifi_hotspot.h
所使用的API接口有:
API |
接口说明 |
WifiErrorCode EnableHotspot(void); |
打开Wifi AP 模式 |
WifiErrorCode DisableHotspot(void); |
关闭Wifi AP 模式 |
WifiErrorCode SetHotspotConfig(const HotspotConfig* config); |
设置当前AP热点的配置参数 |
WifiErrorCode GetHotspotConfig(HotspotConfig* result); |
获取当前AP热点的配置参数 |
int IsHotspotActive(void); |
查询AP是否已经开启 |
WifiErrorCode GetStationList(StationInfo* result, unsigned int* size); |
获取接入的设备列表 |
int GetSignalLevel(int rssi, int band); |
获取信号强度等级 |
WifiErrorCode SetBand(int band); |
设置当前频段 |
WifiErrorCode GetBand(int* result); |
获取当前频段 |
Hi3861 SDK的DHCP客户端接口:
API |
描述 |
netifapi_netif_find |
按名称查找网络接口 |
netifapi_dhcp_start |
启动DHCP客户端 |
netifapi_dhcp_stop |
停止DHCP客户端 |
参考资料
|