
基于OpenHarmony轻量级操作系统实现RK2206 WiFi-AP模式通信开发案例 原创
实验内容
本示例将演示如何在小凌派-RK2206开发板上使用WiFi-AP模式(即将RK2206作为WiFi路由器),实现与PC端进行TCP通信。
程序设计
API设计
FlashInit()
头文件:
函数描述:
作用描述:
初始化RK2206的Flash。
参数描述:
无
返回值:
LZ_HARDWARE_SUCCESS为成功,反之为失败。
VendorSet()
头文件:
实际定义在:
函数描述:
作用描述:
在Flash区域中设置WiFi相关参数。
参数描述:
名字 | 描述 |
---|---|
id | 配置的参数,例如: VENDOR_ID_WIFI_SSID:设备作为终端,连接WiFi路由器的SSID,32字节 + '\0’ VENDOR_ID_WIFI_PASSWD:设备作为终端,连接WiFi路由器的密钥,64字节 + '\0’ VENDOR_ID_WIFI_ROUTE_SSID:设备作为WiFi路由器,配置SSID,32字节 + '\0’ VENDOR_ID_WIFI_ROUTE_PASSWD:设备作为WiFi路由器,配置密钥,64字节 + '\0’ VENDOR_ID_WIFI_MODE:配置设备作为终端或WiFi路由器,3字节 + ‘\0’ |
buf | 配置内容字符串 |
len | 配置内容字符串长度 |
返回值:
LZ_HARDWARE_SUCCESS为成功,反之为失败。
SetApModeOff()
头文件:
函数描述:
作用描述:
关闭WiFi-AP模式。
参数描述:
无
返回值:
0为成功,反之为失败。
SetApModeOn()
头文件:
函数描述:
作用描述:
开启WiFi-AP模式。
参数描述:
无
返回值:
0为成功,反之为失败。
软件设计
整个例程主要分为2个部分:
- 配置RK2206为WiFi-AP模式
- 创建TCP服务端,监听并等待TCP客户端
配置WiFi-AP模式
该任务主要分为如下几个步骤:
(1)配置WiFi相关参数
首先,定义几个WiFi相关参数,并予以赋值。
注意:上述wifi_mode、mac_address、route_ssid和route_passwd都有严格的字符串长度定义。
(2)写入Flash
将之前定义好的WiFi相关参数写入到Flash。
注意:
- 在调用VendorSet()之前必须调用FlashInit(),初始化Flash相关操作,否则VendorSet()无效。
- VendorSet()第1个参数在vendor.h有定义。
(3)重启WiFi-AP模式
TCP服务端
首先,在wifi_process()调用CreateThread()创建1个线程,运行wifi_tcp_server()
其次,运行TCP服务端,绑定IP地址和端口号,监听端口,等待TCP客户端连接
最后,tcp_server_msg_handle()负责与TCP客户端进行实际通信。
编译调试
修改BUILD.gn文件
修改 vendor/lockzhiner/rk2206/sample
路径下 BUILD.gn 文件,指定 wifi_ap_example
参与编译。
修改 device/lockzhiner/rk2206/sdk_liteos
路径下 Makefile 文件,添加 -lwifi_ap_example
参与编译。
运行结果
示例代码编译烧录代码后,按下开发板的RESET按键,通过串口助手查看日志,显示如下:
注意:设备WiFi路由器IP地址为192.168.2.10。
